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")




目次