2010/07/06

Windows Scripting: Windows Update をリモートから ( WinRM/WinRS も NG )

PowerShell Remoting が失敗したので、もう一度、WSH スクリプトの WindowsUpdate.vbs に戻り、今度は Windows リモート シェル (WinRS) で試してみます。

ホスト (Windows Server 2008 R2 Hyper-V) の WinRS コマンドを使用して、仮想マシン winvista01.contoso.com の Windows Vista Enterprise SP1 ゲストの Windows リモート管理 (WinRM) クライアントに接続し、WindowsUpdate.vbs コマンドをリモート実行してみます。

ゲスト側では、次のコマンドラインを実行して、「y」と入力し、WinRM サービスと Windows ファイアウォールの例外を有効化しておきます。

winrm quickconfig

仮想マシンを実行中の状態で、ホスト側から次のようなコマンドラインを実行します。

winrs -r:winvista01.contoso.com:80 -u:CONTOSO\Administrator -p:パスワード "cscript.exe \\SERVERNAME\SHARENAME\WindowsUpdate.vbs"

※Windows 7 および Windows Server 2008 R2 の WinRM 2.0 は TCP ポート 5985 で接続をリスンしていますが、 Windows Vista および Windows Server 2008 以前の WinRM 1.1 は TCP ポート 80 でリスンします。そのため、Windows 7 や Windows Server 2008 R2 から WinRM 1.1 クライアントに接続する場合は、:80 のようにポート番号を指定しないと接続に失敗します。

さて結果ですが、WinRS による WindowsUpdate.vbs の実行はスクリプトの途中で失敗しました。

エラーが発生した行は、CreateUpdateDownloader() のところ。WUA API のリモート接続や、PowerShell Remoting による接続と同様に、更新プログラムの検索まではできますが、ダウンロード以降は失敗します。WUA API はリモート操作を嫌うようです。

試行錯誤はまだまだ続きそうです。

0 件のコメント: