Files
PS-PSCustomObject/readme.md

2.8 KiB

Get-Services PowerShell Modul

📖 Beschreibung

Die Funktion Get-Services dient dazu, Windows-Dienste auszulesen, zu filtern und optional zu exportieren.

Sie ermöglicht:

  • Filtern nach DisplayName
  • Filtern nach Status
  • Ausgabe als strukturierte Objekte (PSCustomObject)
  • Export als JSON oder CSV

⚙️ Funktionsweise

Die Funktion liest alle Dienste über Get-Service aus und speichert relevante Informationen in einem strukturierten Objekt:

  • Name
  • DisplayName
  • Status

Anschließend erfolgt eine Filterung basierend auf den übergebenen Parametern.

Optional können die Ergebnisse exportiert werden.


📥 Parameter

Parameter Typ Beschreibung
-searchName string Filtert nach DisplayName (Wildcard möglich, Standard: *)
-status string Filtert nach Status (z. B. Running, Stopped, Standard: *)
-export string Exportformat (json oder csv)
-path string Pfad für den Export (Pflicht, wenn -export gesetzt ist)

⚠️ Abhängigkeiten

Wenn der Parameter -export verwendet wird, muss auch -path angegeben werden, andernfalls wird ein Fehler ausgelöst:

Wenn -export verwendet wird, muss auch -path angegeben werden.

🚀 Beispiele

🔍 Alle Services anzeigen

Get-Services

🔎 Nach Namen filtern

Get-Services -searchName "*xbox*"

📊 Nur laufende Services anzeigen

Get-Services -status "Running"

📁 Export als JSON

Get-Services -searchName "*xbox*" -export json -path "C:\temp\services.json"

📄 Export als CSV

Get-Services -status "Running" -export csv -path "C:\temp\services.csv"

📤 Rückgabewert

Die Funktion gibt ein Array von PSCustomObjects zurück:

Name        : Spooler
DisplayName : Druckwarteschlange
Status      : Running

Diese können direkt weiterverarbeitet werden:

Get-Services | Where-Object { $_.Status -eq "Running" }

🧠 Hinweise

  • Wildcards (*) werden unterstützt
  • Die Filterung erfolgt nach dem Einlesen aller Services
  • Export erfolgt aktuell unabhängig vom -path Parameter (Verbesserungspotential)

🔧 Verbesserungsideen

  • Nutzung von -path im Export implementieren
  • Performance verbessern (Verzicht auf +=)
  • Direkte Filterung in der Pipeline statt nachträglich
  • Validierung für -export (z. B. nur json oder csv erlauben)

📌 Fazit

Die Funktion eignet sich ideal für:

  • schnelle Service-Analysen
  • Reporting
  • Automatisierung
  • Export von Service-Zuständen