Come posso forzare Windows a verificare la disponibilità di aggiornamenti?


25

Dopo una nuova installazione di Windows - XP o 7 - come posso "forzare" gli aggiornamenti di Windows?

Non voglio avere "vecchi" aggiornamenti di Windows dopo una settimana, quindi potrebbe essere fatto in "un passo"? Esistono comandi "magici" che obbligano Windows a verificare la presenza di aggiornamenti e, se ce ne sono, installarli?

Risposte:


12

Puoi verificare e installare gli aggiornamenti automaticamente usando uno script. Funzionerà in XP o Windows 7.

Esistono numerosi script disponibili per il download, ecco il mio :

' Written in 2007 by Harry Johnston, University of Waikato, New Zealand.
' This code has been placed in the public domain.  It may be freely
' used, modified, and distributed.  However it is provided with no
' warranty, either express or implied.
'
' Exit Codes:
'   0 = scripting failure
'   1 = error obtaining or installing updates
'   2 = installation successful, no further updates to install
'   3 = reboot needed; rerun script after reboot
'
' Note that exit code 0 has to indicate failure because that is what
' is returned if a scripting error is raised.
'

Set updateSession = CreateObject("Microsoft.Update.Session")

Set updateSearcher = updateSession.CreateUpdateSearcher()
Set updateDownloader = updateSession.CreateUpdateDownloader()
Set updateInstaller = updateSession.CreateUpdateInstaller()

Do

  WScript.Echo
  WScript.Echo "Searching for approved updates ..."
  WScript.Echo

  Set updateSearch = updateSearcher.Search("IsInstalled=0")

  If updateSearch.ResultCode <> 2 Then

    WScript.Echo "Search failed with result code", updateSearch.ResultCode
    WScript.Quit 1

  End If

  If updateSearch.Updates.Count = 0 Then

    WScript.Echo "There are no updates to install."
    WScript.Quit 2

  End If

  Set updateList = updateSearch.Updates

  For I = 0 to updateSearch.Updates.Count - 1

    Set update = updateList.Item(I)

    WScript.Echo "Update found:", update.Title

  Next

  WScript.Echo

  updateDownloader.Updates = updateList
  updateDownloader.Priority = 3

  Set downloadResult = updateDownloader.Download()

  If downloadResult.ResultCode <> 2 Then

    WScript.Echo "Download failed with result code", downloadResult.ResultCode
    WScript.Echo

    WScript.Quit 1

  End If

  WScript.Echo "Download complete.  Installing updates ..."
  WScript.Echo

  updateInstaller.Updates = updateList

  Set installationResult = updateInstaller.Install()

  If installationResult.ResultCode <> 2 Then

    WScript.Echo "Installation failed with result code", installationResult.ResultCode

    For I = 0 to updateList.Count - 1

      Set updateInstallationResult = installationResult.GetUpdateResult(I)
      WScript.Echo "Result for " & updateList.Item(I).Title & " is " & installationResult.GetUpdateResult(I).ResultCode

    Next

    WScript.Quit 1

  End If

  If installationResult.RebootRequired Then

    WScript.Echo "The system must be rebooted to complete installation."

    WScript.Quit 3

  End If

  WScript.Echo "Installation complete."

Loop 

Lo esegui dalla riga di comando in questo modo:

cscript wsusupdate.vbs

La mia sceneggiatura è solo minimamente funzionale ma può ancora essere utile. Ci sono altri script disponibili con molte funzionalità aggiuntive, prova una ricerca su Google.


Proverò questo qui! Nel frattempo qualcuno ha esperienza con questo script?
LanceBaynes,

Questo script termina con <59, 3> <null>: 0x80240044. Qualche idea sul perché questo fallisca? Ho provato a cercare i metodi a cui questo fa riferimento, ma non sono riuscito a capire cosa sta succedendo. Puoi indicarmi la giusta direzione?
daviesgeek,

@daviesgeek: 0x80240044 è WU_E_PER_MACHINE_UPDATE_ACCESS_DENIED , ovvero è necessario eseguire lo script con autorizzazioni elevate.
Harry Johnston,

