Skript-Befehle für Windows

Namensauflösung in der PowerShell testen

Die PowerShell von Windows stellt leistungsfähige Befehle zur Verfügung, mit der Profis Alltagsprobleme schnell und zuverlässig lösen. Wir zeigen die Möglichkeiten der PowerShell am Beispiel von Netzwerkfunktionen wie der Namensauflösung, die unter CMD mit nslookup und ping gelöst werden.

Geht es um das Testen der Namensauflösung im Netzwerk, um die richtigen DNS-Einstellungen und die korrekte IP-Konfiguration, dann denken viele Administratoren an die Befehlszeile. Zum Beispiel an die CMD-Befehle nslookup und ping. Und natürlich an das entsprechende Menü in den Windows-Systemeinstellungen.

PowerShell nutzen statt CMD-Fenster

Microsoft hat aber auch in der PowerShell von Windows Server 2012 R2 und Windows 8.1 einige mächtige Befehle integriert, mit denen Sie Tests und Analysen schnell und effizient durchführen können. Vorteil der Powershell-Befehle ist, dass Sie mehr Informationen erhalten, mehr Funktionen nutzen können und so Fehler schneller finden. In diesem Beitrag geben wir Ihnen einige Tipps dazu.

Namensauflösung mit Resolve-DNSName und Test-DNSServer überprüfen

Ein wichtiger Befehl dazu ist Resolve-dnsname. Dieser steht allerdings nur ab Windows Server 2012 R2 und Windows 8.1 zur Verfügung.

In der PowerShell testen Sie mit resolve-dnsname die Namensauflösung.
In der PowerShell testen Sie mit resolve-dnsname die Namensauflösung.

Wie alle CMDlets für die PowerShell, bietet auch Resolve-dnsname eine umfassende Syntax. Für schnelle Verbindungstests ist diese aber selten notwendig. Wollen Sie zum Beispiel auf die Schnelle eine Namensauflösung für einen Server mit allen notwendigen Host-Einträgen, TTL und IP-Adressen durchführen, geben Sie einfach resolve-dnsname <Name des Rechners> ein. Resolve-DnsName -type all <DNS-Zone> zeigt wichtige Informationen zur eigentlichen DNS-Zone an.

Auf dem gleichen Weg können Sie auch IP-Adressen nach Rechnernamen auflösen, wenn Sie im Netzwerk eine Reverse-Forward-Zone betreiben, zum Beispiel mit Windows Server 2012 R2.

Wird im Netzwerk eine Reverse-Lookup-Zone eingerichtet, können Sie auch Rechnernamen nach der IP-Adresse anzeigen lassen.
Wird im Netzwerk eine Reverse-Lookup-Zone eingerichtet, können Sie auch Rechnernamen nach der IP-Adresse anzeigen lassen.

Um den Namen eines Computers auf Basis der IP-Adresse aufzulösen, verwenden Sie einfachresolve-dnsname <IP-Adresse>. Anschließend zeigt die PowerShell die gefundenen Rechner sowie die dazugehörige Reverse-Lookup-Zone an.

In der PowerShell suchen Sie mit der IP-Adresse auch nach dem Rechnernamen, wenn im Netzwerk eine Reverse-Lookup-Zone vorhanden ist.
In der PowerShell suchen Sie mit der IP-Adresse auch nach dem Rechnernamen, wenn im Netzwerk eine Reverse-Lookup-Zone vorhanden ist.

Resolve-dnsname kann auch DNS-Namen über das Internet auflösen lassen, zum Beispiel mit Resolve-DnsName www.pcwelt.de. Wollen Sie nur die IPv4-Adressen anzeigen, nutzen Sie (Resolve-DnsNamewww.pcwelt.de).ip4address.

Möchten Sie auch Abfragen von DNS-Zonen über einen DNS-Server anzeigen, verwenden Sie zum BeispielResolve-DnsName contoso.int -Server dc1.contoso.int.Wer gerne mit Skripten arbeitet, und sich nur die IP-Adressen anzeigen lassen will, kann auch folgenden Befehl verwenden:([system.net.dns]::GetHostEntry("dc1.contoso.int")).AddressList.IPAddressTostring

Mit dem CMDlet test-dnsserver können Sie die Verfügbarkeit und generelle Funktion von einem oder mehreren DNS-Servern testen. Geben Sie in der Liste einfach die IP-Adressen der DNS-Server ein, deren Verfügbarkeit Sie testen wollen. Danach erhalten Sie eine Zusammenfassung der wichtigsten Informationen und sehen, welche DNS-Server im Netzwerk verfügbar sind.

In der PowerShell testen Sie auch die Verfügbarkeit von DNS-Servern. Dazu verwenden Sie das CMDlet test-dnsserver.
In der PowerShell testen Sie auch die Verfügbarkeit von DNS-Servern. Dazu verwenden Sie das CMDlet test-dnsserver.

Sie können in der PowerShell auch überprüfen, welche Netzwerkverbindungen sich auf den DNS-Servern registrieren und ob das lokale Suffix des Rechners verwendet wird. Dazu nutzen Sie das CMDlet get-dnsclient. Wollen Sie anzeigen, welche DNS-Server ein Client für die verschiedenen Netzwerkkarten verwendet, geben Sie get-dnsclientserveraddress ein.

Sie können sich in der PowerShell ferner umfassende Daten zum DNS-Client anzeigen lassen.
Sie können sich in der PowerShell ferner umfassende Daten zum DNS-Client anzeigen lassen.

Geht es um die Namensauflösung im Netzwerk, spielt auch der DNS-Cache eine wichtige Rolle. Selbst wenn bei eventuellen Fehlern die Auflösung nach einer Korrektur funktioniert, können einzelne Computer noch Probleme mit der Auflösung von Namen haben, weil im DNS-Cache auf dem lokalen Rechner noch Fehler vorliegen. In der Befehlszeile löschen Sie den Cache mit ipconfig /flushdns, in der PowerShell verwenden Sie Clear-DNSClientCache. Sie können sich in der PowerShell den Cache auch anzeigen lassen. Dazu verwenden Sie den Befehl get-dnsclientcache.