2017-02-16 5 views
1

PSスクリプトを作成して、名前に "EXAMPLE"が含まれているすべてのネットワークプリンタを削除しようとしています。名前に "EXAMPLE"が含まれているプリンタを削除する

これまでのところ私は、次のコードを持っている:

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

をしかし、これは、すべてのネットワークプリンタを削除します。

答えて

3

Windows 7を使用しているので、WMIを使用してプリンタを削除することもできます。それ以外の場合は、.NETクラスSystem.PrintingまたはSystem.Drawing.Printingのメソッドを使用しています。 | +は、Get-プリンタ :あなただけに必要と同じようしかし、それはあなたの場所のブロック内の他のフィルタ、私は次のエラーを取得しています

Get–WMIObject Win32_Printer | where{($_.Network -eq 'true') -and ($_.Name -like "*EXAMPLE*") } | foreach{$_.delete()} 
+0

それはうまくいく、私は*悪いを削除します。ありがとうございました! – drifter213

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 
+0

に見えます?{$ _。Name.Contains( "EXAMPLE") - $$。タイプ-eq "接続"} | R ... + ~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:( - プリンタゲット:String)を[]、CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException 私のOSはdrifter213 @ win7のところで – drifter213

+0

でのWindows 7に 'Get-Printer'や' Remove-Printer'はありません。 – BenH

+0

@BenH Containsはここに問題ありませんか?静的な文字列メソッドであり、 '-contains'でないので – Matt

関連する問題