質問者
コマンドでプリンタを削除したい

質問
-
御世話になります。
Windows10Ver1703をクライアント端末で使用致しております。
初期導入時、作業業者キッティングミスで、クライアントのデバイスとプリンタに不要なローカルプリンタが大量に残っており、一部のシステムの弊害となっております。
その為、削除用のbatをGPOスタートアップスクリプトに設定しようと検証を行っておりましたところ、下記コマンドを使用すると、ドライバ自体は削除出来ているようなのですが、デバイスとプリンタに表示が「オフライン」で残ってしまいます。
cscript prnmngr.vbs -d -p "該当プリンタ名"
プリンタを削除しました、と表示され、printerにも載って参りません。
また、レジストリ「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\」からも削除されている事を確認しております。
なお、オフラインになってしまった該当プリンタを右クリック→削除、だと表示の削除は行えます。
また不要なオフラインプリンタも同様に削除したいのですが、どうしても表示からのみ削除ができません。
一番の希望は、デバイスとプリンタから不要なプリンタ表示を消したい(削除)事なので、御知恵を拝借させて頂きたく思います。
薄識にて、乱文、恐縮ですが、何卒御教授のほど、宜しくお願い致します。
- 編集済み タタタ三郎 2018年6月20日 1:48
すべての返信
-
チャブーンです。
エクスプローラ上のプリンター表示を何とかしたいなら、rundll32.exe printui.dllコマンドを使うといいように思います。
したのページの"REM Quietly delete a named network printer - per user"か"REM Quietly delete a network printer - per machine"のしたにあるコマンドを試してください。その際、あたまにある「REM」文字列だけは除いて実施してください(コメントアウト文になっているため)。
https://community.spiceworks.com/scripts/show/71-install-or-remove-network-printers-and-drivers
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
-
rundll32 printui.dll,PrintUIEntry... の他に、ネットワークプリンターの接続、削除、既定のプリンターの設定は、WMI を利用して PowerShell や WSH からも行えますので、いろいろと試してみて期待通りになるものを探してからバッチ(.cmd)なりスクリプト(.vbs、.ps1)を作るとよいのではないでしょうか。
他にも、ローカルおよびネットワークプリンターのリスト、接続、削除は、Get-Printer、Add-Printer、Remove-Printer でもできます(既定のプリンターの設定を行うコマンドレットはないようです)。ドライバーの削除は Get-PrinterDriver と Remove-PrinterDriver で。
追記)上のURLのドキュメントにはローカルプリンターの削除がありませんでした。以下のような感じで削除できるかと。
(Get-WmiObject -Class Win32_Printer -ComputerName ローカルコンピューター名 | Where {$_.Name -eq "プリンター名"}).Delete()
または
Get-Printer
Remove-Printer -Name "プリンター名"
Get-PrinterDriver
Remove-PrinterDriver -Name "ドライバー名"
- 編集済み Yamauchi KazuoMVP 2018年6月21日 0:57 追記
-
チャブーン様、丁寧な御教授を有難うございます。
対象機を触れる時間が限られている為、御返信が大変遅くなり申し訳ございません。
御教授頂きました「rundll32 printui.dll,PrintUIEntry /q /dl /n "対象プリンタ名"」で、既存のローカルプリンタの削除は無事行えたのですが、コピーして増殖したもの(対象プリンタ名(コピー1)など、これが多数存在します)につきましては、今迄と同様、プリンタがグレーアウトになり表示に残ります。ドライバの削除は行えているようですが、デバイスとプリンタの表示からは消えてくれません。
コピーされたプリンタはコマンドで削除する事は出来ないものなのでしょうか?
度々御面倒をお掛け致しますが、御時間宜しい際にでも、再度御教示頂けますと幸いです。
どうぞ宜しくお願い致します。
-
Yamauchi Kazuo様、御世話になっております。
本日、御教授頂きました件、検証を行いましたところ、
(Get-WmiObject -Class Win32_Printer -ComputerName ローカルコンピューター名 | Where {$_.Name -eq "プリンター名"}).Delete()
では、チャブーン様より御教授頂きました、
rundll32 printui.dll,PrintUIEntry /q /dl /n "対象プリンタ名"
と同じ結果で、プリンタがグレーアウトになり表示に残りました。
get-priterで確認致しましたところ、ドライバ削除は行えているようですが、やはりデバイスとプリンタの表示からは消えてくれません。
ちなみに、Remove-Printer -Name "プリンター名"では削除は出来ませんでした。
今回、一番多くデバイスとプリンタ表示に残っているプリンタは、コピーで増殖したものとなるのですが、コピーされたプリンタはコマンドでは削除出来ないのでしょうか…。
一度、cscript prnmngr.vbs -xoでローカルドライブを全て削除してみました時は、コピーされたプリンタもきれいに消えてくれたのですが、必要なローカルプリンタがあるので使用する事が出来ません。
御面倒をお掛け致しますが、御時間宜しい際にでも、もし再度御教示頂けますと幸いです。
どうぞ宜しくお願い致します。
- 編集済み タタタ三郎 2018年6月22日 0:51
-
御世話になります。
この質問を投稿させて頂く前に、別のタイトルで投稿させて頂き御教示を頂いた者です。
何度も申し訳ないのですが、改善の糸口が掴めず再度御知恵を拝借致したく思います。
windows10CL使用、CLのプリンタは、NWプリンタ対応の物はプリントサーバよりGPOで配信、対応していないものは個別対応でインストールを行っております。
初期キッティングミス?により、各CLの「デバイスとプリンタ」に不要なローカルプリンタと、プリンタのコピーが大量に表示されてしまい、弊害を招いております。
デバイスの削除、表示から削除したいのですが、
1)cscript prnmngr.vbs -d -p "該当プリンタ名"
2)(Get-WmiObject -Class Win32_Printer -ComputerName ローカルコンピューター名 | Where {$_.Name -eq "プリンター名"}).Delete()
3)rundll32 printui.dll,PrintUIEntry /q /dl /n "対象プリンタ名"
ですと、デバイスとプリンタ上でプリンタがグレーアウトになり表示に残る端末があります。
get-priterで確認致しましたところ、ドライバ削除は行えているようですが、デバイスとプリンタの表示からは消えてくれません。
一度、cscript prnmngr.vbs -xoでローカルドライブを全て削除してみました時は、コピーされたプリンタもきれいに消えてくれたのですが、必要なローカルプリンタがあるので使用する事が出来ません。
ちなみに、グレーアウトになったプリンタは、右クリック→デバイスの削除、ですと削除する事が出来ます。
コピーで作成されたプリンタ、また一度グレーアウト表示になってしまったプリンタのコマンドでの削除は難しいものでしょうか?
薄識にて読みづらい質問で大変申し訳ございません。
御教示頂ける方がいらっしゃいましたら、何卒宜しくお願い致します。
- 結合 栗下 望Microsoft employee, Moderator 2018年7月4日 7:37 同じ内容