MS Updates automatisch einspielen, steuern, überprüfen
Wir hosten drei Kundenserver (Windows Server 2008 R2), die in einer eigenen Domäne schaffen und nicht an einem WSUS hängen. Es ist dafür gesorgt, dass MS Updates (nicht nur Windows Updates) eingespielt werden und dass Download und Installation der Updates ausgelöst werden müssen, damit die Kundenserver nicht unkontrolliert offline gehen oder durch den Download von Updates die Performance zu heißen Arbeitszeiten beim Kunden gedrückt wird. Mit einem PowerShell-Skript lese ich den Status von für unsere Anwendung relevanten Windowsservices, Webservices und Webseiten aus. Das Skript informiert mich auch über ausstehende MS Updates:
Das Gesundheitsreportskript wird in der Aufgabenplanung am Server einmal täglich und nach jedem Serverneustart getriggert und schickt seine Ergebnisse per Mail.
Offlinezeiten sind also bevorzugt abends um ca. 21:00 Uhr. Da bin ich zu Hause. Updates auszulösen und zu überwachen ist normalerweise eine wenig interaktive Arbeit: Auf den Knopf "Updates installieren" klicken, das Ergebnis und die Aufforderung zum Maschinenneustart abwarten, den Maschinenneustart auslösen, auf die Health-report-Mail warten. Bei Problemen müsste ich den Arbeits-Notebook halt auspacken, Strom- und LAN-Anschluss stecken, hochfahren, VPN aufbauen, RDP aufbauen.
Aber für die Routine wie oben könnte ich den Arbeits-Notebook im Rucksack lassen, die Mails kann ich auch per Webaccess am privaten Rechner lesen.
Konkrete Fragen:
1. Löst in dieser Situation ein geplanter shutdown -r -t 0 zuverlässig das Einspielen aller "wichtigen" und sicherheitsrelevanten Updates aus?
2. Ich kann mich beim Hinweis " and MS UPDATES PENDING" per RDP oder durch
informieren, welche Updates anstehen. Wenn ich ein optionales Update mit installieren will, wie weise ich den Rechner an, das am Abend beim ausgelösten Updaten bzw. Serverneustart mit Update mit zu erledigen?
3. Wenn eine Maschine ihre Updates vom WSUS bezieht, habe ich in der Windows-Update-Sektion in der Systemsteuerung die Möglichkeit, trotzdem online bei MS nach Updates zu suchen. Kann ich diese Suche auch automatisieren? Wie? Die Methode CreateUpdateSearcher() am COM-Objekt Microsoft.Update.Session liefert anscheinend immer die von der primären Updatequelle angebotenen Updates. Nach einer manuellen interaktiven Suche am WSUS vorbei hat mir ein Rechnerneustart auch nicht die gerade online gefundenen Updates eingespielt, das hätte ich konkret mit Klick auf "Updates installieren" auslösen müssen. Wie kann ich das Installieren online von MS angebotener Updates an einem WSUS vorbei ggf. für abends automatisieren?
4. Besondere Hinweise zum MS Update, manuell oder automatisiert, auf Domain-Controller-Maschinen?
5. Wie geht ihr für solche Aufgaben vor, gibt es für weniger als 10 Rechner dimensionierte Tools, die die Aufgaben erleichtern? Oder traut ihr allen automatisierten Lösungen trotz Ergebnisüberwachung zu wenig, um es so wie ich anzugehen? Meinen privaten Rechner werde ich aus Sicherheitsgründen (Sicherheit und Privatheit für meine privaten Daten und Sicherheit des Firmennetzes) nicht per VPN ins Firmennetz einwählen. Ich könnte versuchen, eine Linux-VM für VPN und RDP ins Firmennetz auf meinem privaten Rechner zu nehmen. Gibt es Linux-VPN-Pakete für "Windows-VPN" (PPTP) und RDP-Pakete, die mit Windows-Servern zurechtkommen? Oder sollte ich mich mit SSH / Putty / Kitty genauer beschäftigen, da ist der lokale Rechner nicht gleich ins Netz eingewählt, sondern genießt im entfernten Netz nicht per se eine Vertrauensstellung, oder? Einen SSH-Server auf den betroffenen Maschinen aufzusetzen ist kein technisches und Berechtigungsproblem, und die Portfreigabe machen mir unsere Admins bestimmt.
# MS Updates?
$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")
$totalUpdates = $($SearchResult.updates.count)
if ($totalUpdates -gt 0)
{ $MailSubject = $MailSubject + " and MS UPDATES PENDING" }
Das Gesundheitsreportskript wird in der Aufgabenplanung am Server einmal täglich und nach jedem Serverneustart getriggert und schickt seine Ergebnisse per Mail.
Offlinezeiten sind also bevorzugt abends um ca. 21:00 Uhr. Da bin ich zu Hause. Updates auszulösen und zu überwachen ist normalerweise eine wenig interaktive Arbeit: Auf den Knopf "Updates installieren" klicken, das Ergebnis und die Aufforderung zum Maschinenneustart abwarten, den Maschinenneustart auslösen, auf die Health-report-Mail warten. Bei Problemen müsste ich den Arbeits-Notebook halt auspacken, Strom- und LAN-Anschluss stecken, hochfahren, VPN aufbauen, RDP aufbauen.
Aber für die Routine wie oben könnte ich den Arbeits-Notebook im Rucksack lassen, die Mails kann ich auch per Webaccess am privaten Rechner lesen.
Konkrete Fragen:
1. Löst in dieser Situation ein geplanter shutdown -r -t 0 zuverlässig das Einspielen aller "wichtigen" und sicherheitsrelevanten Updates aus?
2. Ich kann mich beim Hinweis " and MS UPDATES PENDING" per RDP oder durch
Enter-PSSession <Rechnername> -Credential <Rechnername>\Administrator
$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")
$SearchResult.Updates
Exit-PSSession
informieren, welche Updates anstehen. Wenn ich ein optionales Update mit installieren will, wie weise ich den Rechner an, das am Abend beim ausgelösten Updaten bzw. Serverneustart mit Update mit zu erledigen?
3. Wenn eine Maschine ihre Updates vom WSUS bezieht, habe ich in der Windows-Update-Sektion in der Systemsteuerung die Möglichkeit, trotzdem online bei MS nach Updates zu suchen. Kann ich diese Suche auch automatisieren? Wie? Die Methode CreateUpdateSearcher() am COM-Objekt Microsoft.Update.Session liefert anscheinend immer die von der primären Updatequelle angebotenen Updates. Nach einer manuellen interaktiven Suche am WSUS vorbei hat mir ein Rechnerneustart auch nicht die gerade online gefundenen Updates eingespielt, das hätte ich konkret mit Klick auf "Updates installieren" auslösen müssen. Wie kann ich das Installieren online von MS angebotener Updates an einem WSUS vorbei ggf. für abends automatisieren?
4. Besondere Hinweise zum MS Update, manuell oder automatisiert, auf Domain-Controller-Maschinen?
5. Wie geht ihr für solche Aufgaben vor, gibt es für weniger als 10 Rechner dimensionierte Tools, die die Aufgaben erleichtern? Oder traut ihr allen automatisierten Lösungen trotz Ergebnisüberwachung zu wenig, um es so wie ich anzugehen? Meinen privaten Rechner werde ich aus Sicherheitsgründen (Sicherheit und Privatheit für meine privaten Daten und Sicherheit des Firmennetzes) nicht per VPN ins Firmennetz einwählen. Ich könnte versuchen, eine Linux-VM für VPN und RDP ins Firmennetz auf meinem privaten Rechner zu nehmen. Gibt es Linux-VPN-Pakete für "Windows-VPN" (PPTP) und RDP-Pakete, die mit Windows-Servern zurechtkommen? Oder sollte ich mich mit SSH / Putty / Kitty genauer beschäftigen, da ist der lokale Rechner nicht gleich ins Netz eingewählt, sondern genießt im entfernten Netz nicht per se eine Vertrauensstellung, oder? Einen SSH-Server auf den betroffenen Maschinen aufzusetzen ist kein technisches und Berechtigungsproblem, und die Portfreigabe machen mir unsere Admins bestimmt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254718
Url: https://administrator.de/contentid/254718
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
3 Kommentare
Neuester Kommentar
Hi mupan7.
Deine Bedenken und Gedanken in allen Ehren, aber die Fragestellung ist doch sehr umfangreich.
Es wäre besser, einzelne, leichter überblickbare Fragen zu stellen.
Als Versuch:
1) Nein. Shutdown.exe macht immer shutdown ohne Installation. Passend wäre
wuauclt /updatenow && shutdown -f -r -t 00
(sofern die Updates schon detektiert und runtergeladen sind).
2) Ich würde den PC anweisen, immer optionale zu installieren, das geht per GPO.
3) Kannst Du. Du kannst per reg.exe die Einstellungen des WSUS-Clients umschreiben auf Internetupdate (einfach die WSUS-Einträge löschen), danach den Updatedienst neu starten (net stop wuauserv & net start wuauserv) und schon wird im Internet gesucht
4) verstehe ich nicht
5) wir installieren alles automatisiert. Updates machen quasi nie Problemke und haben in 10 Jahren in Testsystemen noch nie Probleme bereitet, deshalb wurde das Testing seit 2 Jahren eingestellt.
Worauf wir vertrauen: überwachen der Rechner nach den Updates. Also automatisches kontrollieren, ob deren Services noch arbeiten (via nagios und Konsorten) und DANN eingreifen, falls nicht.
Deine Bedenken und Gedanken in allen Ehren, aber die Fragestellung ist doch sehr umfangreich.
Es wäre besser, einzelne, leichter überblickbare Fragen zu stellen.
Als Versuch:
1) Nein. Shutdown.exe macht immer shutdown ohne Installation. Passend wäre
wuauclt /updatenow && shutdown -f -r -t 00
(sofern die Updates schon detektiert und runtergeladen sind).
2) Ich würde den PC anweisen, immer optionale zu installieren, das geht per GPO.
3) Kannst Du. Du kannst per reg.exe die Einstellungen des WSUS-Clients umschreiben auf Internetupdate (einfach die WSUS-Einträge löschen), danach den Updatedienst neu starten (net stop wuauserv & net start wuauserv) und schon wird im Internet gesucht
4) verstehe ich nicht
5) wir installieren alles automatisiert. Updates machen quasi nie Problemke und haben in 10 Jahren in Testsystemen noch nie Probleme bereitet, deshalb wurde das Testing seit 2 Jahren eingestellt.
Worauf wir vertrauen: überwachen der Rechner nach den Updates. Also automatisches kontrollieren, ob deren Services noch arbeiten (via nagios und Konsorten) und DANN eingreifen, falls nicht.
wuauclt setzt aber WSUS voraus?
Nein, geht ohne.Jeden Spielkram, Bing oder Browserchoice, will ich ja nicht.
Das kann man auch im WSUS selektieren.Zu 4): die DCs sollte man nicht parallel update. Mindestens einer sollte erst upgedated werden, nachdem man sicher ist, dass die anderen nach dem Update noch laufen.
->Nagios: tja, ein bisschen Aufwand ist es schon. Man kann alles auch mit Batch/Powershell kontrollieren, wenn man das beherrscht.