So installieren Sie Windows Updates über die Befehlszeile

17

Ist es möglich, Windows-Updates über die Befehlszeile zu installieren? Das grafische Update-Tool scheint in Windows 7 nicht so gut zu funktionieren. Manchmal funktioniert es, manchmal nicht ... Mein Problem ist, dass ich keine Updates sehe, wenn ich auf klicke, um die Details-Liste anzuzeigen. Wenn es also Updates gibt, die nicht standardmäßig deaktiviert sind, kann ich sie nicht installieren ...

Gibt es eine andere Möglichkeit, diese zu installieren?

Svish
quelle

Antworten:

12

Sie sind sich in Bezug auf Windows 7 nicht sicher, aber unter XP / Vista können Sie den folgenden Befehl ausführen, um Updates zu erkennen und herunterzuladen:

wuauclt /detectnow /reportnow

Wenn Sie Probleme damit haben, lesen Sie das WSUS-Wiki .

Wenn Sie ein bestimmtes Update haben, das Sie möchten, laden Sie es einfach von der Microsoft-Website herunter. Wenn Probleme auftreten, die die Installation verhindern, ist dies der beste Weg, um dies herauszufinden, da die Windows Update-Protokolle eine gute Lösung darstellen.

duffbeer703
quelle
1
Ich glaube nicht, dass dieser Link mehr gültig ist.
Natalie Adams
Nicht funktioniert für mich auf Windows 8.1 oder Windows Server 2012
nu everest
Mit dem von Ihnen angegebenen Befehl wird nach Updates gesucht und der Update-Status an den WSUS-Server gemeldet. Es werden KEINE Updates genehmigt, heruntergeladen oder installiert. Sie müssen den Parameter / updatenow hinzufügen, um eine Installation der verfügbaren Updates zu erzwingen.
duct_tape_coder
Auch der Hinweis, in Win10 / 2016 der wuauclt Befehl für usoclient ist veraltet, siehe omgdebugging.com/2017/10/09/...
duct_tape_coder
4

Mithilfe eines Skripts können Sie synchron nach Updates suchen, diese herunterladen und diese installieren. Ich verwende häufig eine geänderte Version dieses vbscript zum manuellen Patchen von Windows Core-Servern.

Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"

Set updateSearcher = updateSession.CreateUpdateSearcher()

WScript.Echo "Searching for updates..." & vbCRLF

Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")

WScript.Echo "List of applicable items on the machine:"

For I = 0 To searchResult.Updates.Count-1
    Set update = searchResult.Updates.Item(I)
    WScript.Echo I + 1 & "> " & update.Title
Next

If searchResult.Updates.Count = 0 Then
    WScript.Echo "There are no applicable updates."
    WScript.Quit
End If

WScript.Echo vbCRLF & "Creating collection of updates to download:"

Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")

For I = 0 to searchResult.Updates.Count-1
    Set update = searchResult.Updates.Item(I)
    addThisUpdate = false
    If update.InstallationBehavior.CanRequestUserInput = true Then
        WScript.Echo I + 1 & "> skipping: " & update.Title & _
        " because it requires user input"
    Else
        If update.EulaAccepted = false Then
            WScript.Echo I + 1 & "> note: " & update.Title & _
            " has a license agreement that must be accepted:"
            WScript.Echo update.EulaText
            WScript.Echo "Do you accept this license agreement? (Y/N)"
            strInput = WScript.StdIn.Readline
            WScript.Echo 
            If (strInput = "Y" or strInput = "y") Then
                update.AcceptEula()
                addThisUpdate = true
            Else
                WScript.Echo I + 1 & "> skipping: " & update.Title & _
                " because the license agreement was declined"
            End If
        Else
            addThisUpdate = true
        End If
    End If
    If addThisUpdate = true Then
        WScript.Echo I + 1 & "> adding: " & update.Title 
        updatesToDownload.Add(update)
    End If
Next

If updatesToDownload.Count = 0 Then
    WScript.Echo "All applicable updates were skipped."
    WScript.Quit
End If

WScript.Echo vbCRLF & "Downloading updates..."

Set downloader = updateSession.CreateUpdateDownloader() 
downloader.Updates = updatesToDownload
downloader.Download()

Set updatesToInstall = CreateObject("Microsoft.Update.UpdateColl")

rebootMayBeRequired = false

WScript.Echo vbCRLF & "Successfully downloaded updates:"

For I = 0 To searchResult.Updates.Count-1
    set update = searchResult.Updates.Item(I)
    If update.IsDownloaded = true Then
        WScript.Echo I + 1 & "> " & update.Title 
        updatesToInstall.Add(update) 
        If update.InstallationBehavior.RebootBehavior > 0 Then
            rebootMayBeRequired = true
        End If
    End If
Next

If updatesToInstall.Count = 0 Then
    WScript.Echo "No updates were successfully downloaded."
    WScript.Quit
End If

If rebootMayBeRequired = true Then
    WScript.Echo vbCRLF & "These updates may require a reboot."
End If

WScript.Echo  vbCRLF & "Would you like to install updates now? (Y/N)"
strInput = WScript.StdIn.Readline
WScript.Echo 

If (strInput = "Y" or strInput = "y") Then
    WScript.Echo "Installing updates..."
    Set installer = updateSession.CreateUpdateInstaller()
    installer.Updates = updatesToInstall
    Set installationResult = installer.Install()

    'Output results of install
    WScript.Echo "Installation Result: " & _
    installationResult.ResultCode 
    WScript.Echo "Reboot Required: " & _ 
    installationResult.RebootRequired & vbCRLF 
    WScript.Echo "Listing of updates installed " & _
    "and individual installation results:" 

    For I = 0 to updatesToInstall.Count - 1
        WScript.Echo I + 1 & "> " & _
        updatesToInstall.Item(i).Title & _
        ": " & installationResult.GetUpdateResult(i).ResultCode   
    Next
