Zum Inhalt springen

Logging und Transcripts

Core
Lernziele
  • Skriptläufe mit Start-Transcript und eigenen Logs nachvollziehbar machen

Das Protokollieren von Skript-Ausgaben ist eine wertvolle Methode, um die Ausführung von PowerShell-Skripten zu überwachen, Fehler zu diagnostizieren und Aktivitäten zu dokumentieren. Mit Start-Transcript kannst du den gesamten Konsolenausgang in eine Datei schreiben, während Stop-Transcript die Aufzeichnung beendet.

Start-Transcript startet die Protokollierung aller Konsolenausgaben in eine Log-Datei. Dies ist besonders nützlich für:

  • Debugging und Fehlerdiagnose
  • Audit-Trails und Aktivitätsprotokollierung
  • Dokumentation von Skriptausführungen

Stop-Transcript beendet die Protokollierung und speichert die gesammelten Daten.

Terminal-Fenster
# Starte die Transkription und speichere die Ausgabe in einer Log-Datei
Start-Transcript -Path "C:\Kurs\Logs\MyScript.log" -Append
# Beispielhafte Skriptbefehle
Write-Output "Starte den Prozess..."
# Hier folgen weitere Skriptbefehle
Write-Output "Prozess abgeschlossen."
# Beende die Transkription
Stop-Transcript
  • Dateipfad: Achte darauf, dass der angegebene Pfad existiert und du über Schreibrechte verfügst.
  • -Append Parameter: Mit -Append wird die neue Transkription an eine bestehende Datei angehängt, andernfalls wird sie überschrieben.
  • Sicherheit: Vermeide das Protokollieren sensibler Daten und überprüfe regelmäßig die erstellten Log-Dateien.

Um den gesamten Ablauf deines Skripts zu dokumentieren, füge Start-Transcript am Anfang und Stop-Transcript am Ende ein:

Terminal-Fenster
# Starte das Transkript
Start-Transcript -Path "C:\Kurs\Logs\CompleteScript.log"
# Skriptinhalt
Write-Output "Skript startet..."
# Weitere Befehle
Write-Output "Skript endet..."
# Beende das Transkript
Stop-Transcript

Ein Transcript zeichnet alles auf, was auf dem Bildschirm erscheint. Für gezielte, auswertbare Logs schreibst du eigene Zeilen:

Terminal-Fenster
function Write-Log {
param([string]$Message, [string]$Level = 'INFO')
$zeile = '{0:yyyy-MM-dd HH:mm:ss} [{1}] {2}' -f (Get-Date), $Level, $Message
Add-Content -Path C:\Kurs\Logs\skript.log -Value $zeile
}
Write-Log "Skript gestartet"
Write-Log "Dienst nicht gefunden" -Level 'WARN'
  • Start-Transcript & Stop-Transcript:
    Ermöglichen das Protokollieren des Konsolenausgangs während der Skriptausführung.
  • Anwendungsfälle:
    Ideal für Debugging, Fehlerdiagnose und die Erstellung von Audit-Trails.
  • Best Practices:
    Achte auf einen korrekten Dateipfad, verwende den -Append Parameter, falls notwendig, und schütze sensible Informationen.

Diese Techniken helfen dir, die Ausführung deiner PowerShell-Skripte detailliert zu dokumentieren und erleichtern die Fehlerbehebung sowie das Monitoring von Systemaktivitäten.