Mai 2018
Autor:in des Beitrags
Maximilian
Team Lead Business Apps and KI
Veröffentlicht am
09.05.2018 von Maximilian
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter
Ermitteln einer IP-Adresse

PowerShell-Funktion

Manchmal sind es die Kleinigkeiten, die einen unnötig viel Zeit kosten, wie das ermitteln einer IP-Adresse in der Powershell.

Wer kennt das nicht? Man ist gerade am Ausarbeiten eines Skripts, hat einen Computernamen, übergeben als Parameter oder aus einer Datei ausgelesen, und benötigt für eine bestimmte Funktion die IP-Adresse der Maschine.
Dazu existieren in der PowerShell vielfältige Möglichkeiten:

  1. Der Klassiker: Ping <Computername>
  2. Die PS-Variante von Ping: Test-Connection -Computername <Computername>
  3. Oder die .NET-Version: [System.Net.DNS]::GetHostAddresses(<Computername>)

Alle Drei liefern das gewünschte Ergebnis und es gibt noch eine ganze Reihe weiterer. Doch für die weitere Verarbeitung im Skript muss man sich überlegen wie man die Daten „abgreift“. Genau diese Überlegung stellte unser Kollege Matthias Braun an und weist uns vorher freundlich darauf hin, sich so wie er eine eigene Sammlung an Snippets anzulegen. Denn es begegnen uns immer wieder dieselben Aufgabenstellungen und wer will das Rad schon permanent neu erfinden?

Function Get-ComputerIPAddress()
   {    <#
        .SYNOPSIS
            Get the IPAddress from the Computer name
        .PARAMETER
           [String] Computer name
        .OUTPUTS
            [String] IPAddress
        .EXAMPLE
            $ComputerName | Get-ComputerIPAddress
            Get-ComputerIPAddress("name12345")
        #>
        [CmdletBinding()]
        [OutputType([String])]
        Param
        (
            [Parameter(Mandatory=$true,
                       ValueFromPipeline=$true,
                       Position=0)]
            [String]
            $ComputerName
        )
        Begin
        {
               $tmp_validate = $null
               $var_IPAddress = $null
        }
        Process{
            try{
                # Preferd command is Resolve-DnsName but only available from PS version 4.
                # So I check if is available
                $tmp_validate = Get-Command Resolve-DnsName -ErrorAction SilentlyContinue
                # $tmp_Validaition is $null when the command Resolve-DnsName is not available
                If($tmp_validate -ne $null){
                    # I'm happy :)
                    $var_IPAddress = Resolve-DnsName -Name $ComputerName -Type A -ErrorAction SilentlyContinue | Select IPAddress
                    return $var_IPAddress.IPAddress
                }
                else{
                     # I'm sad... but we have a alternate solutioTest-Connectionn
                     $var_IPAddress = [System.Net.DNS]::GetHostAddresses($ComputerName) | Where-Object { $_.AddressFamily -eq 'InterNetwork' } |Select-Object -Expand IPAddressToString
                }
                return $var_IPAddress
            }
            catch
            {
              return $var_IPAddress
            }
        }
        End{
            # CleanUp
            Clear-variable $tmp_validate
            Clear-variable $var_IPAddress
       }
   }

Aufruf:

$ComputerName | Get-ComputerIPAddress
Get-ComputerIPAddress(„name12345“)

 

Abfrage der IP-Adresse:

In der Funktion nutzen wir zwei Varianten zum Ermitteln der Adresse. Bevorzugt wird Resolve-DNSName, welches allerdings erst mit PowerShell 4 zum Einsatz kam. Darum prüft das Skript zuerst die PowerShell-Version und sollte es sich um eine frühere handeln, greift es quasi zum Backup und benutzt [System.Net.DNS]::GetHostAddresses()
Die .NET-Klasse zeichnet sich durch die schnelle Abfrage aus und weil sie, anders als die Test-Connection, kein Ping-Resultat ausgibt.
[System.Net.DNS]::GetHostAddresses(<ComputerName>)

 

