如何使用 powershell 禁用“双向通信”?
运行时可以看到EnableBIDI
:
get-WmiObject -class Win32_printer | fl *
但是当我尝试这个时,它说找不到该属性?
Set-PrinterProperty -PrinterName "Some Printer" -PropertyName "EnableBIDI" -Value $False
如何使用 powershell 禁用“双向通信”?
运行时可以看到EnableBIDI
:
get-WmiObject -class Win32_printer | fl *
但是当我尝试这个时,它说找不到该属性?
Set-PrinterProperty -PrinterName "Some Printer" -PropertyName "EnableBIDI" -Value $False
您正在混合来自两个不同 WMI 类的属性。 从命名空间中操作未记录类的Set-PrinterProperty
实例,该命名空间的属性与上一个命令中的类不同。MSFT_PrinterProperty
root/standardcimv2
Win32_Printer
相反,操作所需的Win32_Printer
类实例,因为它具有您想要的属性,然后调用Put()
以提交更改。当以海拔运行时,这对我有用:
$printer = Get-WmiObject -Class 'Win32_Printer' -Filter 'Name = ''My Printer Name'''
$printer.EnableBIDI = $false
$printer.Put()
使用较新的CimCmdlets
模块Get-CimInstance
,您可以使用和Set-CimInstance
cmdlet以类似的方式进行更改...
$printer = Get-CimInstance -ClassName 'Win32_Printer' -Filter 'Name = ''My Printer Name'''
$printer.EnableBIDI = $false
Set-CimInstance -InputObject $printer
...或将其简化为单个管道...
Get-CimInstance -ClassName 'Win32_Printer' -Filter 'Name = ''My Printer Name''' `
| Set-CimInstance -Property @{ EnableBIDI = $false }
...甚至将其简化为单个 cmdlet 调用...
Set-CimInstance -Query 'SELECT * FROM Win32_Printer WHERE Name = ''My Printer Name''' -Property @{ EnableBIDI = $false }