Windows PowerShell でプリンターを管理する場合、WMI を使用する方法と、WSH の COM オブジェクト WScript.Network を使用する方法があります。ここでは、両方のツールを組み合わせて、特定のタスクを実行する例を紹介します。
プリンター接続の一覧表示
コンピューターにインストールされているプリンターを一覧表示する最も簡単な方法は、WMI の Win32_Printer クラスを使用することです。
Get-WmiObject -Class Win32_Printer -ComputerName
WSH スクリプトで一般的に使用されている COM オブジェクト WScript.Network を使ってプリンターを一覧表示することもできます。
(New-Object -ComObject WScript.Network).EnumPrinterConnections()
このコマンドから返されるのは、ポート名とプリンター デバイス名から成る単純な文字列のコレクションです。識別用のラベルが出力されないため、あまり見やすくはありません。
ネットワーク プリンターを追加する
新しいネットワーク プリンターを追加するには、WScript.Network を使用します。
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")
既定のプリンターを設定する
WMI を使用して既定のプリンターを設定するには、Win32_Printer のコレクションで目的のプリンターを検索してから、SetDefaultPrinter メソッドを呼び出します。
(Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'").SetDefaultPrinter()
WScript.Network の使い方はもう少し簡単です。それは、このオブジェクトにはプリンター名のみを引数として受け取る SetDefaultPrinter メソッドが実装されているためです。
(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')
プリンター接続の削除
プリンター接続を削除するには、WScript.Network RemovePrinterConnection メソッドを使用します。
(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")