適材適所

WindowsやPowerShellやネットワーク、IBMなどのシステム系の話など気になったことも載せているブログです。

【PowerShell】サクッとプリンターを追加・削除する

PCのローカルにプリンタをサクッと追加したいときにはPowerShellが便利です。

Add-PrinterとAdd-PrinterPortでサクッと追加する

Add-PrinterPortコマンドレットでポートを作成して、

そのポートにAdd-Printerコマンドレットでプリンターを追加することでサクッとプリンターを追加することができます。

 
$portname="任意のポート名"
$ip="xxx.xxx.xxx.xxx"
$drivername="ドライバー名"
$name="PCで表示させる任意の名前"
Add-PrinterPort -Name $portname -PrinterHostAddress $ip
Add-Printer -DriverName $drivername -PortName $portname -Name $name

ドライバーがわからないときは

「使うべきプリンタドライバー名を忘れた!!」

というときはGet-PrinterDriverコマンドレットでPCにインストールされているドライバーの一覧を調べることができます。

 
Get-PrinterDriver|Select-Object Name

プリンターを削除したいときは

まず、Remove-Printerコマンドレットでプリンターを削除して、Remove-PrinterPortコマンドレットで割り当てていたポートを削除します。

ポートは残しておいても実害はないかも知れませんが、キレイに片づけておいた方があと腐れがなくていいかと思います。

 
$printername="削除したいプリンター名"
$portname="削除したいポート名"
Remove-Printer -Name $printername
Remove-PrinterPort -Name $portname

削除する前に、念のためRemove-Printer、Get-PrinterPortの両コマンドレットで自分が削除すべきものが正しいかチェックしてからの方が安全かと思います。

 
$printername="削除したいプリンター名"
$portname="削除したいポート名"
Get-Printer -Name $printername
Get-PrinterPort -Name $portname

ComputerNameを指定すればリモートのPCもできる

Get-Printer、Get-PrinterPort、Remove-Printer、Remove-PrinterPortの4つのコマンドレットにはComputerNameを指定できるので、

ドメイン環境などネットワークの環境によってはリモートで設定することも可能です。

「どこそこのプリンターを今すぐ使えるようにしてくれ!!」

なんて言われても安心です。

その時は各コマンドレットに-ComputerNameを追加してあげればOKです。

 
$portname="任意のポート名"
$ip="xxx.xxx.xxx.xxx"
$drivername="ドライバー名"
$name="PCで表示させる任意の名前"
Add-PrinterPort -Name $portname -PrinterHostAddress $ip  -ComputerName "PC名"
Add-Printer -DriverName $drivername -PortName $portname -Name $name -ComputerName "PC名"

カラーや両面印刷も制御できる

カラーや両面印刷もPowerShellから制御できる(できないこともありますが)こちらにまとめております。

www.tekizai.net

終わりに

ローカルでプリンターを追加して使っている私の環境だと、ちょこちょこ使っており、重宝しています。

出張先で印刷したい!!というときなど、サクッとプリンターを追加できて楽できます。

拠点がたくさんあり、プリンターの数が多いので全部登録しておくのも邪魔なので、これで登録と削除をしこしこやると・・・。

というわけで、ここまでお読みいただき、ありがとうございました。