# Automatisierung des IT-Supports mit PowerShell-GUI: Erfahrungen aus der Eigenentwicklung
In einer Active Directory-Domäne, die 4.000–5.000 Windows-7–10-Arbeitsstationen verwaltet, kamen Support-Tickets ohne IP-Adressen oder Hostnamen an. Um auf die PC-Informationen eines Benutzers zuzugreifen, waren manuelle Suchen in ADUC erforderlich: Benutzername aus dem Ticket kopieren, in der Konsole navigieren und Hostname aus dem Description-Feld des Kontos extrahieren. Das verzögerte die Bearbeitung, insbesondere beim Erfassen von Hardwarekonfigurationen oder bei Routineaufgaben ohne Fernzugriff.
Die Lösung: Ein eigenes PowerShell-Skript mit GUI-Oberfläche. Benutzername eingeben, und das Tool holt den Hostnamen aus AD, sammelt Konto- und PC-Details und bietet Schaltflächen für Aktionen. Die Ergebnisse erscheinen in einem einzigen Fenster: oberes Panel für Informationen, mittleres für Funktionsschaltflächen, unteres für Ausgaben.
Das Skript wurde von Grund auf entwickelt, basierend auf einer Analyse der Open-Source-LazyWinAdmin-GUI (2011), angepasst an eine Unternehmensumgebung. Das gewährleistete Sicherheit, Anpassung an spezifische Aufgaben und praktische PowerShell-Erfahrung auf mittlerem Entwickler-Niveau.
Wichtige Funktionen des Tools
Das Tool deckte alltägliche IT-Support-Szenarien ab. Es benötigte Admin-Rechte auf allen Domänen-PCs und Netzwerkzugriff (WinRM, SMB, ICMP).
Hier die Kernfunktionen:
- Suche und Daten aus AD: Hostname nach Benutzername, letzter Anmeldezeitpunkt, Passwortablauf, Ping zum Hostnamen, vollständiger Name, Telefon, Mitarbeiter-ID, Gruppenmitgliedschaften.
- Fernzugriff: MSRA, Dameware, RDP – nach Wahl.
- Hardware-Diagnose: PC-Konfiguration (Get-WmiObject Win32_ComputerSystem, Win32_Processor usw.), HDD-S.M.A.R.T.-Status.
- Verwaltung: mmc „Computer Management“ mit erhöhten Rechten starten, PS Remoting, cmd mit Admin-Rechten, Neustart/Abschaltung.
- Wartung: Temp-Dateien löschen (kein GPO nötig), Speicherplatz für lokale/roamende Profile berechnen, Software-Installer kopieren.
- Software und Quoten: Liste installierter Software (Get-WmiObject Win32_Product), Exchange-Postfachgröße.
- Spezialfunktionen: Windows-Firewall-Regeln neu konfigurieren, Registry-Anpassungen für Peripheriegeräte, Nachrichten an PC senden, Ticket-Lösungsreferenz.
- Massenoperationen: AD-Exporte (Gruppenmitglieder, Mitarbeiter nach Position), zu Gruppen hinzufügen.
Die Implementierung basierte auf ActiveDirectory-, WMI/CIM- und WinRM-Modulen. Die GUI wurde mit Windows Forms erstellt (Add-Type -AssemblyName System.Windows.Forms), mit TextBox für Benutzereingabe, DataGridView für Ausgaben und Buttons für Aktionen.
Entwicklung und Erweiterungen
Zunächst diente das Skript zur Hostname-Auflösung. Funktionen wurden schrittweise hinzugefügt, je nach auftauchenden Routineaufgaben: von Diagnosen bis zur Automatisierung von Software-Installationen. Leitprinzip: Ein-Klick-Operationen mit Logging in der GUI.
Beispiel-Logik für Hostname:
$username = $textboxLogin.Text
$user = Get-ADUser -Identity $username -Properties Description
$hostname = $user.Description
Für Hardware-Inventar:
Invoke-Command -ComputerName $hostname -ScriptBlock { Get-WmiObject Win32_Processor | Select Name, NumberOfCores }
Das Tool diente einem Team von 15 Spezialisten über 3 Jahre und beschleunigte die Ticket-Bearbeitung. Einschränkungen: Abhängigkeit von Admin-Rechten, keine alternativen heimischen Software-Optionen zur Verfügung bei der Einführung.
Wichtigste Erkenntnisse
- Das Skript reduzierte die Datenabfragezeit von Minuten auf Sekunden und minimierte manuelle ADUC-Arbeit.
- Deckt 80 % der Routine-Level-2-Aufgaben ab, ohne Verbindung zum PC.
- Erfordert volle Domänen-Admin-Rechte; Funktionalität eingeschränkt in restrikten Umgebungen.
- Basierend auf PowerShell 5.1+ mit AD-Modulen und aktiviertem WinRM.
- Skalierbar über Profile (unterschiedliche Schaltflächen-Sets für Rollen).
— Editorial Team
Noch keine Kommentare.