带有包含斜线的变量的Powershell WMI查询
问题描述:
我正在尝试编写一个基于文件中的值设置用户默认打印机的powershell脚本。带有包含斜线的变量的Powershell WMI查询
当文件中的值是网络打印机\ share \ printername时,脚本失败。我假设这是由于“\”斜杠。这应该如何在PowerShell中处理。我试图确定是否需要添加一些特殊字符来避开斜线。
##Read Default Printer value from file and set as new Default printer.
$path="\\share\profiles$\$env:username.V2\DefaultPrinter.txt"
$DefaultPrinterName=Get-Content $path
$DefaultPrinter = Get-Wmiobject -Query "Select * FROM WIN32_Printer WHERE Name like '$DefaultPrinterName'"
$DefaultPrinter.SetDefaultPrinter()
答
您只需要使用双\
例子:
gwmi -Query "Select * from Win32_Printer where name like '\\\\192.168.2.49\\HP Color LaserJet 2600n'"
Location :
Name : \\192.168.2.49\HP Color LaserJet 2600n
PrinterState : 33554432
PrinterStatus : 3
ShareName : HPCL2600
SystemName : \\192.168.2.49
答
您必须指定打印机的名称和打印机的不是路径。
在这种情况下,请仅在查询中提供“HP Color LaserJet 2600n”,查询将返回正确的输出。
所以最终的查询应该是 - “从Win32_Printer选择*,其中名称,如‘于HP Color LaserJet 2600N’”
什么的'$ DefaultPrinterName'变量样子的价值? –