Windows XPの時代、MicrosoftはOSに便利なVBScript印刷ユーティリティを提供していました。最近、Windows 10システムのWindowsフォルダをうろうろしていたところ、同じ印刷ユーティリティがまだ機能していることに気付きました。しかし、OS内に埋め込まれているため、存在を知らないと見つけるのが難しいです。そこで、これらのVBScript印刷ユーティリティを紹介し、なぜ今でも便利なのか、そしてこれらのスクリプトが役立ついくつかの例を挙げてみたいと思います。
なぜスクリプトを使用するのですか?
おそらく、この導入部分を読んだときに最初に頭に浮かんだのは、「なぜ Windows 10 でスクリプトベースの印刷ユーティリティに頼る必要があるのか? GUI ベースのプリンター ツールからすべての印刷タスクを実行できないのか?」ということでしょう。Microsoft が Windows でこれらの VBScript 印刷ユーティリティを提供し続けているのには、いくつかの理由があります。
2つ目の質問への答えは、もちろん「はい、GUIベースのプリンターツールですべての印刷タスクを実行できます」です。1つ目の質問への答えは2つあります。まず、これらのスクリプトは、Windows Script HostとWindows Management Instrumentation (WMI)が提供する強力な機能の一部を実際に活用している点です。次に、これらのスクリプトは使いやすく、コマンドラインパラメータでカスタマイズでき、特定の印刷タスクに迅速かつ直接アクセスできるという点で、利便性とパワーを兼ね備えています。
例えば、使用頻度が高く、インクカートリッジの交換が頻繁に必要になるプリンターがあるとします。プリンターをシャットダウンしてインクカートリッジ交換の通知を全員に送る代わりに、プリンターを一時的にオフラインにするカスタムスクリプトを作成して実行することができます。オフラインモードの間も、ユーザーは印刷ジョブを印刷キューに送信できます。インクカートリッジを交換したら、別のカスタムスクリプトを実行してプリンターをオンラインに戻すと、中断がなかったかのように印刷が続行されます。
参照: 印刷作業を効率化する5つのアプリケーション
プリンタユーティリティの実行
これらのプリンターユーティリティを実際に検証する前に、まずは実行方法を確認しましょう。プリンターユーティリティの実行はコマンドプロンプトから実行する必要があり、いくつかの簡潔なルールが適用されるため、少し複雑になる可能性があることを理解しておくことが重要です。
表Aに示す7つのプリンターユーティリティは、C:\Windows\System32\Printing_Admin_Scripts\en-USフォルダにありますが、パスには記載されていません。そのため、ユーティリティを実行するには、実際にこのフォルダに移動する必要があります。また、これらのユーティリティはコマンドラインから実行するように設計されているため、コマンドプロンプトウィンドウから起動し、Windows Script Hostのコマンドラインベースのスクリプトホスト(Cscript.exe)を使用して実行する必要があります。

表A: VBScript印刷ユーティリティ
これらのスクリプトを実行するための基本的な構文は、
cscript printutility.vbs { parameters }です。
さらに、パラメータ セクションに含まれる情報に「This PC」のようにスペースが含まれている場合は、そのテキストを引用符で囲む必要があります。
これらのプリンタユーティリティの使用例をいくつか詳しく見ていきましょう。ここでは、例で使用されているパラメータのみを説明します。各VBScriptユーティリティには、ここで説明するよりもはるかに多くのパラメータがあります。「詳細情報」セクションの情報を必ずお読みください。
Prncnfg.vbs
Prncnfg.vbs スクリプトは、プリンタ設定情報の表示と変更を可能にするプリンタ設定ユーティリティを提供します。また、プリンタ名の変更も可能です。
このプリンタ設定ユーティリティは、様々な状況で役立ちます。例えば、ネットワーク上のすべてのプリンタのインベントリデータベースを構築したいとします。Prncnfg.vbsスクリプトの機能を利用して、次のコマンド構文でプリンタ設定情報を表示できます。
cscript prncnfg.vbs -g [-s サーバー名] -p プリンター名 [-u ユーザー名 -w パスワード]
その後、実際のコマンドラインでリダイレクト記号を使用して出力をテキストファイルにコンパイルし、後でデータベースやスプレッドシートにインポートすることができます。このコマンドラインで使用されるパラメータは、表Bに定義されています。

表 B: プリンタ構成情報を表示するために Prncnfg.vbs スクリプトを構成するパラメーター。
Prndrvr.vbs
Prndrvr.vbs スクリプトは、プリンタドライバの一覧表示と確認を可能にするプリンタドライバユーティリティを提供します。このユーティリティでは、プリンタドライバの削除と追加も可能です。
プリンタドライバが古くなったり、不足している可能性があるプリンタの問題をトラブルシューティングする場合は、Prndrvr.vbsスクリプトを使用して、プリンタドライバを構成するすべてのファイルのリストを迅速に作成し、比較に使用できます。これを行うには、次のコマンド構文を使用します。
cscript prndrvr.vbs -l [-s サーバー名] [-u ユーザー名 -w パスワード]
このコマンド ラインで使用されるパラメータは、表 Cで定義されています。