Ah ... grazie. Come potrei elevare le autorizzazioni dalla riga di comando? (scusate, sono un guru di Linux, non una persona di Windows ...)
daviesgeek,

1
Vista / Win7: Apri il menu Start, digita cmd e premi control-shift-ENTER invece di semplicemente ENTER. Su Windows 8 penso che il tasto di scelta rapida di Windows-X faccia apparire un menu che include una riga di comando amministrativa. Oppure su entrambi i sistemi è possibile trovare cmd.exe tramite Explorer, fare clic con il tasto destro e selezionare Esegui come amministratore.
Harry Johnston,

41

Oltre al solito modo di utilizzare Windows Update, è possibile forzare un controllo da una riga di comando.

Apri un prompt dei comandi dell'amministratore ed esegui:

C:\> %windir%\system32\wuauclt.exe /detectnow

Wuauclt.exe è il client AutoUpdate di Windows Update e viene utilizzato per verificare la disponibilità di aggiornamenti (per le varie versioni della piattaforma MS Windows) da Microsoft Update.

Questo non forzerà un'installazione.


1
Solo per aggiungere: funziona sia su XP, Vista e 7
Canadian Luke REINSTATE MONICA,

@Luke Funziona anche con Windows 2000 SP4. :)
Ƭᴇcʜιᴇ007,

1
Tuttavia, per una nuova installazione, è meglio controllare gli aggiornamenti tramite la GUI (per Windows Vista +) o il webiste di Windows Update (Pre-Vista). Penso che ciò darà maggiore priorità al processo di download. Per impostazione predefinita, il BITS scaricherà un aggiornamento solo quando la connessione di rete non è occupata.
billc.cn,

2
Una versione abbreviata sarebbe il tasto Windows + R e quindi digitare wuauclt / detectnow e quindi premere Invio.
Steve Rathbone,

5

PER verificare la presenza di aggiornamenti, vai su Pannello di controllo, Sicurezza, Windows Update, quindi fai clic su "Verifica aggiornamenti".

inserisci qui la descrizione dell'immagine


e su winXP? :)
LanceBaynes,

In Windows XP, premi Start-> Tutti i programmi -> (Windows | Microsoft) Aggiorna ed esegui una ricerca automatica o manuale.
Jens Erat,

1
Questo non è per winXP
M. di CA

2

Un altro modo per forzare un vero rescan per gli aggiornamenti è quello di cancellare l'ardesia, eliminando tutti gli aggiornamenti memorizzati in % windir% \ Windows \ SoftwareDistribution \ Download :

    NET STOP wuauserv
    RD /S /Q %windir%\SoftwareDistribution\Download
    NET START wuauserv

Quindi vai a Windows Update e "Verifica aggiornamenti". Potrebbe volerci un'ora, perché ogni file aggiornabile sul tuo volume di sistema è controllato (i successivi "Controlli per gli aggiornamenti" saranno veloci). Questo approccio elimina errori, aggiornamenti ineccepibili e produce un sistema pulito e aggiornato, almeno nella misura in cui lo vede MS.


Grazie, ottima risposta! Stavo cercando qualcosa di più forte delle altre risposte. La mia installazione di Windows 10 è in qualche modo fallita e gli aggiornamenti non sembrano più arrivare. Ho bisogno di forzarlo per l'aggiornamento, spero che funzioni.
AzP

1

sto usando uno strumento di terze parti chiamato wuinstall per l'aggiornamento di una nuova installazione di Windows. con ciò è possibile automatizzare l'intero processo di aggiornamento, inclusi i riavvii automatici. penso che sia uno dei modi più veloci per aggiornare una nuova finestra senza la presenza dell'utente.


0

Ho scoperto che se, come parte della tua nuova installazione su Windows 7, hai aggiornato IE o non hai ancora eseguito IE e risposto alle domande introduttive, Windows Update ti darà un errore. Inoltre non ho trovato un modo per passare da Windows Update a Microsoft Update senza passare dalla GUI, quindi accendo manualmente IE, lo inizializzo e quindi configuro Windows Update tramite la GUI, così posso passare a Microsoft Update ed evitare il errore iniziale. Il tuo chilometraggio può variare.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.