見出し画像

PowerShell プリンタを削除したい

会社で複合機の入替があったとき古い方の複合機ドライバを消したいときがあります。その設定例です。


基本コマンドはこう

#プリンタを消す場合
cscript C:\Windows\System32\Printing_Admin_Scripts\ja-JP\prnmngr.vbs -d -p "プリンタ名"

#プリンターポートを消す
cscript C:\Windows\System32\Printing_Admin_Scripts\ja-JP\prnport.vbs -d -r "ポート番号"


使い方は次の通り


・IPアドレスから検索して削除する場合


$IP = "192.168.101.245" #プリンタ割り当てのIPアドレス
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP

$printerlist = Get-Printer
foreach($i in $printerlist) {
  if($i.PortName.Contains($IP)) {
  write-host $i.name
  write-host $i.PortName
  cscript prnmngr.vbs -d -p $i.name
  cscript prnport.vbs -d -r $i.PortName
  }
}


・プリンタ名から検索して削除する場合


$PRINTERNAME ="*DocuCentre*" #プリンタ名の一部、または全部
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP

$printerlist = Get-Printer
foreach( $i in $printerlist ) {
  if( $i.name -like $PRINTERNAME ) {
  write-host $i.name
  write-host $i.PortName
  cscript prnmngr.vbs -d -p $i.name
  cscript prnport.vbs -d -r $i.PortName
  }
}
#プリンタを複数消す場合はアスタリスク(*)などを使う



プリンタポート削除のとき、もし以下のエラーが出る場合

ポートを削除できません エラー 0x80041001 エラーです
操作 DeleteInstance
プロバイダー Win32 Provider
説明 要求されたリソースは使用中です。

Spoolerサービスを以下のコマンドで再起動すれば消せます。

net stop Spooler
net start Spooler


#PowerShell #プリンタ #プリンタ一覧 #プログラミング #プログラミング学習 #コマンドレット #Windows


他のプリンタ関係の記事:


この記事が気に入ったらサポートをしてみませんか?