Wie erzwinge ich, dass Windows nach Updates sucht?

25

Wie kann ich nach einer neuen Windows-Installation (XP oder 7) Windows-Updates erzwingen?

Ich möchte nach einer Woche keine "alten" Windows-Updates mehr haben. Könnte das also in "einem Schritt" erledigt werden? Gibt es irgendwelche "magischen" Befehle, die Windows dazu zwingen, nach Updates zu suchen und diese zu installieren, falls es welche gibt?

LanceBaynes
quelle

Antworten:

12

Sie können mithilfe eines Skripts automatisch nach Updates suchen und diese installieren. Dies funktioniert entweder unter XP oder Windows 7.

Es gibt eine Reihe von Skripten zum Herunterladen, hier meine :

' 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 

Sie führen dies von der Kommandozeile aus wie folgt aus:

cscript wsusupdate.vbs

Mein Skript ist nur minimal funktionsfähig, kann aber trotzdem nützlich sein. Es gibt andere solche Skripte mit vielen zusätzlichen Funktionen, versuchen Sie eine Google-Suche.

Harry Johnston
quelle
Ich werde dieses ausprobieren! Hat mittlerweile jemand irgendwelche Erfahrungen mit diesem Skript?
LanceBaynes
Dieses Skript wird mit beendet <59, 3> <null>: 0x80240044. Irgendeine Idee, warum dies fehlschlägt? Ich habe versucht, die Methoden zu finden, auf die in diesem Artikel verwiesen wird, konnte aber nicht herausfinden, was passiert. Können Sie mich in die richtige Richtung weisen?
Daviesgeek
@daviesgeek: 0x80240044 ist WU_E_PER_MACHINE_UPDATE_ACCESS_DENIED, dh Sie müssen das Skript mit erhöhten Berechtigungen ausführen .
Harry Johnston
Ah, Danke. Wie würde ich Berechtigungen über die Befehlszeile erhöhen? (Entschuldigung, ich bin ein Linux-Guru, keine Windows-Person ...)
Daviesgeek
1
Vista / Win7: Öffnen Sie das Startmenü, geben Sie cmd ein und drücken Sie die Tastenkombination STRG-UMSCHALT-EINGABETASTE anstatt nur die EINGABETASTE. Unter Windows 8 wird mit der Windows-X-Tastenkombination ein Menü mit einer Verwaltungsbefehlszeile angezeigt. Oder auf beiden Systemen finden Sie cmd.exe über den Explorer, klicken Sie mit der rechten Maustaste und wählen Sie Als Administrator ausführen.
Harry Johnston
41

Über die übliche Verwendung von Windows Update hinaus können Sie eine Überprüfung über eine Befehlszeile erzwingen.

Öffnen Sie eine Administrator-Eingabeaufforderung und führen Sie Folgendes aus:

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

Wuauclt.exe ist der AutoUpdate-Client von Windows Update und wird verwendet, um nach verfügbaren Updates (für die verschiedenen Versionen der MS Windows-Plattform) von Microsoft Update zu suchen.

Dies erzwingt keine Installation.

ƬᴇcƬᴇιʜ007
quelle
1
Nur um es hinzuzufügen: Dies funktioniert sowohl auf XP, Vista als auch auf 7
Kanadier Luke REINSTATE MONICA vom
@ Luke Es funktioniert auch für Windows 2000 SP4. :)
ƬᴇcƬᴇιʜ007
1
Für eine Neuinstallation sollten Sie jedoch über die GUI (für Windows Vista +) oder die Windows Update-Website (Pre-Vista) nach Updates suchen. Ich denke, dies wird dem Downloadprozess eine höhere Priorität geben. Standardmäßig lädt das BITS nur dann ein Update herunter, wenn die Netzwerkverbindung nicht belegt ist.
billc.cn
2
Eine Kurzversion wäre Windows-Taste + R, geben Sie wuauclt / detectnow ein und drücken Sie die Eingabetaste.
Steve Rathbone
5

Um nach Updates zu suchen, gehen Sie zu Systemsteuerung, Sicherheit, Windows Update und klicken Sie auf "Nach Updates suchen".

Bildbeschreibung hier eingeben

surfasb
quelle
und auf winXP? :)
LanceBaynes
Drücken Sie in Windows XP Start-> Alle Programme -> (Windows | Microsoft) Aktualisieren und führen Sie eine automatische oder manuelle Suche durch.
Jens Erat
1
Dies ist nicht für WinXP
M. von CA
2

Eine andere Möglichkeit, eine erneute Suche nach Updates zu erzwingen, besteht darin, den Slate sauber zu machen, indem alle in % windir% \ Windows \ SoftwareDistribution \ Download gespeicherten Updates gelöscht werden :

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

Gehen Sie dann zu Windows Update und "Nach Updates suchen". Es kann eine Stunde dauern, da jede aktualisierbare Datei auf Ihrem System-Volume überprüft wird (nachfolgende "Überprüfungen auf Aktualisierungen" sind schnell). Dieser Ansatz beseitigt Fehler, verpatzte Aktualisierungen und liefert ein sauberes, aktuelles System, zumindest soweit es die MS sieht.

Rajah
quelle
Danke, tolle Antwort! Ich suchte nach etwas Stärkerem als die anderen Antworten. Meine Windows 10-Installation ist irgendwie verpfuscht, und die Updates scheinen nicht mehr zu kommen. Ich muss es zwingen, zu aktualisieren, hoffe, dass dies funktioniert.
AzP
1

Ich verwende ein Tool eines anderen Anbieters namens wuinstall, um die Installation von neuen Fenstern zu aktualisieren. Damit können Sie den gesamten Aktualisierungsprozess einschließlich automatischer Neustarts automatisieren. Ich denke, es ist eine der schnellsten Möglichkeiten, ein neues Fenster auf den neuesten Stand zu bringen, ohne dass der Benutzer daran teilnimmt.

Hansi
quelle
0

Ich habe festgestellt, dass Windows Update eine Fehlermeldung ausgibt, wenn Sie im Rahmen Ihrer Neuinstallation unter Windows 7 den IE aktualisiert haben oder noch keinen IE ausgeführt haben und die einleitenden Fragen beantwortet haben. Ich habe auch keine Möglichkeit gefunden, Windows Update auf Microsoft Update umzustellen, ohne die GUI zu durchlaufen. Daher starte ich den IE manuell, initialisiere ihn und richte Windows Update über die GUI ein, damit ich zu Microsoft Update wechseln und das vermeiden kann Anfangsfehler. Ihr Kilometerstand kann variieren.

Kent
quelle
0

Ich hatte Erfolg mit den Schritten in diesem Beitrag . Durch die Installation von IE8 & WI4.5 werden automatische Updates ausgelöst, um Downloads zu starten.

Prüfsumme
quelle