Schlussbemerkungen:

Mit beiden Varianten ist es auch möglich IPv6-Adressen abzufragen, was aber in den meisten Umgebungen noch nicht nötig ist.
Bei der Weitergabe des Master-Skripts nicht vergessen, dass eine externe Funktion mit eingebunden wurde.

Das könnte dich auch interessieren

Webinar

Wenn die KI-Idee schneller ist als die Cloud-Reife

Wie wird aus einer guten KI-Idee eine tragfähige Lösung? Im Webinar zeigen wir anhand eines Praxisbeispiels, welche Cloud-, Daten- und Betriebsgrundlagen es braucht, damit KI-Anwendungen sicher, nutzbar und erweiterbar werden.
Weiterlesen
Blogbeitrag

Microsoft Funding für Ihre Azure-Projekte

Welche Azure-Projekte können von Microsoft Funding profitieren? Unser Beitrag zeigt, welche Vorhaben infrage kommen, wann sich eine Prüfung lohnt und wie aus einer Projektidee eine konkrete Fördermöglichkeit wird.
Weiterlesen
Blogbeitrag

Kritische Sicherheitslücken in Citrix NetScaler: Sofortiges Handeln erforderlich

Kritische Sicherheitslücken in Citrix NetScaler ADC und Gateway. Prüfen Sie betroffene Versionen und sichern Sie Ihre Systeme mit den aktuellen Sicherheitsupdates ab.
Weiterlesen
Webinar

Von der Cloud-Idee zum konkreten Azure-Projekt: Mit Microsoft Funding schneller in die Umsetzung

Wie wird aus der Entscheidung für Azure ein konkretes Projekt? In unserem Webinar erfahren Sie, wie Sie Migration und Modernisierung strukturiert planen, Workloads priorisieren und Microsoft Funding gezielt einbinden.
Weiterlesen
Blogbeitrag

Microsoft setzt auf Passkeys: Warum Unternehmen jetzt ihre MFA-Prozesse neu denken sollten 

Microsoft setzt zunehmend auf Passkeys und phishing-resistente Authentifizierung. Wir zeigen, was das für Onboarding und MFA-Recovery bedeutet und wie der Temporary Access Pass dabei unterstützt.
Weiterlesen
Blogbeitrag

mbuf Jahreskongress 2026

Das Event des Microsoft Business User Forums – Austausch, Wissen und Vernetzung im Microsoft-Umfeld. Seien Sie dabei!
Weiterlesen
Webinar

Datenklassifizierung: Was NIS2, Copilot und KI von Ihren Daten einfordern und wie Sie jetzt das Fundament legen, das wirklich hält

Viele Unternehmen haben Sensitivity Labels – und trotzdem bleiben große Teile ihrer Daten unklassifiziert. Im Webinar zeigen wir, wie Microsoft Purview und Informationscluster die Basis für Copilot, KI und Compliance schaffen.
Weiterlesen
M365 Summit

M365 Summit – Bereit für die Zukunft mit Microsoft 365?

Treffen Sie uns beim M365 Summit 2026 in Mainz und erleben Sie unsere Session mit MLP rund um Power Platform und KI-Transformation.
Weiterlesen
Blogbeitrag

Warum Exit-Readiness zu einer belastbaren Cloud-Strategie gehört 

DORA, NIS2, DSGVO & Co. erhöhen die Anforderungen an den Umgang mit Cloud-Abhängigkeiten. Wir zeigen, warum Exit-Readiness zunehmend zur Compliance-Pflicht wird und welche Nachweise Auditoren konkret erwarten.
Weiterlesen
Blogbeitrag

Typische KI-Workflows im Unternehmen: Welche Aufgaben in Chat, Agenten und Zielsysteme gehören

Gute KI-Workflows entstehen durch klare Arbeitsteilung: Wir zeigen, welches Werkzeug sich für welchen Arbeitsschritt eignet – und wie KI dadurch effizienter und wirtschaftlicher wird.
Weiterlesen
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter