我正在尝试构建一个PS脚本,删除名称中包含“EXAMPLE”的所有网络打印机。
到目前为止,我有以下代码:
Get–WMIObject Win32_Printer | where{$_.Network -eq ‘true‘} | foreach{$_.delete()}
但这会删除每个网络打印机。
答案 0 :(得分:3)
由于您使用的是Windows 7,因此仍可以使用WMI删除打印机。否则,其他替代方法是使用.Net类System.Printing
或System.Drawing.Printing
中的方法。但看起来你只需要在where block
Get–WMIObject Win32_Printer | where{($_.Network -eq 'true') -and ($_.Name -like "*EXAMPLE*") } | foreach{$_.delete()}
答案 1 :(得分:1)
# First check with -WhatIf, then remove -WhatIf when you are sure the command is targetting the right printer
Get-Printer | ?{ $_.Name.Contains("EXAMPLE") -and $_.Type -eq "Connection" } | Remove-Printer -Whatif