PCにログオン時、通常使うプリンターをbatやPowerShellで設定する方法
本エントリーの目次
PCで作成した資料を印刷しようと、ソフトウェアの『印刷』ボタンをクリック。
このとき、こんな困った問題が起こることがあります。
いつもと違うプリンターから印刷されてしまった!
この問題は、複数のプリンターへの出力が可能となっている共用PCで、特に起こりやすい問題です。
Windows PCでは『通常使うプリンターに設定』という機能があり、コントロールパネルの『デバイスとプリンター』画面で設定できます。
そして頻繁に使うことが多いプリンターを『通常使うプリンターに設定』しておけば、ソフトウェアからの印刷操作は意図的に変更しないかぎり、『通常使うプリンターに設定』したプリンターから出力される仕様です。
共用PCでの印刷作業は、通常プリンターAを使うことになっており、プリンターAが『通常使うプリンターに設定』されている環境があったとします。
ところがあるユーザーがこれを知らず、自分が使いやすいように別のプリンターBに変更して使用。
その後に共用PCを使ったユーザーが、変更に気付かずに印刷操作を実行すると、想定していたプリンターAから出力されないという問題が起こります。
環境によっては、Aプリンターはモノクロ印刷専用、Bプリンターはカラー両面印刷専用といったように、プリンターごとに役割を決めて使っている場合もあるでしょう。
そのため誤って別のプリンターから出力されると、業務上大きな問題となってしまうことも。
この問題はPCの起動時やログオン時に、通常使うべきプリンターを『通常使うプリンターに設定』するようにしておけば、発生を未然に防ぐことができます。
そこで今回は、PCにログオン時、特定のプリンターを『通常使うプリンターに設定』する方法をご紹介します!
コマンド操作により、特定のプリンターを『通常使うプリンターに設定』する方法
特定のプリンターに対して『通常使うプリンターに設定』する方法はいくつかありますが、今回はbatやPowerShellのコマンド操作による設定方法を一つずつご紹介しましょう。
尚、本エントリーの内容は、Windows 10 Pro 1803で正常に動作することを確認しています。
batのコマンド操作による設定方法
batを使って『通常使うプリンターに設定』する場合、printui.dllの機能を使用すれば対応可能です。
具体的には以下のようなコマンドを、コマンドプロンプトで実行します。
1 | rundll32 printui.dll,PrintUIEntry /y /n "設定したいプリンターの名称" |
たとえばFaxという名前のプリンターを『通常使うプリンターに設定』する際は、コマンドプロンプトを起動してから以下コマンドを実行してください。(下記コマンドが記述されたファイルをSet-DefaultPrinter.batというファイル名で保存し、ダブルクリックで実行しても設定可能です。)
1 | rundll32 printui.dll,PrintUIEntry /y /n "Fax" |
PowerShellのコマンド操作による設定方法
PowerShellを使って設定する場合は、たとえば以下のようなコマンド操作で設定できます。
1 | (Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='設定したいプリンターの名称'").SetDefaultPrinter() |
Faxという名前のプリンターを『通常使うプリンターに設定』する場合、PowerShellを起動し、以下コマンドを実行してください。(下記コマンドが記述されたファイルをSet-DefaultPrinter.ps1というファイル名で保存し、実行しても設定可能です。)
1 | (Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='Fax'").SetDefaultPrinter() |
PCにログオン後、コマンド操作を用いて手動で通常使うプリンターの設定を変更する場合は、以上のようなコマンド操作を実行します。
※Windows10では本コマンドを実行する前に、『設定』→『デバイス』→『プリンターとスキャナー』→『Windowsで通常使うプリンターを管理する』のチェックを外してください。
PCにログオン時、特定のプリンターを『通常使うプリンターに設定』する方法
PCにログオン時、自動的に通常使うプリンターの設定を変更する場合は、コマンド操作により、特定のプリンターを『通常使うプリンターに設定』する方法で紹介しているPowerShellのコマンドが記述されたファイルを、タスクスケジューラでPCにログオン時に実行するよう設定すればOK!
まずは『Windows』キーを押しながら『R』キーを押下し、『ファイル名を指定して実行』画面を表示。
次に『名前』のテキストボックスにtaskschd.mscと入力してから、『Enter』キーを押下してください。
するとタスクスケジューラが起動するので、左側のツリーペインの任意の項目を右クリックし、『タスクの作成』をクリック。
『全般』タブで任意の名前を入力し、『タスクの実行時に使うユーザーアカウント』にusersを指定します。
次に『トリガー』タブ上の『新規』ボタンをクリックし、以下設定を行います。
- タスクの開始:ログオン時
- 設定:任意のユーザー
最後に『操作』タブで『新規』ボタンをクリックし、以下の設定を行ってください。
- 操作:プログラムの開始
- プログラム/スクリプト:powershell
加えて以下例を参考に、『引数の追加』にPowerShellファイルのパス(保存先)を指定
1 | -Command "C:\scripts\Set-DefaultPrinter.ps1" |
パスには、コマンド操作により、特定のプリンターを『通常使うプリンターに設定』する方法で紹介しているPowerShellのコマンドが記述されたファイルのフルパスを指定してください。
尚、PowerShellを使用する場合は、ExecutionPolicyがRemoteSignedなど、事前にPowerShellスクリプトが実行可能なようにPCが構成されている必要があります。
未構成の環境では、管理者権限で実行したPowerShellでSet-ExecutionPolicy RemoteSignedを実行すれば変更可能です。
以上の設定により、PCにログオンすると通常使うプリンターが変更・設定されます。(以下画像は、通常使うプリンターをFaxに変更するPowerShellスクリプトの実行後の様子。)
AD環境では、batやPowerShellスクリプトをログオンスクリプトとして実行するようにGPOを設定し、対象のPCが属するOUに対してリンクすれば、複数のPCに対して一括で設定することも、もちろん可能です!
※GPOの[コントロールパネルの設定]-[プリンター]でも設定可能ですが、条件分岐の結果に応じて設定対象を変更する場合など、細かな制御をしたい場合はログオンスクリプトを使う必要があります。
PCにログオン時、特定のプリンターを『通常使うプリンターに設定』したいときは、今回ご紹介した方法を参考に設定を行ってみてくださーい!