none
プリンタドライバのインストール&ポート作成を VBS でやりたい RRS feed

  • 質問


  • Windows7 (64bit/32bit) でプリンタドライバをインストールしてポートを作成する VB Script について教えてください。

    これまで WindowsXP ではできていた VBSを、Windows7 で試してみましたが、NGでした。

    64bit版/32bit版の差異、Windows7/WindowsXPの差異、そもそもコマンドの利用法に間違いがあるのか、具体的な解決策または関連する情報ソースを教えていただけないでしょうか?

    なお、次のことは(教わって)試みましたが解決できていません。
    ・prnport.vbs の存在パスの違い
    ・管理者権限でコマンドプロンプト実行
    ・ポート名に "IP_" をつける/つけないの違い

    <<< VBS on Windows7  >>>

    Set ObjWshShell = WScript.CreateObject("WScript.Shell")
    ObjRunCommand = objWshShell.ExpandEnvironmentStrings("%SystemRoot%") & "\System32\Printing_Admin_Scripts\ja-JP"

    ObjOptionCommand1 = "rundll32 printui.dll,PrintUIEntry /if /b " & chr(34) & PrinName & chr(34) & " /f " & chr(34) & DrvPath & infName & chr(34) & " /r lpt1: /m " & chr(34) & DrvName & chr(34)
    ObjOptionCommand2 = " -a -r IP_" & PortIP & " -h " & PortIP & " -o lpr -q " & PrinPort & " -md -2d"
    ObjOptionCommand3 = "rundll32 printui.dll,PrintUIEntry /Xs /n " & chr(34) & PrinName & chr(34) & " portname IP_" & PortIP

    Return = ObjWshShell.Run(ObjOptionCommand1 ,1 ,True)
      If Err Then
         msg = MsgBox("プリンタドライバをインストール中にエラー発生" & vbCR & "処理を中止",16 ,diag)
         WScript.Quit
      End If

    If OsCheck <> "Win2K" Then
         Return = ObjWshShell.Run(ObjRunCommand & "cscript " & ObjRunCommand & "prnport.vbs" & ObjOptionCommand2 ,1 ,True)
            If Err Then
               msg = MsgBox("プリンタポート作成中にエラー発生" & vbCR & "処理を中止",16 ,diag)
               WScript.Quit
            End If
    End If

    調査の手がかりだけでも助かります。よろしくお願いします。

     

    • 移動 Yubo. Zhang 2012年10月1日 10:51 (移動元:Windows 7 ソフトウェア)
    2010年4月24日 5:45

すべての返信

  • 手がかりではありませんが、、、
    どのように NG だったのかを提示したほうがよいとおもいます
    その際、vbs ではなくコマンドそのものとその実行結果を
    提示するほうが問題がはっきりするとおもいます
    2010年4月26日 1:49
  • < 質問文をコマンド記述に改めました。アドバイスありがとうございます。>

    Windows7 (64bit/32bit) でプリンタドライバをインストールしてポートを作成する方法について教えてください。

    WindowsXPでは、ドライバインストールOK、ポート作成OK。
    Windows 7 では、ドライバインストールOK、ポート作成NG。エラーメッセージ表示はなく、ドライバはインストールされているのですが、TCP/IPポートが作成できていない状態です。

    コマンドは、次の3つを実行しています。

    1)
    rundll32 printui.dll,PrintUIEntry /if /b <プリンタ名> /f <infファイルパス> /r lpt1: /m <ドライバ名>

    2)
    <%SystemRoot%>\System32\Printing_Admin_Scripts\ja-JP\cscript <%SystemRoot%>\System32\Printing_Admin_Scripts\ja-JP\prnport.vbs  -a -r IP_192.168.10.10  -h 192.168.10.10 -o lpr -q print -md -2d

    3)
    rundll32 printui.dll,PrintUIEntry /Xs /n <プリンタ名> portname IP_192.168.10.10

    よろしくお願いします。

    以上。

    2010年4月26日 11:40
  • cscript って「System32\Printing_Admin_Scripts\ja-JP」にあるんでしたっけ?

    いま手元に Vista しかなくて、Vista では「System32」にあることを確認しただけなんですけれども。

    2010年4月27日 11:50
  • prnport.vbs のパスが Windows7 で変わったから

    スクリプトのディレクトリー変数(ObjRunCommand)を変えたら

    同じ変数を cscript.exe のディレクトリーとしても使っていた…ということでしょうか

    なぜエラーが出なかったんだろう。。。

    2010年4月27日 12:03
  • そうなんです、エラーメッセージが出ないんです。理由つきで叱ってもらえれば、すぐ素直に改めるんですけど。

    cscript については「\System32\」、「\System32\Printing_Admin_Scripts\ja-JP\」ともに試しましたが、同じ結果(エラーメッセージなし、ポート作成できず)でした。

    2010年4月28日 1:17
  • cscript.exe を C:\Windows\System32\System32\Printing_Admin_Scripts\ja-JP\ にコピーしたということでしょうか?

    手元の Windows7 で
    C:\Windows\System32\Printing_Admin_Scripts\ja-JP\cscript C:\Windows\System32\Printing_Admin_Scripts\ja-JP\prnport.vbs  -a -r IP_192.168.10.10  -h 192.168.10.10 -o lpr -q print -md -2d
    をコマンドプロンプトで実行すると
    -------------------------------------------
    'C:\Windows\System32\Printing_Admin_Scripts\ja-JP\cscript' は、内部コマンドまた
    は外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    -------------------------------------------
    と表示されますが、そこからして結果が異なるのでしょうか?

    なお、
    C:\Windows\System32\cscript C:\Windows\System32\Printing_Admin_Scripts\ja-JP\prnport.vbs  -a -r IP_192.168.10.10 -h 192.168.10.10 -o lpr -q print -md -2d
    をコマンドプロンプトで実行すると
    -------------------------------------------
    Microsoft (R) Windows Script Host Version 5.8
    Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

    作成または更新されたポート IP_192.168.10.10
    -------------------------------------------
    と表示されました。

    • 編集済み anningo 2010年4月28日 6:05 文言訂正
    2010年4月28日 6:04