tobixz
Goto Top

IP Adresse ausgeben Powershell

Guten Tag ich habe ein Problem mit meinem Powershell Script:

    ($IP = (Test-Connection -Count 1 A039N015 -IPv4).address |Format-Table -Property IPAddressToString -HideTableHeaders -Force)
    Write-Host "Es handelt sich um eine Feste Ip. Die IP-Adresse ist $IP"  

Ausgabe:
"Es handelt sich um eine Feste Ip. Die IP-Adresse ist Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData"

Wieso wird mir nicht in die in der Variabel gespeicherten IP Adresse ausgegeben ?

Schon mal vielen Dank face-smile

Content-ID: 3007619269

Url: https://administrator.de/contentid/3007619269

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

colinardo
Lösung colinardo 07.06.2022 aktualisiert um 11:43:20 Uhr
Goto Top
Servus.
Die Format-CMDLets geben ein Format Objekt aus keinen reinen String, das ist der Grund warum du die Klasse des Objekts in der Ausgabe erhältst und nicht die Adresse, auch weil die Klasse keine Überladung für toString() besitzt. Für die Speicherung von Daten in Variablen nutzt man i.d.R. nie Format-CMDLets und wenn doch dann hängt man noch ein out-string hinten dran, braucht man hier aber nicht.
$ip = (Test-Connection 'A039N015' -Count 1).IPV4Address.IPAddressToString  
Write-Host "Die IP-Adresse ist $ip"  

p.s. wenn du nur einen Hostnamen zu einer IP auflösen willst, dafür braucht es kein Test-Connection, dafür reicht eine DNS-Auflösung:
[System.Net.Dns]::Resolve('A039N015').AddressList.IPAddressToString  
Dafür muss der Host dann auch nicht online sein.

Grüße Uwe

Powershell Leitfaden für Anfänger
Tobixz
Tobixz 07.06.2022 um 11:44:01 Uhr
Goto Top
Ahh sehr cool Vielen dank face-smile