使用腳本刪除除最高「複製」打印機以外的所有打印機(Microsoft和其無限幫助會在每次有遠程用戶拔出/插入打印機時創建「複製」打印機)在Windows 7電腦上。Powershell - 刪除除最高號碼以外的所有號碼
我有兩個不同的打印機名稱,由於這個問題而獲得許多「副本」。有一種情況很簡單,因爲我想刪除所有的「複印」打印機,但保留原來的打印機 - 名稱中沒有「複製」的打印機。我這樣做,首先清除所有打印作業(不會刪除打印機,如果有一個現有作業坐在隊列),然後刪除所有「POS利盟(複製)」的打印機 -
Get-WmiObject Win32_Printer | ForEach-Object {$_.CancelAllJobs()}
Get-WmiObject Win32_Printer -Filter "name LIKE '%POS Lexmark (Copy%'" | ForEach-Object {$_.Delete()}
的偉大工程。在第二種情況下,我想保留最高的「複印」號碼打印機 - 即如果有12臺「複印」打印機,我想保留「Lexmark Universal PS3(Copy 12)」打印機,但刪除所有其餘的打印機。我有一個自然排序函數行:
$ToNatural = { [regex]::Replace($_, '\d+', { $args[0].Value.PadLeft(20) }) }
,我可以用它來在這種情況下,所有的「複製」的打印機進行排序,但這種
Get-WmiObject Win32_Printer -Filter "name LIKE '%PS3 (Copy%'" | Sort-Object $ToNatural | Select-Object | ForEach-Object {$_.Delete()}
不會起作用,因爲我還需要在排序後保留最高數量的打印機。我是Powershell的新手,所以任何幫助將不勝感激,因爲谷歌搜索還沒有爲我提供任何幫助。
謝謝
是的!這工作。非常感謝你。一直在研究這一點,並且永遠無法讓伯爵工作。 – BigRedEO