Skript-Befehle für Windows
Namensauflösung in der PowerShell testen
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.
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.
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.
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.
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.
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.