- 1 Section
- 10 Lessons
- unbegrenzt
- PowerShell – Grundlagen bis Automation10
- 1.1Was ist PowerShell? Versionen und ISE vs. VS Code
- 1.2Cmdlets: Verben, Substantive, Get-Help
- 1.3Variablen, Datentypen und Pipeline
- 1.4Kontrollstrukturen: if, switch, for, foreach, while
- 1.5Funktionen und Module
- 1.6Dateisystem und Prozesse verwalten
- 1.7Active Directory mit PowerShell verwalten
- 1.8Netzwerkbefehle: Test-NetConnection, Resolve-DnsName
- 1.9Skripte planen: Task Scheduler
- 1.10Praxisprojekt: AD-Onboarding-Skript
Netzwerkbefehle: Test-NetConnection, Resolve-DnsName
Als FISI hast du fast täglich mit Netzwerk-Problemen zu tun: „Drucker erreichbar?", „Warum kann der Server nicht ins Internet?", „DNS funktioniert nicht". Statt zur grafischen cmd.exe zu greifen mit ping, nslookup, tracert, hat PowerShell eigene Cmdlets für all das – mit dem gewohnten Objekt-Output aus L3. Du kannst Ergebnisse filtern, sortieren, in Reports verarbeiten.
In dieser Lektion behandeln wir die wichtigsten Netzwerk-Cmdlets: Test-NetConnection (ping + Portscan in einem), Resolve-DnsName (DNS-Abfragen), die NetTCPIP-Cmdlets (IP-Konfiguration), und HTTP-Requests mit Invoke-WebRequest. Die Netzwerk-Konzepte selbst (TCP/IP, DNS, Subnetze) findest du in K20, K16 und K15.
1) Netzwerk-Diagnose nach OSI-Schichten
Bei Netzwerk-Problemen gehst du systematisch vor – von unten nach oben durch die OSI-Schichten. Klick die Schichten an:
2) Test-NetConnection: das Schweizer Messer
Wenn du nur EIN Cmdlet aus dieser Lektion lernst, dann dieses. Test-NetConnection (Alias: tnc) ist Ping, Portscan, Traceroute und DNS-Test in einem. Mit Objekten als Output statt nur Text. Schau mal:
Die Spezial-Modi für verschiedene Aufgaben:
Vergleich zu Linux/Bash: dort brauchst du ping + nc -zv + traceroute separat. In PowerShell ist alles ein Cmdlet, mit Objekt-Output, das du in Pipeline-Operationen einbauen kannst.
3) Resolve-DnsName: DNS-Abfragen
Der nslookup-Ersatz, aber objektorientiert. Wenn ein Webdienst nicht funktioniert, ist DNS sehr oft die Ursache. Hier prüfst du es:
Die wichtigsten DNS-Record-Typen die du als FISI kennen solltest:
Resolve-DnsName _ldap._tcp.firma.local -Type SRV zeigt alle DCs. Wenn die fehlen, finden Clients keinen DC und das Login schlägt fehl. Mehr DNS-Konzepte in K16.4) IP-Konfiguration einsehen und ändern
Die NetTCPIP-Cmdlets ersetzen ipconfig, aber mit viel mehr Möglichkeiten:
Für Server-Konfiguration sehr wertvoll: du kannst die ganze Netzwerk-Einrichtung scripten. Server provisionieren? Ein Skript setzt IP, Gateway, DNS, Hostname – fertig. Manuell durch die GUI dauert das Minuten und ist fehleranfällig, mit PowerShell ein paar Zeilen.
5) Offene Ports und Verbindungen
Welche Programme „lauschen" auf dem Server? Wer ist gerade verbunden? Das ist Routine bei Security-Audits oder wenn ein Port belegt ist:
Klassische Use-Cases: ein Webserver startet nicht, weil „Port 80 schon belegt" – mit dem zweiten Cmdlet siehst du sofort welcher Prozess (oft alte Skype-Version, IIS Service-Reste, etc.). Bei Security-Checks: welche unerwarteten Ports sind offen? Mehr zu Ports und Firewalls in K09.
6) Windows-Firewall steuern
Die Windows-Firewall lässt sich komplett per PowerShell konfigurieren. Wichtige Cmdlets:
Sicherheit beachten: Firewall ohne Not nicht abschalten! Lieber gezielt Regeln für die nötigen Ports anlegen. Mehr zu Firewall-Konzepten in K09.
7) HTTP-Requests mit Invoke-WebRequest
Der curl-Ersatz in PowerShell: Invoke-WebRequest (Alias: iwr). Für API-Aufrufe noch praktischer: Invoke-RestMethod, das JSON automatisch parsed:
Invoke-RestMethod ist für JSON-APIs eine Wucht: kein jq nötig wie in Bash – das JSON wird automatisch in PowerShell-Objekte konvertiert und du kannst direkt mit .-Notation auf Properties zugreifen. Das ist einer der Punkte wo PowerShell wirklich glänzt im Vergleich zu Bash.
8) Remote-Befehle: Invoke-Command
Bisher haben wir lokal gearbeitet. Aber als FISI willst du oft Befehle auf anderen Servern ausführen, ohne dich überall einzuloggen. Invoke-Command macht das – ähnlich zu SSH bei Linux:
Voraussetzung: auf dem Ziel-Server muss PowerShell Remoting aktiv sein. Auf Server-Versionen standardmäßig an, bei Client-Versionen einmalig aktivieren mit Enable-PSRemoting -Force (als Admin). In Active-Directory-Umgebungen funktioniert das ohne weitere Authentifizierung; in Workgroups brauchst du HTTPS oder TrustedHosts.
9) Praxis: Multi-Server-Healthcheck
Alle Konzepte zusammen in einem realistischen Skript:
Solche Skripte landen im Task Scheduler (L9) und laufen alle 5 Minuten. Bei Fehlern: Mail an Admin oder Webhook an Slack. Ein FISI-Klassiker.
10) Cmdlet-Übersicht
Die wichtigsten Netzwerk-Cmdlets noch einmal kompakt:
Zusammenfassung
Test-NetConnection (Alias tnc) ist DAS Netzwerk-Cmdlet: Ping, TCP-Port-Test, Traceroute kombiniert. Mit -Quiet für True/False, -Port für TCP-Test, -TraceRoute für Route. Resolve-DnsName für DNS-Abfragen mit -Type (A, AAAA, MX, CNAME, SRV, PTR, TXT). Get-NetIPConfiguration/Address/Adapter für IP-Konfiguration. Get-NetTCPConnection als netstat-Ersatz. Get-NetFirewallRule + New-NetFirewallRule für Windows-Firewall. Invoke-WebRequest (curl-Ersatz) und Invoke-RestMethod (JSON-API mit Auto-Parsing). Invoke-Command -ComputerName für Remote-Befehle auf Servern (parallel auf mehreren möglich). Enter-PSSession für interaktive Remote-Sitzung. Voraussetzung Remoting: Enable-PSRemoting auf Ziel. Diagnose immer nach OSI-Schichten von unten nach oben.
