Automatische Windows-Updates bei Windows 10 (v1709) unterdrücken


Bei Windows 10 mit der Version v1709 ist es nicht mehr so einfach möglich Automatische Windows-Updates zu verschieben, zu verzögern oder gar komplett zu unterbinden. Ok man könnte dem Rechner den Internetzugang unterbinden aber macht das Sinn? Leider herrscht hier absolutes Chaos und es ist nicht leicht sinnvolle Informationen dazu zu erhalten. Vor allem, da bei jedem Halbjahresupdate Änderungen am Updatemechanismus stattfinden. OK in der Knowledge Base ist eine Methode beschrieben, Problembehaftete Updates loszuwerden: https://support.microsoft.com/en-us/help/3183922/how-to-temporarily-prevent-a-windows-update-from-reinstalling-in-windo das gleiche für Treiber: https://support.microsoft.com/en-us/help/3073930/how-to-temporarily-prevent-a-driver-update-from-reinstalling-in-window.

Es gibt jedoch momentan jedoch noch eine einfachere Möglichkeit Automatische Updates zu unterbinden, man muss nur den Zugriff auf den Update-Session-Orchestrator Client (USOClient.EXE) unterbinden.

Öffnet man als Administrator eine Powershell-Eingabeaufforderung, so führt man einfach folgende Befehle aus:

cd "$($Env:windir)\System32"
.\takeown.exe /f .\UsoClient.exe /a
.\icacls.exe "$($Env:windir)\System32\UsoClient.exe" /inheritance:r /remove "Administratoren" "
Authentifizierte Benutzer" "Benutzer" "System"

Wichtig! Obige Befehle funktionieren nur auf einer deutschen Windowsversion! Nach dem Aufruf kann UsoClient.exe nicht mehr aufgerufen werden und es erscheint eine Fehlermeldung:

PS C:\Windows\System32> .\UsoClient.exe
Fehler beim Ausführen des Programms "UsoClient.exe": Zugriff verweigertIn Zeile:1 Zeichen:1
+ .\UsoClient.exe
+ ~~~~~~~~~~~~~~~.
In Zeile:1 Zeichen:1
+ .\UsoClient.exe
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
    + FullyQualifiedErrorId : NativeCommandFailed

Möchte man die Automatischen Updates wieder zulassen, so kann man UsoClient.exe wieder die Standardrechte zukommen lassen, indem man diesen Aufruf startet:

.\icacls.exe "$($Env:windir)\System32\UsoClient.exe" /reset

Wie funktioniert die Sache? Im Grunde entscheidend ist der Entzug der Ausführungsrechte des Benutzers bei UsoClient.EXE, d. h. es wird effektiv VORDEFINIERT\Benutzer:(RX) von UsoClient.EXE entzogen. Die aktuellen Einstellungen kann man so einsehen:

.\icacls.exe "$($Env:windir)\System32\UsoClient.exe"

Grundlage für diese Vorgehensweise war hier beschrieben: https://www.tenforums.com/tutorials/8013-enable-disable-windows-update-automatic-updates-windows-10-a-post1224927.html#post1224927. Es gibt auch noch eine Hammermethode generell Updates loszuwerden, diese ist hier beschrieben: https://www.tenforums.com/tutorials/8013-enable-disable-windows-update-automatic-updates-windows-10-a-50.html#post1236513. D. h. solange man bei oben beschriebener Methode bleibt und auf die Hammermethode verzichtet, kann man manuelle Updates über Einstellungen->Updates noch anstoßen, auch die Defenderupdates klappen problemlos.

In der Aufgabenplanung sind unter Microsoft\Windows\UpdateOrchestrator verschiedene Aufgaben welche mindestens einmal am Tag ausgeführt werden, welche nach Updates Ausschau halten. Dabei wird UsoClient.EXE aufgerufen. Wenn die Rechte entzogen sind, kann der Aufruf nicht erfolgen und die Aufgabenplanung meldet den Fehler “Zugriff verweigert (0x80070005)”, prüfbar mit diesem Befehl:

