Wie man NUR den Immobilienwert erhält


7

Ich möchte IP-Adressen von Computernamen abrufen, aber ich möchte NUR die IP nicht mehr.

$computer = 'Server1'
$computer = [System.Net.Dns]::GetHostAddresses($computer) | select IPAddressToString

Gibt @ {IPAddressToString = xxxx} zurück. Wie gebe ich 'xxxx' zurück?

Antworten:


7

In Ihrem Beispiel würden Sie eingeben $Computer.IPAddressToString, um das Array von IP-Adressen zurückzugeben. Wenn es nur 1 IP-Adresse für diesen Hostnamen gibt, ist das alles. Ein Hostname kann jedoch viele Adressen haben, weshalb es sich um ein Array handelt. Wenn Sie also nur die erste IP-Adresse im Array anzeigen möchten, können Sie Folgendes eingeben$Computer.IPAddressToString[0]


8

Ersetzen

| select IPAddressToString

Mit (Powershell 2.0+)

| select -First 1 -ExpandProperty IPAddressToString

Oder für den Fall, dass Sie mit einem Array arbeiten möchten

| select -ExpandProperty IPAddressToString

Dadurch erhalten Sie eine Reihe von Zeichenfolgen. Wenn Sie also einzelne Adressen wünschen, verwenden Sie so etwas wie

([System.Net.Dns]::GetHostAddresses($computer) | select -ExpandProperty IPAddressToString)[0]

-select -ExpandProperty Textfunktionierte auch für mich, als ich den inneren @{Text=}Textwert (im Gegensatz zum Format) eines RadioButton erhielt, dessen Deklaration und dessen Textwerte alle programmgesteuert aus einer Funktion bzw. einem Array erstellt wurden. Das fehlende Stück wurde Select -ExpandProperty Textanstelle von verwendet Select-Object Text.
TylerH

1

add () .IpAddressToString

([Net.Dns]::GetHostAddresses('Server1')).IpAddressToString

0

Ich mache es die ganze Zeit so mit foreach, im Gegensatz zu select -expand:

$computer = 'Server1'
$computer = [Net.Dns]::GetHostAddresses($computer) | foreach IPAddressToString
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.