0

Windows 7 64 ビット PC を使用しています。ローカル プリンターを追加しようとしています。ローカル プリンターは、ドライバーを自動的にインストールし、完了するとプリンターを共有します。ポートはループバック IP アドレス (127.0.0.1) で、Zebra (ZDesigner LP 2844) ドライバーを使用します。(ここから入手できます: http://www.zebra.com/us/en/support-downloads/desktop/lp-2844.html )

現在のスクリプトは XP ではうまく機能しますが、Windows 7 ではうまく機能しません。「Microsoft VBScript ランタイム エラー: ActiveX コンポーネントがオブジェクトを作成できません: 'Port.Port.1' for my script AddPort.vbs」というエラーが表示されます。

次のスクリプトは AddPort.vbs と呼ばれます

'ADDING:

dim oPort
dim oMaster
set oPort = CreateObject("Port.Port.1")
set oMaster = CreateObject("PrintMaster.PrintMaster.1")

wscript.echo "Adding port to local machine...."

'Indicate where to add the port. Double quotes ("" ) stand for the local computer, which is the default, or put "\\servername"
oPort.ServerName = ""

'The name of the port cannot be omitted.
oPort.PortName = "CustomPortName"

'The type of the port can be 1 (TCP RAW), 2 (TCP LPR), or 3 (standard local).
oPort.PortType = 3

'For TCP RAW ports. Default is 9100.
oPort.PortNumber = 9101

'Try adding the port.
oMaster.PortAdd oPort

'Test for the status.
If Err <> 0 then
wscript.echo "Error " & Err & " occurred while adding port"
End If

次のスクリプトは AddPrinter.vbs と呼ばれます。このスクリプトは、「Microsoft VBScript ランタイム エラー: ActiveX コンポーネントがオブジェクトを作成できません: PrintMaster.PrintMaster.1」というエラーを示しています。

' Adding a Printer
' The sample code in this section creates any required objects, adds a printer to a remote server, and configures some driver and port information. 

dim oMaster
dim oPrinter

wscript.echo "Adding VirtualPrinter printer to local machine...."

'The following code creates the required PrintMaster and Printer objects.
set oMaster = CreateObject("PrintMaster.PrintMaster.1")
set oPrinter = CreateObject("Printer.Printer.1")

'The following code specifies the name of the computer where the printer will be added. To specify the local
'computer, either use empty quotes (“”) for the computer name, or do not use the following line of code. If
'ServerName is not set, the local computer is used. Always precede the name of a remote computer with two backslashes (\\). 
oPrinter.ServerName = ""

'The following code assigns a name to the printer. The string is required and cannot be empty. 
oPrinter.PrinterName = "VirtualPrinter"

'The following code specifies the printer driver to use. The string is required and cannot be empty. 
oPrinter.DriverName  = "ZDesigner LP 2844"

'The following code specifies the printer port to use. The string is required and cannot be empty. 
oPrinter.PortName    = "LoopBack"

'The following code specifies the location of the printer driver. This setting is optional, because by default
'the drivers are picked up from the driver cache directory.
'oPrinter.DriverPath  = "c:\drivers"

'The following code specifies the location of the INF file. This setting is optional, because by default the INF
'file is picked up from the %windir%\inf\ntprint.inf directory.
'oPrinter.InfFile     = "c:\winnt\inf\ntprint.inf"

oPrinter.PrintProcessor = "winprint"

'The following code adds the printer.
oMaster.PrinterAdd oPrinter

'The following code uses the Err object to determine whether the printer was added successfully.
if Err <> 0 then
    wscript.echo "Error " & Err & " occurred while adding VirtualPrinter"
else
    wscript.echo "Printer added successfully"
end if

' To configure other printer settings, such as comments, create a Printer object and then call PrintMaster's method PrinterSet.

wscript.echo "Configuring printer...."

oPrinter.Comment = "Virtual printer to capture labels"
oPrinter.ShareName = "VirtualPrinter"
oPrinter.Shared = true
oPrinter.Local = true

oMaster.PrinterSet oPrinter
if Err <> 0 then
    wscript.echo "Error " & Err & " occurred while changing settings for VirtualPrinter"
end if

Windows 7でvbscriptを使用して、ローカルプリンターを作成し、ドライバー、ポート番号、ポート名を設定し、名前とプリントプロセッサーを共有できる他の方法はありますか???

よろしくお願いします。最高の応答がポイントを獲得します。

4

2 に答える 2

2

これは、Windows 7 の場合に必要なものです。

後で示す 7 つのプリンター ユーティリティはC:\Windows\System32\Printing_Admin_Scripts\en-US、パスに記載されていないフォルダーにあります。したがって、ユーティリティを実行するには、実際にこのフォルダに移動する必要があります。また、これらのユーティリティはコマンド ラインから実行するように設計されているため、コマンド プロンプト ウィンドウから起動し、Windows スクリプト ホストのコマンド ライン ベースのスクリプト ホスト ( Cscript.exe) を使用して実行する必要があります。

Windows 7 の VBScript 印刷ユーティリティ

VBScript ファイル | 機能
----------------------------------------------
Prncnfg.vbs | プリンター構成
Prndrvr.vbs | プリンタードライバーの構成
Prnjobs.vbs | 印刷ジョブの監視
Prnmngr.vbs | プリンター管理
Prnport.vbs | プリンターポート管理
Prnqctl.vbs | プリンタ キューの管理
Pubprn.vbs | プリンターを Active Directory に公開する

これがうまくいくことを願っています

于 2013-09-18T15:10:34.473 に答える
0

プリンターの追加を自動化する別の方法を見つけました。最初にバッチ ファイルを作成し、Windows 7 に付属の prnmngr.vbs を使用してプリンターを自動的に追加しました。これが機能するために、私はすでに Zebra ドライバーをマシンにインストールしていました (ただし、概念は他のタイプのプリンターでも同じです)。次に、バッチファイルを実行しました。

以下は、私が行った方法を示しています。ここにバッチファイルのテキストを追加しました: ファイルに名前を付けます: AddPrinter.bat

rem first change the directory to the script location
cd %WINDIR%\System32\Printing_Admin_Scripts\en-US\
rem vbs script path: %WINDIR%\System32\Printing_Admin_Scripts\en-US\Prnmngr.vbs 

rem first add the port, specify name of port, assign it an IP Address, specify the type and the Port.
cscript prnport.vbs -a -r "LoopBack" -h 127.0.0.1 -o raw -n 9100
cscript prnport.vbs -a -r "LoopBack_2" -h 127.0.0.1 -o raw -n 9101
pause

rem specify the name of the new printer, specify the driver, specify the port it will use.
cscript prnmngr.vbs -a -p "VirtualPrinter" -m "ZDesigner LP 2844" -r "LoopBack"
pause

cscript prnmngr.vbs -a -p "Zebra  LP2844" -m "ZDesigner LP 2844" -r "USB0001"
rem cscript prnmngr.vbs -a -p "Zebra  GK420d" -m "ZDesigner GK420d" -r "LPT1:"
rem cscript prnmngr.vbs -a -p "Zebra  GC420d" -m "ZDesigner GC420d" -r "COM1:"
pause

NET STOP SPOOLER
NET START SPOOLER
pause

これをカスタマイズするには、これらの Web サイトを参照として使用できます。

http://technet.microsoft.com/en-us/library/cc725868(v=ws.10).aspx

http://technet.microsoft.com/en-us/library/bb490974.aspx

http://blog.ogwatermelon.com/?p=3489

http://winadminnotes.wordpress.com/2010/02/19/how-to-manage-printers-and-printer-drivers-remotely-from-command-line/

http://technet.microsoft.com/en-us/library/cc754352(v=ws.10).aspx

于 2012-12-06T11:26:21.210 に答える