This shows you the differences between two versions of the page.
userspace:windows_updates_wsus_required [2012/04/10 09:02] tobias created |
userspace:windows_updates_wsus_required [2021/08/23 08:37] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Das Problem kennt denke ich jeder. Die Windows Installation ist abgeschlossen aber die Windows Updates lassen sich nicht automatisch direkt im Anschluss installieren. | ||
- | Mit diesem Script wird Windows Update gezwungen eine sofortige Prüfung auf Updates durchzuführen, | ||
- | Außerdem wird vom WSUS abgefragt wie viele Updates für diesen Rechner noch ausstehen. | ||
- | Da Windows zwischen den Updates Reboots benötigt wird dieser Status an WINST übergeben und der Rechner solange neu gestartet bis der Wert auf 0 Updates steht ! | ||
- | |||
- | Da der Status vom WSUS abgefragt wird, wird ein WSUS benötigt (jedenfalls für die Status abfrage!) | ||
- | |||
- | |||
- | **Das Script befindet sich noch in der Testphase und funktioniert noch nicht 100% Fehlerfrei - über weitere Ideen und Verbesserungsvorschläge wäre ich sehr erfreut !** | ||
- | |||
- | WINST Script | ||
- | <code winst> | ||
- | |||
- | [INITIAL] | ||
- | DefStringList $counterString$ | ||
- | DefVar $CounterVar$ | ||
- | DefVar $TRIM$ | ||
- | |||
- | [ACTIONS] | ||
- | ShellInAnIcon_Forceupdates | ||
- | ShellInAnIcon_Check | ||
- | |||
- | |||
- | set $counterString$ = getOutStreamFromSection(' | ||
- | |||
- | set $CounterVar$ = takeString(0, | ||
- | set $trim$ = trim($CounterVar$) | ||
- | |||
- | |||
- | if $trim$ = " | ||
- | comment "Keine Updates mehr Verfügbar" | ||
- | |||
- | else | ||
- | ExitWindows / | ||
- | comment weitere Updates verfügbar reboot wurde initialisiert ! | ||
- | endif | ||
- | |||
- | |||
- | |||
- | [shellInAnIcon_Check] | ||
- | @echo off | ||
- | Powershell %scriptpath%\check.ps1 | ||
- | @echo on | ||
- | |||
- | |||
- | [ShellInAnIcon_Forceupdates] | ||
- | regedit /s %scriptpath%\WSUS.reg | ||
- | net stop wuauserv | ||
- | REG DELETE " | ||
- | REG DELETE " | ||
- | Reg Delete " | ||
- | REG Delete " | ||
- | REG Add " | ||
- | net start wuauserv | ||
- | wuauclt /detectnow | ||
- | wuauclt /updatenow | ||
- | </ | ||
- | |||
- | |||
- | check.ps1 | ||
- | < | ||
- | $Session= New-Object -ComObject Microsoft.Update.Session | ||
- | $Searcher = $Session.CreateUpdateSearcher() | ||
- | $list = $Searcher.Search(' | ||
- | write-host $list.updates.count | ||
- | </ | ||
- | |||
- | TODO: | ||
- | * Testen unter Windows 7 x64 | ||
- | * Maximale Anzahl von Reboots integrieren (zum Fehler abfangen und um eine Endlosschleife zu verhindern) | ||
- | * Registry Anpassungen über WINST und nicht Batch durchführen | ||
- | * Genauere Reports an Opsiconfd GUI | ||
- | * Allgemeine Verbesserungen, | ||