End If

Es scheint wie ein Zauber dafür zu funktionieren, aber ich habe es natürlich nicht unter Windows 7 getestet. Es gibt auch einen Link zu einem anderen Artikel, über den Sie bei Bedarf auf ein bestimmtes Update zugreifen können.

Es gibt auch ein Powershell-Modul , das ein ähnliches Erlebnis bietet .

Nach einem kurzen Blick fand ich auch diese Drittanbieteranwendung , die ebenfalls die Update-API verwendet, jedoch mit einigen weiteren Optionen (obwohl Sie dem Code von Drittanbietern vertrauen müssen).

Oskar Duveborn
quelle
2

Windows Update über die Befehlszeile:

www.sysadminsoftware.com/udc.html

Das Tool (Updates Deployment Commander) kann genau das tun, wonach Sie fragen. Sie können auch Parameter übergeben, um bestimmte Patches zu vermeiden, bestimmte Aktualisierungen vorzunehmen, N Minuten nach Abschluss einen Neustart durchzuführen, Berichte in CSV zu erstellen usw. Außerdem sind einige GUI-Dienstprogramme enthalten.

Sysadmin
quelle
2

Wenn Sie Windows-Betriebssysteme, insbesondere nach Neuinstallationen, patchen müssen, sollten Sie sich Offline Updater genauer ansehen .

Es werden Skripte zum Herunterladen aller von Ihnen vorgeschlagenen Patches (z. B. Win2000, Win XP, Win 2003, Vista, Win2008, Win2012 32 und 64 Bit, sofern zutreffend), mehrsprachiger Patches, Service Packs, .NET-Frameworks und Office-Patches (XP, 2000) verwendet , 2003, 2007).

Sobald Sie alle heruntergeladen haben, aktualisieren Sie einfach jeden Patch am Dienstag und erhalten nur die Änderungen. Obwohl es die Katalogen bekommt und sie jeden Tag länger werden (viele Megas jetzt pro OS / Office-Version).

Sobald Sie die Dateien auf Ihren lokalen Computer heruntergeladen haben, gibt es ein Skript, mit dem Sie CD / DVD-Images erstellen können (dies wird jetzt automatisch für DVD-Images pro Betriebssystem durchgeführt, wenn Sie möchten).

Ich verwende eine 4-GB-SD-Speicherkarte in einem SD-Kartenleser, der die Schreibschutzlasche berücksichtigt. Früher habe ich 2-GB-Karten verwendet, aber ich kann Win XP kaum anpassen, und die meisten Office-Anwendungen bauen jetzt darauf auf, sodass ich auf 4-GB-Karten übergegangen bin.

Daher vertraue ich bei der Fehlerbehebung bei einem Computer darauf, dass dieses zuvor beschreibbare Gerät in einen nicht vertrauenswürdigen, möglicherweise mit Viren infizierten Computer eingefügt wird (da ich nichts davon weiß, gehe ich davon aus, dass es infiziert ist), wenn ich weiß, dass mein Gerät schreibgeschützt ist.

Somit kann ich es als ersten Schritt auf den neuesten Stand bringen.

Wenn Sie die automatische Ausführung verwenden oder die ausführbare Datei auf dem Gerät starten (Schlüssel, externe Festplatte, CD, DVD, wo immer Sie sie geschrieben haben), wird ein Skript gestartet, das den Windows Update-Dienst auf dem lokalen Computer verwendet, um alle Aktualisierungen anzuwenden Um sie herunterzuladen, wird nur die lokale Kopie verwendet.

Aus diesem Grund kann das Aktualisieren eines WinXP-Computers auf die neuesten SPs und Patches noch mehr als 1 Stunde dauern, es ist jedoch kein Netzwerkverkehr auf dem Weg, und Sie können dies bei vollständig ausgestecktem Ethernet-Kabel tun.

Erstaunlich nützliches Werkzeug!

Sollte nicht in Konflikt mit Microsoft geraten, wie es die AutoUpdate-Leute waren, die eine Patch-CD vorbereiteten, die das CD-Image verbreitete. Dieses Tool aktualisiert Skripts und Sie müssen alle Patches auf Ihrer lizenzierten Windows-Workstation herunterladen.

geoffc
quelle
1

Ich kann der Antwort von duffbeer703 derzeit keinen Kommentar hinzufügen. Deshalb hier als separate Antwort:

Die letzte „gute“ Version des Link zum WSUSwiki wie auf dem Internet Archiv archiviert diese . Die in der ursprünglichen Antwort angegebenen Optionen werden in diesem FAQ-Eintrag beschrieben .

Olaf Mandel
quelle
Wissen Sie, was es braucht, um "ein bisschen" Reputationspunkte zu sammeln, um das Kommentierungsprivileg zu erhalten? Schlagen Sie einfach einige (relevante) Änderungen vor. Wenn sie genehmigt werden, erhalten Sie für jeden +2 Wiederholungen ... probieren Sie es aus!
Pierre.Vriens
-2

Ich glaube nicht, dass Windows Update ActiveX und eine andere Integration mit Internet Explorer erfordert, um ordnungsgemäß zu funktionieren.

Da Windows 7 noch kaum ein Release-Kandidat ist, sollten Sie mit solchen Fehlern rechnen.

Wenn Sie ein Mitglied von MSDN sind, sollten Sie den Fehler, den Sie haben, dem Entwicklerteam melden.

WerkkreW
quelle
ja ich weiß. Habe schon einen Fehler bei MSDN gemeldet.
Ich