Powershell - Split-Funktion
Guten Tag,
ich würde gerne folgendes Ziel erreichen. Auslesen aller Zeichen vor dem @-Zeichen.
Beispiel
Ausgangswert Ergebnis
User1@firma.de ---> User1
User2@firma.de ---> User2
Für einen einzelnen User klappt das auch folgendermaßen:
$mail=(get-aduser user1 -Properties mail).mail
$mail.Split("@")
Ergebnis=user1
Allerdings schaffe ich es nicht, dies auf ein Array zu übertragen. Nach meinen Recherchen müsste ich hier mit Out-String arbeiten, damit ich überhaupt die Splitmethode anwenden kann.
$mails=(get-aduser -Filter * -Properties mail).mail | Out-String
Wenn ich dann versuche mit einer Schleife zu arbeiten, wende ich die Split-Methode nur noch auf eine Mailadresse an, das bringt mich leider nicht weiter.
foreach ($mail in $mails) {
$mail.Split("@")
}
Man muss ehrlicherweise sagen, dass ich bezüglich Powershell noch ganz am Anfang stehe und meistens nur einfache Get-Befehle abfeuere.
Ich erwarte keine fertige Lösung, aber ein Tipp in welche Richtung ich suchen sollte, wäre super.
Vielen Dank
ich würde gerne folgendes Ziel erreichen. Auslesen aller Zeichen vor dem @-Zeichen.
Beispiel
Ausgangswert Ergebnis
User1@firma.de ---> User1
User2@firma.de ---> User2
Für einen einzelnen User klappt das auch folgendermaßen:
$mail=(get-aduser user1 -Properties mail).mail
$mail.Split("@")
Ergebnis=user1
Allerdings schaffe ich es nicht, dies auf ein Array zu übertragen. Nach meinen Recherchen müsste ich hier mit Out-String arbeiten, damit ich überhaupt die Splitmethode anwenden kann.
$mails=(get-aduser -Filter * -Properties mail).mail | Out-String
Wenn ich dann versuche mit einer Schleife zu arbeiten, wende ich die Split-Methode nur noch auf eine Mailadresse an, das bringt mich leider nicht weiter.
foreach ($mail in $mails) {
$mail.Split("@")
}
Man muss ehrlicherweise sagen, dass ich bezüglich Powershell noch ganz am Anfang stehe und meistens nur einfache Get-Befehle abfeuere.
Ich erwarte keine fertige Lösung, aber ein Tipp in welche Richtung ich suchen sollte, wäre super.
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 462228
Url: https://administrator.de/contentid/462228
Ausgedruckt am: 25.11.2024 um 13:11 Uhr
5 Kommentare
Neuester Kommentar
Hi,
damit hast du dann doch bereits alle Adressen in dem Objekt $mails
$mails=(get-aduser -Filter * -Properties mail).mail
und komplett dann so (z.b. mit Ausgabe auf der Console). Du müsstest dann halt noch die User abfangen bei denen das Attribut nicht gesetzt ist.
$mails=(get-aduser -Filter * -Properties mail).mail
foreach ($mail in $mails) {
write-host $mail.Split("@")
}
damit hast du dann doch bereits alle Adressen in dem Objekt $mails
$mails=(get-aduser -Filter * -Properties mail).mail
und komplett dann so (z.b. mit Ausgabe auf der Console). Du müsstest dann halt noch die User abfangen bei denen das Attribut nicht gesetzt ist.
$mails=(get-aduser -Filter * -Properties mail).mail
foreach ($mail in $mails) {
write-host $mail.Split("@")
}
Hi,
es geht u.U. auch ohne Schleife, wenn man einfach ein fixes Kriterium findet, um Prefix von Suffix eindeutig zu unterscheiden. Eins könnte "frima.de" sein.
E.
Edit:
Wobei man dann sogar koplett darauf spekulieren könnte.
es geht u.U. auch ohne Schleife, wenn man einfach ein fixes Kriterium findet, um Prefix von Suffix eindeutig zu unterscheiden. Eins könnte "frima.de" sein.
(get-aduser -filter {mail -like "*"} -properties mail).mail.split("@") | ?{!$_.Endswith("firma.de")}
E.
Edit:
Wobei man dann sogar koplett darauf spekulieren könnte.
(get-aduser -filter {mail -like "*"} -properties mail).mail.replace("@firma.de","")
Zitat von @EarthShaker:
Würdet Ihr die Werte immer hart überschreiben, oder erst überprüfen, ob der Wert bereits korrekt gesetzt ist ?
Wenn Du "mail" bereits auslesen konntest, dann wurde es doch bereits "korrekt gesetzt". Dann kannst Du diesen Wert also auch in ein anderes Attribut schreiben.Würdet Ihr die Werte immer hart überschreiben, oder erst überprüfen, ob der Wert bereits korrekt gesetzt ist ?
Braucht es für solch simple Aktionen Logfiles? (Was sollte schon schief gehen? ^^)
Wie sollen wir das für Dich beantworten? Das hängt doch von den Anforderungen ab, welche man an diese Lösung stellt oder gestellt bekommt.