今日は失敗談です。
結局プリンタを手動で削除する以外、どうにもならなかった、そんな結論に行き着くまでの過程を記録したご報告です。
WSDポートは無効化したものの…
前回(WSDによってプリンタが自動追加⇒無効に - treedown’s Report)でWSDによってプリンタが自動追加されたプリンタ側でWSDポートを無効化し、対策完了、となったものの、PC上のデバイスとしてはWSDで追加されたプリンタはオフライン状態で残存しています。これを消したい、という話。
いつもの配布ソリューションを使うも失敗
しかし、いつも使っているPalletControlで追加と削除を実行しているので、いつも通り削除スクリプトを作成して実行してみるものの、ダメ。
うーん、なぜだろう。
ではコマンドで
コマンドで消せるのなら、そのコマンドをPalletControlで権限代行し実行することで自動化できる、ということでコマンドで消せるのか試してみたが、結論から言うとどの方法も失敗してしまい、芳しくない結果に終わってしまいました。
プリンタ削除オプションを付けた「printui.exe」コマンドの実行
printui.exe /dl /n "%プリンタ名%"
失敗。
wmicコマンドでインタラクティブに削除を実行してみるものの…
wmic
printer get name
printer where name="%プリンタ名%" delete
※wmicコマンドは「wmic printer get name」という具合にコマンド実行することもできます。
失敗。
よし、じゃあPowerShell
Remove-Printer -Name "%プリンタ名%"
やっぱエラーで失敗。
手動で、右クリックから「デバイスの削除」を選択してUACの認証を通すと削除される。
でもこの手動で削除する以外の方法では、全く削除ができない、という状況に陥りました。
よく見ると…
よく見ると、プリンタのアイコン表記が二種類あって
「オフラインを示す、半透明のプリンタアイコン」
「接続がありませんと状態に表示されているものの、通常の表示のプリンタアイコン」
の二種類で、半透明になってしまっているプリンタアイコンのプリンタは上記のようにどの方法を使っても削除ができない、ということが分かりました。
逆に、接続がありませんと(オフラインかのような)状態に表示されていても半透明ではない通常のアイコン表示になっているプリンタは、コマンド実行で削除することができます。
この辺はWSDかどうかに関係なく、削除ができるかどうかはアイコンが半透明かどうかというところが見分け方ということになりそうです。
結論として、
「オフラインとなったWSDプリンタはコマンドで削除することができない」
という結論に達し、諦めることになりました。
※正確には半透明アイコンの消せないプリンタは手動でチマチマ削除していきましょう、という方向で決まった、というほうが正しい。