主題ごとに。
WMIを使用してWindowsプリントサーバーでプリンターの作成をスクリプト化する方法をいくつか見つけましたが、WMIはクラスター化されたプリントサーバー(またはクラスター化されたサーバーすべて)をサポートしていないようです。
C:\Windows\System32\Printing_Admin_Scripts
のスクリプトは、クラスターに対応しておらず、WMIを使用する場合と同様に、アクティブなクラスターノードでプリンターを作成するため、役に立たないです。
クラスター化されたプリントサーバーで動作できることがわかった唯一のツールはprintui.exe
(rundll32 printui.dll, PrintUIEntry
のショートカット)ですが、TCP印刷ポート:ポートがすでに存在する場合にのみ、プリンターを追加できます。
クラスター化されたWindows Server 2008 R2プリントサーバーでプリンターの作成(含むTCP印刷ポート!))を完全にスクリプト化するにはどうすればよいですか?
これがクラスター環境で機能するかどうかはわかりませんが、古き良きprintbrm.exeツールがあります。これは、本質的にXMLでいっぱいのcabファイルを作成し、サーバー間のプリンター設定をバックアップおよび復元できます。これには、恐ろしいTCP/IPポートが含まれます。これにより、簡単なバックアップを実行したり、XMLを変更して必要なものを追加したり、クラスターに復元したりできる場合があります。 (繰り返しますが、これがクラスター対応かどうかはわかりません)。
Printbrmの例: http://technet.Microsoft.com/en-us/library/cc722360.aspx
ファイルの名前を.cabに変更し、ディスクに抽出します。
ポートファイルはbrmports.xmlです。プリンタを1、2台エクスポートして、どのように見えるかを確認することをお勧めします。
最初にポートを作成できた唯一の方法は、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
そこにいくつかのエラーがあるかもしれませんが、それは一般的な考えです。