Network Troubleshooting mit PowerShell Teil1

In diesem Blog Artikel werde ich euch in die Möglichkeiten des Netzwerk Troubleshootings mithilfe der PowerShell einweisen bzw euch einige praktische cmdlets und Möglichkeiten zeigen und zu den einzelnen cmdlets auch Technet Artikel verlinken.

Als allererstes würde ich gerne mit einer der häufigsten Fehlerquellen im Netzwerk starten und zwar mit dem DNS Troubleshooting. Wie oft ist es schon passiert das Fehler aufgrund veralteter DNS Einträge oder fehlerhafte DNS Einträge beim Client aufgetreten sind. Für das DNS Troubleshooting eignen sich 3 cmdlet aus dem PowerShell Modul “DnsClient” welches noch über weitere cmdlets verfügt welche ihr euch mit folgendem Befehl darstellen könnt:

Get-Command –Module DnsClient

Mit dem Commandlet "Get-DnsClientCache” lässt sich der lokale Dns Cache anzeigen um dort eventuell schon auf Fehler zu stoßen. Natürlich lässt sich der Dns Cache nicht nur anzeigen sondern auch leeren mit dem cmdlet Clear-DnsClientCache”. Besonders praktische finde ich das cmdlet “Resolve-DnsName” mit dem sich Dns Einträge abfragen lassen und sogar bestimmte Server befragt werden können. Besonders praktisch können auch die Parameter –NoHostsFile und –DnsOnly sein. Mit ersterem wird wie der Name vermuten lässt die Hosts Datei ignoriert und mit zweiterem wird bei Abfragen nur das DNS Protokoll verwendet. Ein weiter Vorteil ist das das cmdlet seine Abfrage mit in den DNS Cache schreibt, im Gegensatz zu nslookup.

Mithilfe von Test-Connection lassen sich ICMP Echo Pakete senden, also im Endeffekt ping Pakete zu einem oder mehreren Servern. Der große Vorteil an Test-Connection gegenüber von ping ist das uns das cmdlet ein Objekt vom Typ “Win32_PingStatus” zurückliefert welches sich dann problemlos innerhalb der PowerShell weiterverarbeiten lässt außer das cmdlet wird mit dem Switch Parameter “-Quiet” ausgeführt, dann wird der Boolean Wert true zurück gegeben wenn mindestens ein Ping erfolgreich ist, ansonsten der Wert false. Auch praktisch ist der Parameter “-Source” über den sich ein oder mehrere Quell Server angeben lassen.

Mit dem oben genannten Befehl können wir also schonmal über ICMP Netzwerkverbindungen prüfen, mit dem ähnlich klingenden Befehl Test-NetConnection lassen sich entweder TCP Ports prüfen wofür es bisher keine angenehme OnBoard Mittel gab oder es lässt sich mit dem Parameter “-TraceRoute” ähnlich wie bei dem Befehl tracert eine Ablaufverfolgung erstellen.

Die oben genannten Befehle und weitere cmdlets werde ich in unten ihren cmd Befehlen gegenüber stellen:

cmd PowerShell Zweck
ipconfig /displaydns Get-DnsClientCache Dns Cache anzeigen
ipconfig /flushdns Clear-DnsClientCache Dns Cache leeren
nslookup Resolve-DnsName Dns Abfrage an einen Dns Server schicken
ping Test-Connection Prüfen von Verbindungen
“telnet” Test-NetConnection –Port Prüfen von TCP Ports
tracert Test-NetConnection –TraceRoute Routennachverfolgung
arp -a Get-NetNeighbor Anzeigen von IP zu Mac Adressen Zuordnungen
netstat Get-NetTCPConnection Darstellen von TCP Verbindungen
ipconfig Get-NetIPConfiguration Darstellen der IP Konfiguration pro Interface

 

Wenn euch die weitere Verwendung der cmdlets Interessiert könnt ihr die Hilfe über die PowerShell auch online anzeigen lassen. Der Befehl dazu lautet: “Get-Help <cmdlet einfügen> –Online” , ihr müsst dort nur das cmdlet Eintragen und schon öffnet sich die dazugehörige HilfeSeite in den Microsoft Docs oder im Technet und könnt dort dann auch zwischen den PowerShell Versionen wechseln. Wenn Ihr mehr über die Funktionsweisen des Troubleshooting mit der Powershell wissen wollt könnt Ihr mich gerne in einem der Kurse der ppedv AG dazu befragen wie zb. dem PowerShell Kurs.

Kommentare sind geschlossen