(Powershell) - If Statement in Expression
Hey,
ich habe hier ein Skript, welches mir benötigte Infos über AD Benutzer in eine CSV Datei exportiert. Das Problem besteht darin, dass einige Nutzer keine Mailadresse besitzen und das zu Problemen mit der Software führt welche die CSV importiert.
Daher war mein Plan eine If Anweisung zu formulieren, welche bei nichtvorhandener Mailadresse eine Pseudoadresse generiert aus Vor-/und Nachname.
Leider bekomme ich nur die Meldung, dass das Hashliteral unvollständig sei.
Grüße
ThunderbirdO
ich habe hier ein Skript, welches mir benötigte Infos über AD Benutzer in eine CSV Datei exportiert. Das Problem besteht darin, dass einige Nutzer keine Mailadresse besitzen und das zu Problemen mit der Software führt welche die CSV importiert.
Daher war mein Plan eine If Anweisung zu formulieren, welche bei nichtvorhandener Mailadresse eine Pseudoadresse generiert aus Vor-/und Nachname.
$ous = 'OU=Interne Mitarbeiter,OU=xxx,DC=xxx,DC=intern','OU=Interne Mitarbeiter,OU=xxx,DC=xxx,DC=intern','OU=Interne Mitarbeiter,OU=xxx,DC=xxx,DC=intern'
$ous | ForEach { Get-ADUser -Filter * -SearchBase $_ -property * } |
select @{Name='Name';Expression={$_.sn}},
@{Name='Vorname';Expression={$_.givenname}},
@{Name='Email';Expression={if ($_.mail -notcontains "@") {$_.givenname+'.'+$_.sn+'@xxx.intern'} else {$_.mail}},
@{Name='Organisation->Name';Expression = {%{$_.distinguishedname -replace "(CN=)(.*?)(,OU=)(.*?)(,OU=)(.*?),.*",'$6'}}},
@{Name='Telefonnummer';Expression={$_.telephonenumber}} |
Export-CSV -Path "\\xx-server-xxx\c`$\Data Collector\Collector ADUser\ADUser.csv" -NoTypeInformation -encoding UTF8 -Delimiter ";"
Leider bekomme ich nur die Meldung, dass das Hashliteral unvollständig sei.
Grüße
ThunderbirdO
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 384643
Url: https://administrator.de/forum/powershell-if-statement-in-expression-384643.html
Ausgedruckt am: 04.05.2025 um 05:05 Uhr
3 Kommentare
Neuester Kommentar
Servus @ThunderbirdO , willkommen auf Administrator.de!
Grüße Uwe
Leider bekomme ich nur die Meldung, dass das Hashliteral unvollständig sei.
Zwei Fehler:- In Zeile 6 fehlt ganz hinten vor dem Komma noch eine schließende geschweifte Klammer für die Calculated Property, deswegen auch die passende Fehlermeldung weil die Hashtable @{} eben nicht korrekt abgeschlossen ist.
- Der Operator -notcontains ist hier falsch gewählt denn der Vergleicht nicht das Vorkommen einzelne Zeichen in Strings sondern ist für den Vergleich eines Vorkommens eines Eintrags in Arrays, du kannst hier bspw. stattdessen den -notlike oder -notmatch(für Regex) Operator nehmen
@{Name='Email';Expression={if ($_.mail -notlike "*@*") {$_.givenname + '.' + $_.sn + '@xxx.intern'} else {$_.mail}}},
Keine Ursache.
Danke gleichfalls, den werde ich bestimmt haben, im Liegestuhl am azur blauen Ozean
.
Danke gleichfalls, den werde ich bestimmt haben, im Liegestuhl am azur blauen Ozean