プロが教えるわが家の防犯対策術!

PC上で設定されているプリンタ一覧をバッチファイルを利用してテキストファイルに出力したいです。
どなたかご存知の方がいらっしゃいましたらご教授ください。

【要件詳細】
○目的
PC端末(OS:WindowsXP)上でバッチファイルを使い、設定されているプリンタ一覧をテキストで出力したい。
数台程度であれば手動で確認するが数十台の為、手間をかけずに情報取得したい
(端末利用者が専門知識を有しないため極力手動作業の負担はなくしたいのです)

○プリンタの接続形式
LAN
シリアル

○試したこと
「rundll32 printui.dll,PrintUIEntry」コマンドを利用して試してみたのですが
うまくいきませんでした。。。

以上、よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

WindowsXPならばC:\Windows\system32のなかに



 prn*.vbs というシリーズのスクリプトが何個か入っています

この中のprnmngr.vbsでプリンタ定義を出力できます。

cscript prnmngr.vbs -? で使用法がでます
    • good
    • 6
この回答へのお礼

ありがとうございます。
アドバイス頂いた内容で閲覧することができました。
困っていたので助かりました。
※cscript prnmngr.vbs -lで現在設定の表示ができました

ありがとうございました。

お礼日時:2010/04/20 14:52

バッチファイルにこだわらないのなら VBScript で WMI を使うって手も。


WMI の Win32_Printer クラスからプリンター一覧を列挙させて,
Name プロパティーと PortName プロパティーを出力するとか。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qネットワーク内のプリンタ等のIPアドレスを調べる方法

こんにちは。

既存のネットワークにコンピュータを一台追加したのですが、そのネットワークの中にあるプリンタのIPアドレスが分かりません。
IPアドレスが分かっていれば、コマンドプロンプトのPINGコマンドでパケットが届くか確認できますが、IPアドレスが不明なプリンタや複合機のIPアドレスはどうやって調べればいいんでしょうか?
一旦初期化して出荷時のIPアドレスに戻した後再設定という方法は取らずに、コマンドプロンプトで調べられる方法があれば教えてください。
よろしくお願いします。

Aベストアンサー

はじめまして
プリンタのIPアドレスを調べる場合PC側からの検索は困難です。
大抵のネットワーク対応プリンタであれば、ステータスシートをプリンタの
パネルを操作することで出力できます。
シートの中にIPアドレスが記載されているのでそちらを参照されてはいかがでしょう?

QネットワークプリンタのIPアドレス変更

社内のIPアドレスを変更することになり、その影響で各クライアントに設定されているプリンタのIPアドレスも変更しなくてはいけません。
一台ずつ設定して回るのは、難しいので、ログオンスクリプトで対応できないかと考えています。
どのように記述すれば行えるでしょうか?
また、ほかによい方法があれば教えていただけるでしょうか?
環境: Server:windows server 2003 r2,Client:windows 7とxp混在。
(Active Directoryを運用しています)
よろしくお願いいたします

Aベストアンサー

プリンタの設定変更は結構厄介ですね。
実際に実施していないので確実な保証は出来ませんがこんな感じで出来るのではないかと思います。

>一台ずつ設定して回るのは、難しいので、ログオンスクリプトで対応できないかと考えています。

ログオンスクリプトで実施する場合には、ログオンユーザーの権限とWindows7の場合はUACを考慮しなければなりません。
ログオンユーザーに管理者権限が無い場合はコマンドに資格情報を記載するなどの対応が必要になると思います。
この場合スクリプトに権限のあるユーザーとパスワードが記載されることになります。
(移行作業中の期間限定でドメインユーザーを作成し、制限されたグループなどで管理者権限を与えるなどが考えられます)

あと、プリンタ名が端末ごとまちまちだとそもそもスクリプトでの変更がなりたちませんので注意が必要です。

設定は大きく2つ必要です。
(1)新しいIPアドレスのプリンタポートを新規作成
(2)プリンタが新しいプリンタポートを使用するよう変更

(1)は
Prnport.vbs でプリンタポートを作成します。
以下を参考にして、旧IPアドレスのポートとIPアドレス以外が同じ設定のプリンタポートを作成します。
http://technet.microsoft.com/ja-jp/library/cc754352(v=ws.10).aspx

