2011-08-16 18 views
5

Ho scritto uno script per cercare/scaricare/installare gli aggiornamenti di Windows su una macchina utilizzando l'oggetto COM Microsoft.Update.Session. Quando viene eseguito localmente funziona perfettamente, tuttavia quando si esegue una sessione remota o tramite Invoke-Command viene visualizzato un errore di accesso negato (0x80070005) su Microsoft.Update.Session.CreateUpdateDownloader()Remote PowerShell: Microsoft.Update.Session, accesso negato: 0x80070005

Ho ricevuto lo stesso errore se tentare di creare direttamente un oggetto Downloader, il codice per riprodurre il problema:

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

io sono un amministratore sulla macchina remota, e passando le credenziali (per me stesso in modo esplicito o qualsiasi altro account admin) alla macchina non sembra cambia qualcosa.

Ho visto questo errore ha registrato un certo numero di volte, ma non sembra essere alcuna informazione sulla soluzione del problema ...

Tutte le idee?

risposta

3

Questo è un problema noto. Sembra che ci sia un bug con l'effettivo oggetto COM stesso, poiché questo problema si verifica quando si usano VBScript, PowerShell e persino C#. C'è un buon articolo che tratta della gestione di Windows Update con PowerShell che può essere trovato here.

La soluzione alternativa consiste nell'impostare un'attività pianificata sul computer e richiamare tale attività come meglio credi.

+0

Avevo capito che era di progettazione come una "caratteristica" di sicurezza - mi chiedevo se ora fossi un po 'ingenuo! – Matt

+0

feature/bug ... è tutto relativo :) –

+0

Grande funzionalità, questo/psexec (come accennato sotto) funziona bene ... – klyd

1

il codice di aggiornamento di Windows non è richiamabile da una macchina remota. ci sono alcune soluzioni alternative sul web, incluso l'uso di psexec e uno script (powershell o vbscript).

Io stesso ho utilizzato WUInstall e BoeProx ha documentato alcune alternative e ha avviato un progetto PoshPAIG. Ho spostato i lavori prima di utilizzarli, quindi non so se funziona.

0

L'altra soluzione è modificare le impostazioni del Registro di sistema di Windows utilizzando PowerShell e, facoltativamente, riavviare wuauserv affinché le modifiche abbiano effetto.

Per esempio nelle impostazioni di Windows Server 2008R2 AutoUpdate sono disponibili all'indirizzo:

HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update 
Problemi correlati