3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Windows7)リモートPCのプリンタ・ドライバ一覧がこっそり欲しい

LAN内の別PCをGUIリモート(RDPやVNC)せずにプリンタやドライバ、ポート一覧を取得する方法です。
つまり、該当PCのユーザに知られずに取得したいということです。(悪さをするわけではないです(笑)。GUIリモートしづらいPCもあるわけで。。。)

該当PCのユーザに知られずにコマンドを実行するにはおなじみPsExecを用います。
PsExecについては(ツール)リモートコンピュータ(Windows)のコマンドやプログラムを実行するPsExec で書いてるので、そちらを参照。。

プリンタ関連の情報をコマンドで取得するにはプリンタ操作関連のVBScriptが予めWindowsに用意されているので、それを用います。
スクリプトは、%systemroot%\sysytem32\System32\Printing_Admin_Scripts\ja-JP にあります。(XPはSystem32にあります)

これらのスクリプトを使うと、プリンタの作成やドライバのインストールもバッチで行うことが可能です。

まず、PsExecで対象PCのコマンドプロンプトに接続します。

>PsExec.exe \\192.168.xxx.xxx -u ドメインAdmin -p ドメインAdminパス cmd
cd C:\Windows\System32\Printing_Admin_Scripts\ja-jp

プリンタの一覧取得は以下のように出来ます。

>cscript prnmngr.vbs -l
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


サーバー名
プリンター名 ricoh_SP C251
共有名
ドライバー名 RICOH IPSiO SP C230L DDST
ポート名 IP_192.168.xxx.xxxx
コメント RICOH IPSiO SP C230L V1.05 / RICOH Network Printer C model
場所
プリント プロセッサ winprint
データ型 RAW
パラメーター
属性 2624
優先順位 1
既定の優先順位 0
平均処理ページ数 (分) 0
プリンターの状態 アイドル
プリンターの状態の詳細 不明
検出されたエラーの状態 不明
検出されたエラーの状態の詳細 不明
....

ポートの一覧取得は以下のように出来ます

>cscript prnport.vbs -l
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


サーバー名
ポート名 192.168.xxx.xxx
ホスト アドレス 192.168.xxx.xxx
プロトコル LPR
キュー lp
バイト カウント無効
SNMP 無効
....

ドライバの一覧取得は以下のように出来ます。

>cscript prndrvr.vbs -l
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

サーバー名
ドライバー名 RICOH IPSiO SP C230L DDST,3,Windows NT x86
バージョン 3
環境 Windows NT x86
モニター名 RGDGLM Language Monitor
ドライバーへのパス C:\windows\system32\spool\DRIVERS\W32X86\3\RGDGDRV.DLL
データ ファイル C:\windows\system32\spool\DRIVERS\W32X86\3\RGDGDAT.SDD
構成ファイル C:\windows\system32\spool\DRIVERS\W32X86\3\RGDGUI.DLL
ヘルプ ファイル C:\windows\system32\spool\DRIVERS\W32X86\3\RGDG.CHM
依存しているファイル
 C:\windows\system32\spool\DRIVERS\W32X86\3\RGDGRC.DLL
 C:\windows\system32\spool\DRIVERS\W32X86\3\RGDGPCM.DLL
 C:\windows\system32\spool\DRIVERS\W32X86\3\RGDGSTR.DLL
....

参考: Technet:Prnmngr.vbs.aspx) Technet:Prnport.vbs.aspx) Technet:Prndrvr.vbs.aspx)