web-dev-qa-db-ja.com

Windows Server 2008 R2のクラスター化されたプリントサーバーでプリンターの作成をスクリプト化する方法

主題ごとに。

WMIを使用してWindowsプリントサーバーでプリンターの作成をスクリプト化する方法をいくつか見つけましたが、WMIはクラスター化されたプリントサーバー(またはクラスター化されたサーバーすべて)をサポートしていないようです。

C:\Windows\System32\Printing_Admin_Scriptsのスクリプトは、クラスターに対応しておらず、WMIを使用する場合と同様に、アクティブなクラスターノードでプリンターを作成するため、役に立たないです。

クラスター化されたプリントサーバーで動作できることがわかった唯一のツールはprintui.exerundll32 printui.dll, PrintUIEntryのショートカット)ですが、TCP印刷ポート:ポートがすでに存在する場合にのみ、プリンターを追加できます。

クラスター化されたWindows Server 2008 R2プリントサーバーでプリンターの作成(含むTCP印刷ポート!))を完全にスクリプト化するにはどうすればよいですか?

5
Massimo

これがクラスター環境で機能するかどうかはわかりませんが、古き良きprintbrm.exeツールがあります。これは、本質的にXMLでいっぱいのcabファイルを作成し、サーバー間のプリンター設定をバックアップおよび復元できます。これには、恐ろしいTCP/IPポートが含まれます。これにより、簡単なバックアップを実行したり、XMLを変更して必要なものを追加したり、クラスターに復元したりできる場合があります。 (繰り返しますが、これがクラスター対応かどうかはわかりません)。

Printbrmの例: http://technet.Microsoft.com/en-us/library/cc722360.aspx

ファイルの名前を.cabに変更し、ディスクに抽出します。

ポートファイルはbrmports.xmlです。プリンタを1、2台エクスポートして、どのように見えるかを確認することをお勧めします。

1
MikeAWood
1
MDMarra

最初にポートを作成できた唯一の方法は、VBSを使用し、事後にprintuiを使用することでした。

Set objWMIService = GetObject("winmgmts:")
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objRAWPort.Name = "IP_192.168.1.2"
objRAWPort.Protocol = 1
objRAWPort.HostAddress = "192.168.1.2"
objRAWPort.PortNumber = "9100"
objRAWPort.Put_

Set objWMIService2 = GetObject("winmgmts:")
Set objNewPort2 = objWMIService2.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objLPRPort.Name = "IP_192.168.1.3"
objLPRPort.Protocol = 2
objLPRPort.HostAddress = "192.168.1.3"
objLPRPort.Queue = "MyQueue"
objLPRPort.ByteCount = True
objLPRPort.Put_

cmd = "rundll32 printui.dll,PrintUIEntry /if /b "PRINTER NAME" /f %windir%\inf\ntprint.inf /r "IP_192.168.1.2" /m "HP Color LaserJet 4550 PS" /Z

objCommandShell.Run cmd,,True

そこにいくつかのエラーがあるかもしれませんが、それは一般的な考えです。

0
Ryan