WinodwsXPとWindows7でPrnport.vbsの格納場所が若干異なるので注意して下さい。
OSを判定してパスを変える必要があると思います。
(スクリプト内でもグループポリシーでWMIフィルタやOUを分けるなどで対応は問題ないでしょう)

(2)は
WMIにてプリンタの割り当てられているポートを変更します。
以下を参考にして下さい。
http://www.wmifun.net/sample/vb6/win32_printer_f.html

なお、これはVB6のサンプルでVBSのサンプルが現在移行準備中となっていてありません。
VB6のサンプルからVBスクリプトを起こす必要があります。(ほかのWebサイトに良いサンプルがあるかもです)

こちらのWin32_Printer クラスのリファレンスをみればわかりますが、
要は、Nameプロパティが該当のプリンタ名のプリンタでPortNameを設定すれば良いだけなのでWMICコマンドでも何とかなりそうに思います。
(WMICは資格情報を指定するオプションがありますのでこちらのほうがいいかも)

http://www.wmifun.net/library/win32_printer.html

WMICの説明はこちら

http://www.atmarkit.co.jp/fwin2k/win2ktips/1011wmicbasic/wmicbasic.html


グループポリシーの基本設定でも出来るかもしれませんがXPがネックになりますね。

プリンタの設定変更は結構厄介ですね。
実際に実施していないので確実な保証は出来ませんがこんな感じで出来るのではないかと思います。

>一台ずつ設定して回るのは、難しいので、ログオンスクリプトで対応できないかと考えています。

ログオンスクリプトで実施する場合には、ログオンユーザーの権限とWindows7の場合はUACを考慮しなければなりません。
ログオンユーザーに管理者権限が無い場合はコマンドに資格情報を記載するなどの対応が必要になると思います。
この場合スクリプトに権限のあるユーザーとパ...続きを読む

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Qコマンドプロンプトを使ってipアドレスからコンピュータ名を知る方法

ipアドレスは分かっていますがコンピュータ名が分かりません。リモート接続ソフトなどは使えないので、それでコンピュータ名を調べることはできません。
コマンドプロンプトを使ってipアドレスからコンピュータ名を知る方法を教えてください!

Aベストアンサー

なんか回答がバラバラなので整理しましょう。
調査している自分自身が使用している端末は、Windows XPのPCであると仮定します。
また、調べるのは基本的に外部から名前解決可能な名前(No.2さんの言う"2"に相当する名前)とします。

パターン1:
対象のIPアドレスがWindows端末機で、自分が使用している端末と同じネットワークに属しているか同一のWINSサーバを参照しているとき……No.4さんの答えで検索できます。

nbtstat -A <IP Address>

パターン2:
ネットワーク管理者がDNSをきちんと管理しており、対象IPについても管理者の管理下にある場合……以下2つのいずれかの方法で検索できます。

  nslookup <IP address>

または

  nslookup -q=ptr <reverse ip>.in-addr.arpa.
  ex) 192.168.12.1 のIPを調べたい場合、以下のように入力する
  nslookup -q=ptr 1.12.168.192.in-addr.arpa.

  (DNSサーバで逆引きが設定されていないと、正しく検索できない場合があります)

パターン3:
上記以外の場合

外部から名前解決できないので、調べようがありません。または、調べてもそれが正しいホスト名である保証がありません。
そのIPの端末自体に設定されているホスト名を直接調べるしかありませんが、それには実際にそのIPの端末を操作して調べるしかありません。
つまり、No.2さんの回答となるのですが、
IPを使用しているのがWindows PCやUnixサーバなどである保証はないので、確認するコマンドはその端末の種類(OS)によって異なります。

なお、tracert (traceroute)を使用する、という回答がありますが、これはパターン1またはパターン2のいずれかまたは両方を満たしていないと表示されませんので、厳密には正しい答えとはいえません。
(たいていの場合、"tracert <IP address>" や "ping <IP address>"で用が足りてしまうことも多いので、必ずしも間違いではないのですが)

なんか回答がバラバラなので整理しましょう。
調査している自分自身が使用している端末は、Windows XPのPCであると仮定します。
また、調べるのは基本的に外部から名前解決可能な名前(No.2さんの言う"2"に相当する名前)とします。

