Konfigurieren Sie Windows Update in Windows Server 2016

1458
M4ver1k

Problem

Aktivieren Sie Windows Update, um die Installation automatisch herunterzuladen und zu planen. Planen Sie die Ausführung an einem bestimmten Tag (Samstag).

Lösung habe ich versucht

Schreiben Sie powershellmit gpmc/ grouppolicymodule ein Skript, um die Windows Update-Einstellungen zu ändern.

Der Endzustand, nach dem ich suche, ist:

gpedit.msc ->Administrative Templates/Windows Components/Windows Update

Automatisches Update konfigurieren ->

Enabled  Auto download and schedule the install (4)  Every Saturday (7) 

Probleme, mit denen es zu tun hat

Für Windows Server 2016, das Powershell verwendet, wurde keine Dokumentation gefunden.

Anmerkungen:

  • Die Maschine ist nicht Teil von AD.
  • Ich versuche die lokalen Richtlinien zu ändern.
3

1 Antwort auf die Frage

3
Ben N

Leider kann das Get-GPOCmdlet nur GPOs von einer Domäne abrufen. Es scheint kein verwaltbares Äquivalent der COM-Methode zu geben IGroupPolicyObject::OpenLocalMachineGPO. Es gibt jedoch andere Möglichkeiten, dies einzustellen. Unter der Annahme, dass die vorhandene Gruppenrichtlinie diese Richtlinieneinstellung nicht bereits angibt, sollte das direkte Anpassen der Registrierung problemlos funktionieren:

$hklm = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Default') $wu = $hklm.CreateSubKey('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU') $wu.SetValue('NoAutoUpdate', 0, 'DWord') $wu.SetValue('AUOptions', 4, 'DWord') $wu.SetValue('ScheduledInstallDay', 7, 'DWord') $wu.SetValue('ScheduledInstallTime', 0, 'DWord') $wu.Dispose() $hklm.Dispose() 

Dies wirkt sich nicht auf das aus, was Sie im Editor für lokale Gruppenrichtlinien sehen, wird jedoch von der Windows Update-Infrastruktur angezeigt. Da Sie nicht gesagt haben, zu welcher Stunde des Tages die Updates installiert werden sollen, habe ich sie auf Mitternacht gesetzt. Sie können dies ändern, indem Sie den ScheduledInstallTimeWert ändern .

Um festzustellen, welche Registrierungseinstellungen einer bestimmten Richtlinie entsprechen, können Sie das Elementinspektor-Tool in meiner Open-Source-Anwendung Policy Plus verwenden . Apropos Policy Plus: Sie können es auch als Assembly von PowerShell laden, um das lokale Gruppenrichtlinienobjekt zu bearbeiten. Zuerst laden Sie es und die Registerkarte Eigenschaften im Explorer verwenden, um „zu entsperren“ es; Dadurch kann .NET es in einen anderen Prozess laden. Dann legen Sie es in das gleiche Verzeichnis wie dieses Skript:

[System.Reflection.Assembly]::LoadFile((gi '.\Policy Plus.exe').FullName) | Out-Null $loader = [PolicyPlus.PolicyLoader]::new('LocalGpo', '', $false) $pol = $loader.OpenSource() $pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'NoAutoUpdate', 0, 'DWord') $pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'AUOptions', 4, 'DWord') $pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'ScheduledInstallDay', 7, 'DWord') $pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'ScheduledInstallTime', 0, 'DWord') $loader.Save() $loader.Close() 

Dies nutzt die Vorteile von Policy Plus PolicyLoaderund PolFileKlassen. Wenn das Skript abgeschlossen ist, sollten Sie diese Ausgabe sehen (aufgrund der letzten beiden Aufrufe):

saved to disk and invoked policy refresh True 

Auf diese Weise werden die Änderungen werden in der lokalen Gruppenrichtlinien - Editor und die normale Gruppenrichtlinien - Infrastruktur sichtbar ist, wird sie in der Registrierung gelten.