Wie löst man eine IP-Adresse in einen Hostnamen mit Powershell auf

Es ist sehr üblich, dass IT-Profis wissen wollen, wie der Name einer bestimmten IP-Adresse lautet, die in Ihrem Netzwerk gefunden wurde. Sie können alte Techniken wie nslookup von Befehl verwenden, aber heute werde ich erklären, wie kann IP-Adresse zu Hostname mit der Powershell auflösen.

Sie können die endgültige Version dieses kleinen Skripts mit GUI von hier herunterladen

oder Sie können die ganze Serie bis zur endgültigen Version lesen

Wie man einen IP-Adressbereich scannt und wichtige Details mit Powershell GUI erhält
Wie man einen IP-Adressbereich scannt und wichtige Details mit Powershell GUI erhält – Teil 2
Wie man den IP-Adressbereich scannt und wichtige Details mit Powershell GUI abruft – Teil 3
Wie man den IP-Adressbereich scannt und wichtige Details mit Powershell GUI abruft – Teil 4

Mein Ziel dieses Artikels ist es, ein kleines, aber nützliches Asset Management System zu erstellen, das Ihnen dabei helfen kann, jederzeit zu wissen, welche Hardware Sie in Ihrer Umgebung haben.

Im Internet findet man viele Asset Management Systeme mit vielen Funktionen, aber was ist, wenn ich etwas kostenloses oder nicht teures mit den Einstellungen haben möchte, die ich brauche?

Beginnen wir also mit den ersten Zeilen

  • Öffnen Sie Powershell ISE, um das Skript zu schreiben
  • Die erste Zeile verwendet Get-Content, um den Inhalt der txt-Datei abzurufen, in die die zu überprüfenden IP-Adressen geschrieben und in einer Variablen gespeichert werden, die in einer Schleife verwendet wird
    $ipaddress=Get-Content -Path C:\powershell-reports\ip.txt
  • Nun werde ich ein Array erstellen, das die Ergebnisse speichert.
    $results = @()
  • Das Wichtigste ist jetzt, eine Schleife zu verwenden, die alle Zeilen der Datei übergeben kann, in die ich die IP-Adressen geschrieben habe.
  • Innerhalb der Schleife erstelle ich ein Objekt und füge einen Hostnamen als Eigenschaft im Objekt hinzu, der den Wert des Befehls darstellt, der die IP-Adresse in den Hostnamen von Ihrem DNS-Server ::GetHostByAddress($i) auflöst.HostName
    ForEach ($i in $ipaddress)
    {
    $o=new-object psobject
    $o | Add-Member -MemberType NoteProperty -Name hostname -Value (::GetHostByAddress($i).HostName)
    $results +=$o
    }
  • Die letzte Zeile wird verwendet, um die Ergebnisse aus dem Objekt im Monitor zu drucken oder nach csv zu exportieren.
    $results | Select-Object -Property hostname | Export-Csv C:\powershell-reports\machinenames.csv
  • Lassen Sie uns alle Zeilen des Codes kombinieren und das Skript ausführen

    $ipaddress=Get-Content -Path C:\powershell-reports\ip.txt

    $results = @()

    ForEach ($i in $ipaddress)
    {
    $o=new-object psobject

    $o | Add-Member -MemberType NoteProperty -Name hostname -Value (::GetHostByAddress($i).HostName)
    $results +=$o
    }

    $results | Select-Object -Property hostname | Export-Csv C:\powershell-reports\machinenames.csv

Schreibe einen Kommentar