パターン1:
対象のIPアドレスがWindows端末機で、自分が使用している端末と同じネットワークに属しているか同一のWINSサーバを参照しているとき……No.4さんの答えで検索できます。

nbtstat -A <IP Address>

パターン2:
ネットワーク管理者がDNSをきちんと管理して...続きを読む

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

Qコマンドプロンプトで印刷実行

コマンドプロンプトでテキストファイルを印刷したいのですが、正常に動作しません。
記述は下記の通りです。
直結してあるレーザープリンタを、LPT1ポートで接続しています。
print /d:LPT1: TEST.TXT
実行したところ、プリンタの動作音が一瞬鳴るのですが、紙は出力されません。
どうかよろしくお願いします。

Aベストアンサー

ノートパッドを使ってこんなのはどうでしょうか。

   notepad.exe /pt "TEST.TXT" "LPT1"

下記のページに載っていました。

参考URL:http://www.fpcu.jp/dosvcmd/bbs/log/print/4-1354.html

QVBS【プリンタドライバのインストール・設定】

VBS【プリンタドライバのインストール・設定】

プリンタの変更に伴い、数十台のパソコンにドライバをインストールし、
設定しなおさなければならなくなりました。

パソコンはuser権限のため、
管理者でログインしなおしてもよいのですが、
時間短縮のため、user権限のまま、
ワンクリックでインストール、設定できるようなスクリプトが作れたらいいかな?と思っています。

で、以下のように書き、管理者のパスワードを入力しても、
エラーは出ませんが、インストールができません。
初心者なので、基本的なところが、間違っているのかもしれませんが…。

どこが悪いのか、
またどこを直したらよいか、
これよりもいい方法がある、とか教えて頂けたらと思います。
プリンタが変更なだけで、IPはそのままですので、
ポートは既にあります。(例P0.0.0.0)

あともう一つ、やりたいことが、インストール出来た後に、
「プロパティ」「セキュリティ」タブの「Everyone」のアクセス許可の「プリンタの管理」と「ドキュメントの管理」にもチェックが入っている状態にしたいのですが…。

よろしくお願いいたします。

※※※※※※※※※※※※※※※※※※※※※※※※
Option Explicit

Dim WshShell
Dim install

install = "rundll32 printui.dll,PrintUIEntry /if /b ""プリンタ名"" /f ""infファイルがある場所"" /r ""P0.0.0.0"" /m ""モデル名"""

install = "runas /user:ドメイン名\管理者名 ""install"""

Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run install

※※※※※※※※※※※※※※※※※※※※※※※※
のような感じです。
お願い致します。

VBS【プリンタドライバのインストール・設定】

プリンタの変更に伴い、数十台のパソコンにドライバをインストールし、
設定しなおさなければならなくなりました。

パソコンはuser権限のため、
管理者でログインしなおしてもよいのですが、
時間短縮のため、user権限のまま、
ワンクリックでインストール、設定できるようなスクリプトが作れたらいいかな?と思っています。

で、以下のように書き、管理者のパスワードを入力しても、
エラーは出ませんが、インストールができません。
初心者なので、基本...続きを読む

Aベストアンサー

こんにちは。

>あともう一つ、やりたいことが、インストール出来た後に、
>「プロパティ」「セキュリティ」タブの「Everyone」のアクセス許可の「プリンタの管理」と「ドキュメントの管理」にもチェックが入っている状態にしたいのですが…。

以下のコマンドで、プリンタのセキュリティ情報をファイルに保存できます。
以下を実行すると、printerのセキュリティ情報がfile.datに保存されます。
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" s


以下のコマンドで、プリンタのセキュリティ情報をファイルから復元します。
以下を実行すると、file.datのセキュリティ情報がprinterに復元されます。
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s


手順を簡単に纏めると
1.Everyoneのアクセス許可の「プリンタの管理」、「ドキュメントの管理」にチェックを入れる。
2.セキュリティ情報をファイルに保存。
3.追加したプリンタに、セキュリティ情報を復元。

