IP Adresse ausgeben Powershell
Guten Tag ich habe ein Problem mit meinem Powershell Script:
Ausgabe:
Wieso wird mir nicht in die in der Variabel gespeicherten IP Adresse ausgegeben ?
Schon mal vielen Dank
($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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3007619269
Url: https://administrator.de/contentid/3007619269
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
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
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:
Dafür muss der Host dann auch nicht online sein.
Grüße Uwe
Powershell Leitfaden für Anfänger
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
Grüße Uwe
Powershell Leitfaden für Anfänger