删除名称中包含“EXAMPLE”的打印机

时间:2017-02-16 12:53:22

标签: windows powershell

我正在尝试构建一个PS脚本,删除名称中包含“EXAMPLE”的所有网络打印机。

到目前为止,我有以下代码:

Get–WMIObject Win32_Printer | where{$_.Network -eq ‘true‘} | foreach{$_.delete()}

但这会删除每个网络打印机。

2 个答案:

答案 0 :(得分:3)

由于您使用的是Windows 7,因此仍可以使用WMI删除打印机。否则,其他替代方法是使用.Net类System.PrintingSystem.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