pixel0815
Goto Top

Zwei ADs vergleichen via Powershell mir CSV Export

Hi,

sagt mal, ich habe hier zwei ADs.

Anhand eines Exports diverser Attribute von AD 1 wurde in AD 2 mehrere OUs gefüllt mit neuen Benutzern( Massenanlage), dummerweise wurde versäumt hier den SamAccountName als Referenz zu hinterlegen. Jetzt habe ich hier tausende Accounts und die Benutzer der anderen Domäne müssen benachrichtigt werden.

Jetzt kann ich nur einen Vornamen und Nachnamen vergleich durchführen.

Ich würde gerne alle Benutzer aus AD 1 auslesen und speichern, diese mit Vorname, Nachname, Ort, PLZ vergleichen, bei einem Treffer möchte ich später im CSV File folgendes drinstehen haben:


Surname,GivenName,Name,SamAccountName,SamAccountname-AD2,Enabled,AD2-Aktiviert

Oder hat jemand eine bessere Idee? Ziel ist es, den Report später auf Benutzer zu beschränken die in den letzten 2 Wochen angelegt wurden. Aber erstmal müssen alle aktiven Benutzer vergleichen werden.

Freu mich auf nette Beiträge.

LG Heiko

Content-ID: 456373

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

Ausgedruckt am: 21.11.2024 um 20:11 Uhr

killtec
killtec 27.05.2019 um 15:08:31 Uhr
Goto Top
HI,
das sieht fast nach einer manuellen Aufgabe aus.
Wie wäre es, via get-aduser je Domain das in eine CSV zu schreiben und das via Excel zu vergleichen?

Gruß
139920
139920 27.05.2019 aktualisiert um 16:43:48 Uhr
Goto Top
CSV importieren, User über Get-ADUser Einlesen und dann beide Objekte vergleichen mit
Compare-Object mit Parametern -IncludeEqual -ExcludeDifferent und -Properties, fertig.

Skript für Aktualisierung der User im Active Directory

$csv = Import-CSV .\import.csv -Delimiter ";"  
$users = Get-ADUser -Filter * -Properties surname,givenname,city,postalcode
Compare $users $csv -IncludeEqual -ExcludeDifferent -Property Surname,Givenname,PostalCode,City -PassThru | select Surname,Givenname,Postalcode,City,SamAccountName,Enabled | export-csv .\export.csv -Delimiter ";" -NoType -Encoding UTF8  
erikro
erikro 27.05.2019 um 15:35:29 Uhr
Goto Top
Moin,

ein Lösungsansatz:

get-aduser -filter * -properties samaccountname,sn,givenname,city,postalcode | export-csv ad1.csv -delimiter ";" -notypeinformation -encoding utf8  

Damit erstmal alle User des AD1 in eine CSV schreiben. Die rübertragen zum AD2 und dort

$ad1 = import-csv ad1.csv

foreach($user in $ad1) {
    $ad2user = ""  
    $ad2user = get-aduser -filter {(sn -eq "$user.sn") -and (givenname -eq "$user.givenname")  
    if($ad2user) {
         # Hier den Treffer in ein neues CSV schreiben
    }
}

hth

Erik