captainrubik
Goto Top

PowerShell IP-Address Array

Hallo liebes Forum, ich bin blutiger Anfänger in Sachen PowerShell Scripting und gerade am verzweifeln:

Es geht darum, dass ich 2 Netzwerkadapter nach der IPAddresse Abfrage und das ganze dann in ein Array packen möchte um es weiter verarbeiten zu können.

Ich krieg es allerdings partout nicht hin, dass die Adressen einzeln verarbeitet werden.
$test = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | ft -Property "IPAddress" | Out-String  

foreach ($u in $test) {
write-host "$u.ipadresse1"  
}
Was mach ich falsch?

Vielen Dank schon mal face-smile

Gruß

Content-Key: 302218

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

Printed on: April 19, 2024 at 21:04 o'clock

Member: Dani
Solution Dani Apr 18, 2016 updated at 19:44:34 (UTC)
Goto Top
Guten Abend,
du hast keine Code-Formatierung genutzt... face-wink

Bei mir funktioniert dieser Schnipsel hier:
$output = Get-Wmiobject Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true" | Select IPAddress  

foreach($element in $output) {
    $element.IPAddress
}
Testsystem: Windows 10
Die Kollegen @114757 bzw. @colinardo schmücken es dir sicherlich noch aus. face-wink


Gruß,
Dani
Mitglied: 114757
Solution 114757 Apr 18, 2016 updated at 19:52:45 (UTC)
Goto Top
Moin.
Zitat von @CaptainRubik:

Was mach ich falsch?
Und als Erklärung warum dein Schnippsel so nicht funktioniert:
Das hier
| ft -Property "IPAddress" | Out-String
wandelt das ursprüngliche Objekt erst in ein Format-Objekt und dann die Tabelle in einen puren String um. Bei der Umwandlung geht das Objekt und dessen Eigenschaften und Methoden flöten.

Willst du also Daten und deren Eigenschaften und Methoden weiterverarbeiten niemals format-table/format-list/Out-String etc. verwenden, diese benutzt man normalerweise nur ganz am Schluss für eine Ausgabe am Bildschirm oder in eine Log-Datei. Behalte die Objekte so lange als möglich als Objekte dann bist du auf der sicheren Seite und deine Skripte sind effizient.

Hier noch eine Variante als Oneliner
gwmi Win32_NetworkAdapterConfiguration -Filter "IPEnabled='TRUE'" | %{$_.IPAddress}  

Gruß jodel32