Powershell String zu Array hinzufügen
Hallo Community,
ich schreibe gerade ein Powershell-Script, welches aus einer CSV IP-Adressen filtert und in ein Array schreiben soll.
Leider gelingt mir das nicht, wenn ich es wie folgt schreibe beinhaltet die variable $ipAdresse = 192.168.178.12192.168.178.17192.168.178.12192.168.178.19. Ich würde aber gerne die IP-Adressen getrennt in einem Array haben.
Nachdem ich mich etwas "durchgegooglet" habe, habe ich immer noch kein Lösungsansatz.
Könnte mir jemand auf die Sprünge helfen?
Das komplette Script:
ich schreibe gerade ein Powershell-Script, welches aus einer CSV IP-Adressen filtert und in ein Array schreiben soll.
Leider gelingt mir das nicht, wenn ich es wie folgt schreibe
$ipAdresse += ExtractValidIPAddress $item
Nachdem ich mich etwas "durchgegooglet" habe, habe ich immer noch kein Lösungsansatz.
Könnte mir jemand auf die Sprünge helfen?
Das komplette Script:
Function ExtractValidIPAddress($String){
$IPregex=‘(?<Address>((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))’
If ($String -Match $IPregex) {$Matches.Address}
}
$dcLog = Import-Csv -Path "C:\Temp\logonAdministrator_DC1.csv" -Encoding UTF8 -Delimiter ";"
foreach($item in $dcLog.Message){
$ipAdresse += ExtractValidIPAddress $item
#(Resolve-DnsName (ExtractValidIPAddress $item ) -ErrorAction SilentlyContinue).NAMEHOST
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1462262694
Url: https://administrator.de/contentid/1462262694
Ausgedruckt am: 19.12.2024 um 10:12 Uhr
6 Kommentare
Neuester Kommentar
Bevor du einen Eintrag zu einem Array hinzufügst musst du erst mal das Array vorher erstellen
Aber das Hinzufügen via += ist bei Array braucht intern viel Ressourcen weil für jeden neuen Eintrag der Speicher neu alloziert werden muss.
Besser wäre alles gleich in einem Rutsch einem Array zuzuweisen
$ipAdresse = @()
Besser wäre alles gleich in einem Rutsch einem Array zuzuweisen
$ipadressen = Import-Csv -Path "C:\Temp\logonAdministrator_DC1.csv" -Encoding UTF8 -Delimiter ";" | %{ExtractValidIPAddress $_.Message}
Zitat von @akadawa:
ich schreibe gerade ein Powershell-Script, welches aus einer CSV IP-Adressen filtert und in ein Array schreiben soll.
Leider gelingt mir das nicht, wenn ich es wie folgt schreibe beinhaltet die variable $ipAdresse = 192.168.178.12192.168.178.17192.168.178.12192.168.178.19. Ich würde aber gerne die IP-Adressen getrennt in einem Array haben.
Leider gelingt mir das nicht, wenn ich es wie folgt schreibe
$ipAdresse += ExtractValidIPAddress $item
Irgendwie kann ich keine Deklaration eines Arrays entdecken.
Zitat von @akadawa:
foreach($item in $dcLog.Message){
$ipAdresse = @()
$ipAdresse += ExtractValidIPAddress $item
#(Resolve-DnsName (ExtractValidIPAddress $item ) -ErrorAction SilentlyContinue).NAMEHOST
}
foreach($item in $dcLog.Message){
$ipAdresse = @()
$ipAdresse += ExtractValidIPAddress $item
#(Resolve-DnsName (ExtractValidIPAddress $item ) -ErrorAction SilentlyContinue).NAMEHOST
}
Selbst mit Deklaration enthält das Array nur ein Value
Denk einfach mal etwas nach. Die initiale Deklaration des Arrays musst du außerhalb der Schleife machen denn sonst initialisierst du das Array ja bei jedem Durchlauf immer wieder neu somit hat es am Ende immer nur eine IP .