【注意】
セキュリティ情報に保存・復元される内容は、設定されているすべてのユーザのものになります。
展開するセキュリティ情報を作るときに、不要なユーザが混ざらないように気をつけてください。

こんにちは。

>あともう一つ、やりたいことが、インストール出来た後に、
>「プロパティ」「セキュリティ」タブの「Everyone」のアクセス許可の「プリンタの管理」と「ドキュメントの管理」にもチェックが入っている状態にしたいのですが…。

以下のコマンドで、プリンタのセキュリティ情報をファイルに保存できます。
以下を実行すると、printerのセキュリティ情報がfile.datに保存されます。
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" s


以下のコマンドで、プリンタのセキュリテ...続きを読む

Qbatファイルを使用したプリンタ設定

今、RICOHのIPSIOを使用しているのですが、
ファイルによって、余白のサイズが異なるため
バッチファイルを使用してプリンタの設定を
印刷するドキュメント毎に変更しようとしています。

行いたいことは、
1.バッチファイル1実行
   バッチファイルの内容:現在のプリンタの設定をエクスポート
              して保存する。
2.バッチファイル2実行
   バッチファイルの内容:あらかじめ保存していたプリンタの
              設定ファイルをインポートし、設定する。
3.バッチファイル2の設定で印刷する。
4.バッチファイル3実行
   バッチファイルの内容:1.でエクスポートした設定を
              インポートし、元の状態に戻す。

という流れをバッチファイルを使用して行いたいのですが、可能でしょうか?
プリンタは「通常使うプリンタ」に設定している1台を使用しようとしています。

Aベストアンサー

ちゃんと見てませんが、できるとしたら、
Rundll32 printui.dll,PrintUIEntry
ですね。ヘルプは
Rundll32 printui.dll,PrintUIEntry /?
で。

Qショートカットをデスクトップに作るコマンドを教えて下さい

お世話になります。

WindowsXPや2000のパソコンが100台以上あります。
サーバーに置いてあるTESTER.EXEを各パソコンにコピーするバッチを作るまでは完成しました。
次に、このTESTER.EXEのショートカットをデスクトップに作りたいのですが、どういうコマンドになりますか?
ユーザー名はパソコンによってバラバラなので、その辺のコマンドの書き方もどう書いていいのかわかりません。
なんか変数みたいな何かがあったような気がしますが、よく覚えていません。

参考までにTESTERCOPY.BATはこのようになっています。
最後の行にコマンドが入れば完成となります。
------------------------------------------------------------
C:
CD "\Program Files"
MD AAA
XCOPY /S "\\192.168.0.1\AAA\TESTER.EXE" "C:\Program Files\AAA\"
(TESTER.EXEのショートカットをデスクトップに作るコマンド)
------------------------------------------------------------

以上、宜しくお願いします。

お世話になります。

WindowsXPや2000のパソコンが100台以上あります。
サーバーに置いてあるTESTER.EXEを各パソコンにコピーするバッチを作るまでは完成しました。
次に、このTESTER.EXEのショートカットをデスクトップに作りたいのですが、どういうコマンドになりますか?
ユーザー名はパソコンによってバラバラなので、その辺のコマンドの書き方もどう書いていいのかわかりません。
なんか変数みたいな何かがあったような気がしますが、よく覚えていません。

参考までにTESTERCOPY.BATはこのように...続きを読む

Aベストアンサー

過去の質問です。
参考になるよね?
http://oshiete1.goo.ne.jp/qa2930427.html

Qプリンタの設定をコピーしたい。

プリンタの設定を数台のマシンにコピーをしたいのですがどうしたら良いでしょうか?
レジストリを書き出して復元させればできるような気がするのですが、格納場所が分かりません。。
またそんな方法でよいのかも分かりません。

どなたか教えてください。
なにとぞ宜しく御願いいたします。

Aベストアンサー

そうでしたか。
大変な作業になりますね。

実は、プリンタドライバは社外製(当然系列会社)が多く、著作権の問題などもあり、そういったことは教えてもらえません。

ただ、新しいプリンタの追加を行うと、コピー先として「C:\WINDOWS\system32\spool\drivers\w32x86\3」が出てきて、
確かのそこには見慣れたプリンタの名前がありますので、そのあたりはどんなものでしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング