2011-08-16 99 views
5

Microsoft.Update.Session COMオブジェクトを使用しているマシンでWindows Updatesを検索/ダウンロード/インストールするためのスクリプトを作成しました。ローカルで実行すると正常に動作しますが、リモートセッションまたはInvoke-Commandを実行すると、Microsoft.Update.Session.CreateUpdateDownloader()でアクセス拒否(0x80070005)エラーが発生するPowershell Remote:Microsoft.Update.Session、アクセスが拒否されました:0x80070005

私が私は、リモートマシンの管理者で、そしてマシンに(明示的に自分のためにまたは任意の他の管理者アカウント)の資格情報を渡すことはしていないよう

$oUpdateDownloader = new-object -com "Microsoft.Update.Downloader" 

:コードは、問題を再現するために、直接Downloaderのオブジェクトを作成しよう何かを変える。

私は...このエラーは回数を投稿が、問題を解決する上の任意の情報があるようには思えない

任意のアイデアを見てきましたか?

答えて

3

これは既知の問題です。 VBScript、PowerShell、およびC#を使用している場合にこの問題が発生するため、実際のCOMオブジェクト自体にバグがあるようです。 hereというPowerShellを使用してWindows Updateを管理する方法について説明している記事があります。

回避策は、コンピュータ上でスケジュールされたタスクを設定し、そのタスクを適切に呼び出すことができます。

+0

私はこれがセキュリティ上の「機能」として設計されていると思っていました。 – Matt

+0

機能/バグ...そのすべての相対:) –

+0

この機能は、この/ psexec(以下に述べるように)うまく動作します... – klyd

1

Windows Updateコードは、リモートマシンから呼び出し可能ではありません。 psexecとスクリプト(powershellまたはvbscript)の使用を含む、ウェブ上でいくつかの回避策があります。

自分でWUInstallを使用しました。BoeProxにはいくつかの代替案が記載されており、プロジェクトPoshPAIGが開始されています。私はこれを使用する前に仕事を移動したので、それが動作するかわからない。

0

もう1つの解決方法は、PowerShellを使用してWindowsレジストリ設定を変更し、必要に応じてwuauservを再起動して変更を有効にすることです。私は詳細なスクリプトを使用

psexec -s \\remote-server-name C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe \\server\script.ps1 

:リモートでのスクリプトファイルを使用してPowerShellを実行するために

HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update 
関連する問題