表 C: すべてのプリンター ドライバー ファイルを一覧表示するように Prndrvr.vbs スクリプトを構成するパラメーター。
Prnjobs.vbs
Prnjobs.vbsスクリプトは、印刷ジョブの一時停止、再開、キャンセル、一覧表示などを可能にする印刷ジョブ監視ユーティリティを提供します。例えば、印刷可能なネットワークプリンタが複数あり、緊急の印刷ジョブが発生しているとします。Prnjobs.vbsスクリプトを使用すると、最も負荷の低いプリンタを検索できます。そのためには、次のコマンド構文を使用します。
cscript prnjobs -l [-s サーバー名] [-p プリンター名] [-u ユーザー名 -w パスワード]
このコマンド ラインで使用されるパラメータは、表 Dで定義されています。

表 D: すべての印刷キューを一覧表示するように Prnjobs.vbs スクリプトを構成するパラメーター。
Prnmngr.vbs
Prnmngr.vbs スクリプトは、プリンタ接続の追加、削除、一覧表示を可能にするプリンタ管理ユーティリティを提供します。また、デフォルトプリンタの設定と表示も可能です。
Prnmngr.vbsスクリプトは、複数のコンピュータに新しいネットワークプリンタ接続を素早く追加する必要がある場合に便利です。Prnmngr.vbsスクリプトを使ってインストール手順を自動化するスクリプトまたはバッチファイルを作成できます。そのためには、以下のコマンド構文を使用します。
cscript prnmngr.vbs -a -p プリンター名 [-s サーバー名] -m ドライバー名 -r ポート名 [-u ユーザー名 -w パスワード]
このコマンド ラインで使用されるパラメータは、表 Eで定義されています。
表 E: 新しいプリンタを追加するように Prnmngr.vbs スクリプトを構成するパラメータ。
Prnport.vbs
Prnport.vbs スクリプトは、標準 TCP/IP プリンタポートの作成、削除、一覧表示を可能にするプリンタポート管理ユーティリティを提供します。また、ポート構成の表示と変更も可能です。
標準TCP/IPプリンタポートを作成する必要がある場合を考えてみましょう。すべての設定が既にわかっている場合は、次の構文でPrnport.vbsスクリプトを使用して簡単に操作を実行できます。
cscript prnport.vbs -a -r ポート名 [-s サーバー名] -h ホストアドレス [-u ユーザー名 -w パスワード] [-o {raw -n ポート番号 | lpr}] [-q キュー名] [-m{e | d}] [-i SNMP 名] [-y コミュニティ名] [-2{e | d}]
このコマンド ラインで使用されるパラメータは、表 Fに定義されています。

表 F: Prnport.vbs スクリプトを使用して標準 TCP/IP プリンター ポートを作成するためのパラメーター。
Prnqctl.vbs
Prnqctl.vbs スクリプトは、プリンタキュー管理ユーティリティを提供します。このユーティリティを使用すると、プリンタの一時停止や再開、プリンタキューのクリアを行うことができます。また、プリンタでテストページを印刷することもできます。
プリンターの問題をトラブルシューティングする際には、テストページの印刷が必要になることがよくあります。これは複数の手順を要する場合があります。Prnqctl.vbsスクリプトの最も優れた機能は、コマンドラインからテストページを素早く印刷できることです。Prnqctl.vbsスクリプトを自動化する簡単なスクリプトを作成すれば、アイコンをダブルクリックするだけでテストページを印刷できます。そのためには、次の構文を使用します。
cscript prnqctl.vbs -e [-s サーバー名] -p プリンター名 [-u ユーザー名 -w パスワード]
このコマンド ラインで使用されるパラメータは、表 Gで定義されています。

表 G: Prnqctl.vbs スクリプトを使用してテスト ページを印刷するためのパラメーター。
Pubprn.vbs
Pubprn.vbsスクリプトは、Active Directoryにプリンタを簡単に公開できるツールを提供します。公開するには、次の構文を使用します。
cscript pubprn.vbs ServerName LDAP://CN=<コンテナ>,DC=<コンテナ>”
このコマンド ラインで使用されるパラメータは、表 Hで定義されています。

表 H: プリンターを Active Directory に公開するためのパラメーター。
さらに詳しく
この記事では、7つのVBScript印刷ユーティリティを紹介し、それらを使って一般的な問題を解決する方法を簡単に説明しました。ただし、ここで示した例は、これらのスクリプトが提供する機能のほんの一部に過ぎません。これらのスクリプトが提供する機能の詳細については、Microsoft TechNetサイトの「コマンドラインからの印刷管理」をご覧ください。
また読んでください…
- Windows 10 システム診断レポートを使用してトラブルシューティング情報を即座に収集する方法
- マイクロソフトがWindowsをオープンソース化する時が来た
- Windows 10のシステム復元を回復ツールとして使用する方法
- DOS から Windows の黄金時代まで: ブラウザで実行できるクラシック オペレーティング システム (画像)
- Windows 10でセーフモードにアクセスする方法
あなたの意見は?
VBScript プリンターユーティリティについてご理解いただけましたでしょうか?実際に使ってみませんか?過去にプリンターユーティリティを使ったことはありますか?もしそうなら、どのようなご経験でしたか?いつものように、ご意見や情報をお持ちの方は、ぜひディスカッションにご参加ください。