pixel0815
Goto Top

Powershell Vergleichen Name u Vorname mit Active Directory

Moin moin zusammen,

vielleicht hat hier ja einer eine Idee.

Ich hab eine CSV Datei. Dort gibt es Nachname, Vorname.
Dieses möchte ich mit dem AD vergleichen ob es den Benutzer gibt oder nicht.

Schwierigkeiten:

- Ursprungsliste enthält Umlaute
- Displayname im AD nicht immer gleich Nachname, Vorname
- Nachname und Vorname nicht immer wie in Ursprungsliste geschrieben ( In der CSV mit Umlaut, im AD ohne Umlaut )
- Mehrfach vorhanden eventuell ( müller maier schulz ).

In der Ausgabe CSV soll SamAccountName, Name, EmailAddress, Enabled, LastLogonDate stehen, wenn der Benutzer im AD nicht exisiert, soll dies natürlich auch in der CSV stehen.

Hat jemand ne Idee?

Gruß
Pixel

Content-Key: 330803

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

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

Mitglied: 132272
Solution 132272 Mar 01, 2017, updated at Mar 02, 2017 at 13:37:23 (UTC)
Goto Top
Mach einfach per Where-Object einen Vergleich von Vor- und Nachname (dafür gibt es separate FelderSurname und GivenName, verknüpfe diese Abfrage mit einem oder und teste dann erneut mit den Name bei denen du zusätzlich äöü ersetzt via -replace.

Gruß

$csv = Import-CSV 'C:\users.csv' -Delimiter ";"  
$aduser = Get-ADUser -Filter * -Properties Surname,Givenname,LastLogonDate,EmailAddress,Enabled

function Umlaute-Ersetzen([string]$text){
    return [regex]::Replace($text,'(?i)[äöüß]',{param($m) switch -CaseSensitive ($m){'ä'{'ae'};'ü'{'ue'};'ö'{'oe'};'ß'{'ss'};'Ä'{'Ae'};'Ü'{'Ue'};'Ö'{'Oe'}}})  
}

$csv | %{
    $sn = $_.Nachname
    $gn = $_.Vorname
    $user = $aduser | ?{($_.Surname -eq $sn -and $_.GivenName -eq $gn) -or ($_.Surname -eq (Umlaute-Ersetzen $sn) -and $_.GivenName -eq (Umlaute-Ersetzen $gn))}
    if($user){$user}else{[pscustomobject]@{SamAccountName="-NONEXISTENT-";Name="$sn,$gn"}}  
} | select SamAccountName,Name,EmailAddress,Enabled,LastLogonDate | export-csv .\result.csv -Delimiter ";" -Notype -Encoding UTF8  
Member: joehuaba
joehuaba Mar 02, 2017 updated at 06:12:32 (UTC)
Goto Top
Guten Morgen face-smile

Hab schon ein fertiges Script, das genau das macht face-smile
https://www.itnator.net/import-userlist-activedirectory/

Gruß Joe

Edit: naja, vielleicht nicht genau das, aber lässt sich ja relativ leicht umbauen face-smile
Member: pixel0815
pixel0815 Mar 06, 2017 at 08:05:55 (UTC)
Goto Top
Guten Morgen cruzer,

wow dankeschön! Ich teste es gerade.
Kann es sein das die Powershell beim CSV Import ein Unicode ooder UTF8 Kodierung ignoriert?
Wenn ich die CSV öffne sehe ich die Zeichen äöüß ganz normal.
Wenn ich jetzt allerdings die Results.csv öffne, sehe ich dort immer ein NOTEXISTENT.
Mache ich da was falsch?

Gruß
PIxel
Member: pixel0815
pixel0815 Mar 06, 2017 at 08:10:57 (UTC)
Goto Top
Ach hat sich erledigt. Excel :O) Nun läuft es.
Mitglied: 132272
132272 Mar 06, 2017 at 08:19:35 (UTC)
Goto Top
Na dann bitte auch als gelöst markieren.