web-dev-qa-db-ja.com

Windowsで存在しないプリンターを削除するにはどうすればよいですか?

いくつかのネットワークプリンタがプリントサーバーから削除されました。スクリプトによって自動的に削除したいと思います(例:objPrinter.delete_ in vbs)まだそれらを参照しているクライアントから。できれば、本当に知りたいのですがwhichそのような場合に削除するプリンターを、適切な交換用プリンターに自動的に接続します。そもそもそのような機能しなくなったプリンタのリストを読むことができれば、これは難しいことではありません。

GUIの状況では、「デバイスとプリンター」の下にプリンターが引き続き表示され、プリンター記号にはデフォルトのプリンターアイコンのみが表示され、グレー表示され、その横に黄色の警告三角形が表示されます。しかし、プリンタはnotリストに表示されます。 WMIクエリによる "SELECT * FROM Win32_Printer "。これで成功するクエリは他にありますか?

2

コマンドラインからGUIを使用せずにネットワークプリンタを削除するには、レジストリを更新することで可能です。

次の2つのレジストリキーには、インストールされているプリンタ定義が含まれています。

HKEY_CURRENT_USER\Printers\Connections
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers\Printers

削除するネットワークプリンタを含む上記のサブキーの名前を見つける必要があります。名前がわかれば、特定のプリンターが現在インストールされているかどうかを確認する方法にもなります。サブキーを削除してから再起動して、プリンターが削除されたままであることを確認します。

ここにはいくつかの重要なポイントがあります:

  1. プリントスプーラーサービスを停止する必要がある場合があります。
  2. プリンタキューは空である必要があり、フォルダC:\Windows\System32\spool\PRINTERS\にあります。印刷キューにアイテムがある場合、プリンタを削除することはできません。記事 Windowsで印刷キューを強制的にクリアする方法 も参照してください。
  3. プリンタを削除するGUIの方法は、管理者printui /s /t2として実行し、プリンタを選択して[削除]ボタンをクリックし、[ドライバとドライバパッケージを削除する]をオンにして[OK]をクリックすることです。

詳細については、記事 Windowsでネットワークプリンターを削除または削除できない問題の修正 を参照してください。

4
harrymc