"0x{0:x}" -f (Get-ScheduledTask -TaskName "Schedule Scan"|Get-ScheduledTaskInfo).lasttaskresult

Der Beweis, dass dem tatsächlich so ist, kann hiermit erbracht werden:

Get-ScheduledTask -TaskName "Schedule Scan"| select taskname -ExpandProperty actions

taskname         : Schedule Scan
Id               :
Arguments        : StartScan
Execute          : %systemroot%\system32\usoclient.exe
WorkingDirectory :
PSComputerName   :

UsoClient.EXE kennt folgende Parameter:

StartScan
StartDownload
StartInstall
ScanInstallWait
RefreshSettings
ResumeUpdate

Zum Thema gäbe es noch mehr zu schreiben, weil einige zusätzliche Aufgaben je nach Status des Vorgangs erzeugt, bzw. geändert werden, deshalb hier ein paar Aufgabennamen, welche hier teilweise auftauchen können:

Reboot
Schedule Scan
USO_Broker_Display
AC Power Download
AC Power Install
Maintenance Install
MusUx_LogonUpdateResults

Neben obigen Aufgaben kann man davon ausgehen, wenn es AC Power gibt, dass es bei Notebooks evtl. auch DC Power Aufgaben, also

DC Power Download
DC Power Install

geben könnte. Daneben gab es beim Testen auch noch einmal

Schedule Scan Retry

als keine Netzwerkverbindung zur Verfügung stand.

Obige Ausführungen zu den Aufgabennamen beziehen sich auf eine Testmaschine. Auf einem Rechner welcher in einer Domäne war, welcher bereits auch Windows 7 und mehrere Windows 10 Updates gesehen hatte, hatte folgende Aufgaben zu bieten:

Combined Scan Download Install
Maintenance Install
MusUx_UpdateInterval
Policy Install
Reboot
Refresh Settings
Resume On Boot
Schedule Scan
USO_UxBroker_Display
USO_UxBroker_ReadyToReboot

Man kann davon ausgehen, dass z. B. Policy Install und Refresh Settings mit Gruppenrichtlinien etwas zu tun haben.

Die Aufgabennamen kann man mittels

Get-ScheduledTask | where taskpath -match UpdateOrchestrator
# oder
Get-ScheduledTask -TaskPath "\Microsoft\Windows\UpdateOrchestrator\"

ermitteln. Weitere Powershell-Aufrufe in diesem Zusammenhang seien hier noch kurz genannt:

# Dienststatus:
Get-Service UsoSvc,wuauserv
# Ermitteln von LastRuntime, LastTaskResult und NextRuntime:
Get-ScheduledTask | where taskpath -match UpdateOrchestrator|Get-ScheduledTaskInfo
# Status der Aufgaben:
Get-ScheduledTask | where taskpath -match UpdateOrchestrator|fl *
# Aktionen der einzelnen Aufgaben:
Get-ScheduledTask -TaskPath "\Microsoft\Windows\UpdateOrchestrator\"| select taskname -ExpandProperty actions

Windows hat mittlerweile auch Powershell-Cmdlets zum Updates aufrufen, diese sollen noch kurz genannt werden:

Get-WUIsPendingReboot
Get-WULastInstallationDate
Get-WULastScanSuccessDate
Start-WUScan
Install-WUUpdates
# schon länger verfügbar
Get-Hotfix

Um alles abzurunden wären jetzt noch Windows Ereigniseinträge vom UpdateOrchestrator eine schöne Sache, doch leider gibt es dazu noch keinen Provider. Komisch oder ich bin blind…

Nein, da war noch was. Unter C:\ProgramData\UsoShared\Logs finden sich .ETL-Dateien. D. h. da gibt es was! Dann sei noch schnell C:\ProgramData\USOPrivate\UpdateStore genannt. Aber dazu vielleicht irgendwann mehr.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: