Thema: windows
-
Fehlerbehandlung in PowerShell-Adminskripten: Terminating Errors, $ErrorActionPreference und $LASTEXITCODE
PowerShell kennt zwei Fehlerklassen, die sich in Skripten unterschiedlich verhalten: Terminating Errors, die try/catch abfangen kann, und Non-terminating Errors, die nur $ErrorActionPreference oder -ErrorAction in einen Abbruch verwandeln. Eine dritte Klasse, Fehler nativer Programme, folgt keinem dieser Wege, ausser $PSNativeCommandUseErrorActionPreference ist gesetzt (PowerShell 7.4+, in 7.3 experimentell).
-
Kerberos unter Windows: klist, klist purge und setspn -L/-Q bei SPN-Problemen
Windows stellt gecachte Kerberos-Tickets über klist und Service Principal Names über setspn zur Verfügung. Doppelte SPNs und Zeitabweichungen zwischen Client und Domänencontroller sind die zwei Fehlerursachen, die am häufigsten als unklare «Authentifizierung nicht möglich»-Meldungen statt als eindeutige Kerberos-Fehler auftreten.
-
UEFI-Boot-Einträge und Secure-Boot-Status unter Linux und Windows
efibootmgr und bcdedit /enum firmware lesen und ändern die UEFI-Boot-Eintragsliste, die bestimmt, was die Firmware in welcher Reihenfolge zu starten versucht. mokutil --sb-state und Confirm-SecureBootUEFI zeigen, ob Secure Boot aktuell durchgesetzt wird – getrennt von der shim/MOK-Vertrauensstellung für Kernelmodule von Drittanbietern und zugleich deren Voraussetzung.
-
Logging aus Admin-Skripten: logger und systemd-cat unter Linux, Write-EventLog/New-WinEvent und Start-Transcript unter Windows
Jede Plattform bietet einen Weg, die Ausgabe eines Admin-Skripts so abzulegen, dass sie später von Menschen oder anderen Werkzeugen gefunden wird, getrennt von stdout: unter Linux logger(1) oder systemd-cat ins Systemlog, unter Windows das Ereignisprotokoll via Write-EventLog (nur Windows PowerShell 5.1) oder New-WinEvent sowie Start-Transcript für eine rohe Sitzungsaufzeichnung. In keines dieser Ziele darf je ein Geheimnis gelangen.
-
Windows-Server-Leistungsindikatoren mit Get-Counter abtasten und als CSV exportieren
Get-Counter tastet benannte Indikatorpfade in einem wählbaren Intervall ab, fortlaufend oder für eine feste Anzahl Proben. Export-Counter (nur Windows PowerShell 5.1) behält im nativen BLG-Format alle Felder bei, und relog wandelt einen Mitschnitt nachträglich in CSV um, auch ohne den ursprünglichen Export-Counter-Befehl.
-
Windows-Antwortdateien (unattend.xml): Konfigurationsphasen und wo Setup danach sucht
Eine Antwortdatei unattend.xml liefert Einstellungen für bestimmte Konfigurationsphasen von Windows Setup; bei der Bereitstellung sind vor allem windowsPE, generalize, specialize und oobeSystem relevant. Setup findet die Datei über eine feste implizite Suchreihenfolge und legt sie in %WINDIR%\Panther im Cache ab; Windows System Image Manager erstellt solche Dateien und kann Passwörter lokaler Konten verbergen, aber nicht verschlüsseln.
-
Windows Event Forwarding: quellinitiierte Subscription, wecutil und die Gruppe EventLog Readers
Bei einer quellinitiierten WEF-Subscription beziehen die Quellcomputer ihre Konfiguration per Gruppenrichtlinie vom Collector und senden passende Ereignisse dorthin; wecutil verwaltet die Subscription auf dem Collector. Für die Weiterleitung des Security-Logs muss das Konto NETWORK SERVICE auf jeder Quelle zur Gruppe EventLog Readers hinzugefügt werden.
-
Patch Tuesday im Oktober 2026 nach Ausnutzungsnachweisen und betroffenen Systemen priorisieren
Ein vorgeschlagenes Verfahren zur Patch-Priorisierung überführt ein umfangreiches Release in eine Warteschlange für einzelne Systeme. Bestätigte Ausnutzung, Angriffsfläche und betriebliche Folgen bestimmen die Dringlichkeit; EPSS unterstützt, wenn Ausnutzungsnachweise fehlen.
-
Windows-Image mit Sysprep generalisieren: /generalize, /oobe, /shutdown und das Rearm-Limit
Sysprep /generalize entfernt computerspezifische Informationen wie die SID und die konfigurierten Geräte aus einer Windows-Installation, damit sich das Image auf andere Computer verteilen lässt. Ab Windows 8.1/Server 2012 kann Sysprep bis zu 1001-mal pro Image ausgeführt werden (unter Windows 7/Server 2008 R2 dreimal); Fehler beim Generalisieren hinterlassen Spuren in den Panther-Logs unter System32\Sysprep.
-
Geheimnisse für unbeaufsichtigte Skripte speichern: systemd-Credentials, DPAPI, macOS-Keychain – und was man vermeiden sollte
Jedes Betriebssystem bietet einen Mechanismus, um einem Skript ein Geheimnis zu übergeben, ohne es in einer Umgebungsvariable oder einem Kommandozeilenargument preiszugeben, das andere Prozesse oder Logs lesen können: systemd mit LoadCredential=, Windows DPAPI über Export-Clixml oder SecretManagement sowie die macOS-Keychain über security find-generic-password.
-
Log-Aufbewahrung und Speicherplatzbudget auf einem Host: journald, logrotate und Grösse des Windows-Ereignisprotokolls
SystemMaxUse in journald begrenzt den Speicherbedarf des Journals selbst, die Optionen maxage und rotate in logrotate begrenzen rotierte Dateien andernorts, und wevtutil sl legt die maximale Grösse eines Windows-Ereignisprotokolls fest. Alle drei sind Einstellungen zur Speicherplatzplanung, die der Betreiber oder ein Agent wählt; wie lange Datensätze aus rechtlichen oder organisatorischen Gründen aufbewahrt werden müssen, ist eine Richtlinienentscheidung, die dieser Artikel nicht trifft.
-
Windows-Exit-Codes jenseits von Erfolg/Fehler: Bitmaske bei robocopy, Installer-Codes bei msiexec und $LASTEXITCODE
robocopy kodiert mehrere unabhängige Aussagen (kopierte Dateien, zusätzliche Dateien, Abweichungen, Fehler) in einer Zahl unter 8, die als Bitmaske zu lesen ist und nicht mit 0 verglichen werden darf. msiexec liefert spezifische Windows-Installer-Codes, wobei 3010 und 1641 Erfolg mit ausstehendem Neustart bedeuten und keinen Fehler. $LASTEXITCODE in PowerShell ist der einzige verlässliche Weg zum echten Code eines nativen Programms, mit unterschiedlichen Regeln je nach Aufrufart des Skripts.
-
Windows Shell CVE-2026-96951: Windows-11-Korrektur überprüfen und Anhangsschutz erhalten
Das kumulative Update für die genaue Windows-11-Version überprüfen, den Neustart abschliessen und die Kontrollen zur Herkunft von Anhängen sowie SmartScreen beibehalten. Eine fehlende Warnung belegt nicht, dass eine heruntergeladene Datei sicher ist.
-
Windows 10 nach Oktober 2026: ESU für Privatnutzer und Organisationen
Microsofts ESU-Seite für Privatnutzer nennt inzwischen eine Versorgung mit Updates bis zum 12. Oktober 2027. Für Organisationen gelten separate jährliche ESU-Bedingungen; deshalb Anspruch, Programmjahr, Aktivierung und installierte Updates für jedes weiter genutzte Windows-10-Gerät getrennt erfassen.
-
Warum NTP weiterhin in virtuellen Maschinen läuft, trotz Guest Agents und paravirtualisierter Uhren
Virtuelle Maschinen erhalten auf mehreren Ebenen zeitbezogene Unterstützung (kvm-clock, Guest Agents, Hyper-V Integration Services), doch keine davon ersetzt einen NTP- oder chrony-Client im Gast. Der Artikel erklärt, was jede Ebene tatsächlich leistet und warum die Zeitsynchronisation Aufgabe des Gastbetriebssystems bleibt.
-
Dienstkonten über Betriebssystemfamilien hinweg: Least Privilege für die eigenen Hintergrunddienste eines Agenten
Jedes Betriebssystem bietet die Möglichkeit, einen Dienst ohne normalen Login und ohne von Hand verwaltetes Passwort zu betreiben: Linux-Systembenutzer mit nologin-Shell oder systemd-DynamicUser=, virtuelle Windows-Konten und gruppenverwaltete Dienstkonten (gMSA) sowie macOS-Daemon-Benutzer. Die engste passende Variante zu wählen ist wichtig für alles, was ein Agent für den unbeaufsichtigten Betrieb installiert.
-
windows_exporter: MSI mit aktivierten Collectors installieren und /metrics unter Windows prüfen
windows_exporter wird als MSI-Paket ausgeliefert, das sich als Windows-Dienst installiert. Über Installer-Properties lassen sich die aktivierten Collectors, der Listen-Port und eine Windows-Firewall-Ausnahme per msiexec nicht interaktiv festlegen.
-
Prozessbezogene Performance-Diagnose unter Windows: Get-Process, Get-CimInstance und Handle-Zähler
Get-Process sortiert nach Working Set oder kumulierter CPU-Zeit; die CIM-Klasse Win32_PerfFormattedData_PerfProc_Process liefert stattdessen eine berechnete CPU-Rate in Prozent. Ein stetig steigender Handle-Zähler ist das typische Merkmal eines Lecks, und Process Explorer oder Process Monitor liefern Details, die PowerShell nicht bereitstellt.
-
Stolpersteine bei cmd.exe und Batch-Skripten: Zeitpunkt von %ERRORLEVEL%, Delayed Expansion und Caret-Escaping
Batch-Dateien finden sich weiterhin in Installern, älteren geplanten Tasks und Hersteller-Tools. %ERRORLEVEL% wird beim Parsen expandiert und kann veraltete Werte liefern, Delayed Expansion ändert dieses Verhalten, und das Caret ist das Escape-Zeichen, das die meisten von Agenten erzeugten Batch-Skripte im ersten Anlauf falsch verwenden.
-
Provisioning-Agents für den ersten Windows-Start in der Cloud: EC2Launch v2, Azure VM Agent und cloudbase-init
AWS, Azure und die meisten anderen Clouds betreiben in Windows-Images einen kleinen Agenten, der beim ersten Start User Data bzw. Custom Data verarbeitet. Gängig sind EC2Launch v2, die Provisioning- und Windows-VM-Agents von Azure (sie legen Custom Data in CustomData.bin ab, führen es aber nicht aus) sowie das Open-Source-Tool cloudbase-init. Jeder protokolliert an einem anderen Ort, den man prüfen sollte, wenn die Provisionierung scheinbar stillschweigend gescheitert ist.
Maschinenlesbar: JSON