ceratull 0 Geschrieben 31. März 2015 Melden Teilen Geschrieben 31. März 2015 Hallo Community, ich habe das Problem, dass ich mehrere tausend Konten gegenübersstellen soll. Wir haben die Konten aus unterschiedlichen Domänen per Powershell ausgelesen und in Excel exportiert. Jetzt ist es natürlich sehr mühsam, die gegenüberzustellen und manuell abzugleichen. Ziel ist es möglichst einheitliche AD Konten zu haben mit der Namenskonvention 6(Nachname)+2(Vorname) bei Schultz, Michael. Also z.B. "SchultMi". Bsp: Domäne 1 SchultMi (alles korrekt) Domäne 2 SchultzM (wäre hier falsch, da es 7+1 entspricht) Jetzt gibt es natürlich auch andere Namenskonstrukte mit Zahlen, die herausgefiltert werden sollen. Sowas bizarres wie "Schult82M" oder auch Konstrukte wie "SchuMich". Wie kann man die falschen "Erbsen" jetzt jeweils herausfiltern, ohne die händisch alle abzugleichen? Das ist in hierarchisch gewachsenen Domänen ja ein häufiges Problem, dass es Abweichungen bei den Namen gibt. Schlussendlich wäre es gut, wenn man die User tabellarisch gegenüberstellen kann. Leider hat nicht jeder User in jeder Domäne auch ein Konto. Eine Domäne hat 22 000 Benutzer während eine andere Domäne nur 500 Benutzer hat. Ist ziemlich tricky, aber ich hoffe, dass der Gesamtkontext klargeworden ist. Am wichtigsten wäre es die falschen Namen herauszubekommen. Vielen Dank vorab. Kimi Zitieren Link zu diesem Kommentar
NilsK 2.938 Geschrieben 31. März 2015 Melden Teilen Geschrieben 31. März 2015 Moin, das wird nur mit hohem manuellem Aufwand gehen, denn bei "historischen" Daten wird ja jemand entscheiden müssen, was Sache ist. Du kannst dir höchstens mit den Mitteln von Excel (oder, wenn du das umsetzen kannst, vielleicht mit Skripten) den Prozess etwas erleichtern, aber was du dazu genau tun musst, dürfte sehr individuell sein, daher kann man dir da kaum eine Anleitung geben. Gibt es denn ein Feld, das in allen Welten die Konten eindeutig identifiziert? Sowas wie Mailadresse, Personalnummer oder so? Wenn ja, dann wäre das der Anker, auf dessen Basis du den Vergleich bauen könntest. Gruß, Nils Zitieren Link zu diesem Kommentar
ceratull 0 Geschrieben 31. März 2015 Autor Melden Teilen Geschrieben 31. März 2015 Ja die Umwandlung ist dann ja noch eine ganz andere Sache. Aber ist Powershell nicht dazu in der Lage die Anzahl von Zeichen eines Wortes herauszufinden? Würde also so ablaufen können = Lese die ersten 6 Zeichen von Last name aus und dann noch die ersten 2 Zeichen von FirstName. Vergleiche das Konstrukt dann mit User Logon tName. Wenn unterschiedlich, schreibe in Datei XYZ. Der User Logon Name ist auf jeden Fall einzigartig. Bin leider kein Powershell Pro :-( Zitieren Link zu diesem Kommentar
NilsK 2.938 Geschrieben 31. März 2015 Melden Teilen Geschrieben 31. März 2015 Moin, das kriegt man ja nun auch in Excel hin. Wenn man in Scripting nicht fit ist, ist das meist die bessere Wahl. Gruß, Nils Zitieren Link zu diesem Kommentar
MurdocX 952 Geschrieben 28. April 2015 Melden Teilen Geschrieben 28. April 2015 Ist das noch aktuell, sonst würde ich mich da mal dran probieren ;-) ? Zitieren Link zu diesem Kommentar
ceratull 0 Geschrieben 28. April 2015 Autor Melden Teilen Geschrieben 28. April 2015 Hallo MurdocX, ja ist immer noch aktuell. Ich habe bisher manuell mit zwei Excel Tabellen verglichen. Also sehr händisch. Gruß Kimi Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 28. April 2015 Melden Teilen Geschrieben 28. April 2015 Hallo, ich habe mich gefragt, ob und wie so etwas überhaupt leistbar ist? Haben die User selbst keinen Blick über ihre Konten? Zitieren Link zu diesem Kommentar
MurdocX 952 Geschrieben 29. April 2015 Melden Teilen Geschrieben 29. April 2015 (bearbeitet) Erläuterung Das Skript prüft folgende Richtlinie: Nachname 6 Zeichen, Vorname 2 Zeichen. Es generiert aus Vor- und Nachname einen Benutzernamen und prüft diesen auf Richtlinienkonformität (vergleicht den aktuellen SamAccountName). Durch das Verändern der Variablen intLaengestrVorname und intLaengestrNachname kann Einfluss auf die Generierung genommen werden. Achtung: DOMAINCONTROLLER, ORAGANISATIONSEINHEIT, DOMÄNE und PFAD müssen noch angepasst werden! Viel Erfolg mit meinem Skript :) Skript #requires -Version 1 -Modules ActiveDirectory # Deklaration [String]$strKonvention = '' [String]$strVorname = '' [String]$strNachname = '' [String]$SamAccountName = '' [Int]$MissigChars = 0 [Int]$intLaengestrVorname = 2 [Int]$intLaengestrNachname = 6 # Abfrage der AD-Benutzer Write-Host -Object '[+] Informationen werden abgerufen. Bitte warten...' -ForegroundColor Yellow -NoNewline try { $ADUser = Get-ADUser -Filter { Name -like '*' } -Properties SamAccountName -AuthType Negotiate -Server 'DOMAINCONTROLLER' -ErrorAction SilentlyContinue -SearchBase 'OU=ORGANISATIONSEINHEIT,DC=DOMÄNE,DC=DOMÄNE' Write-Host -Object '[OK!]' -ForegroundColor Green } catch { Write-Host -Object "[ERROR] Fehler in der AD-Abfrage!`n$_" -ForegroundColor Red Exit } # Objektverarbeitung foreach ($User in $ADUser) { try { # Füllen der Variablen $strVorname = $User.GivenName $strNachname = $User.Surname $SamAccountName = $User.SamAccountName # Benutzernamen generieren If ( $strNachname.Length -ge $intLaengestrNachname ) { # generiere $strKonvention = $strNachname.SubString(0,$intLaengestrNachname) + $strVorname.Substring(0,$intLaengestrVorname) } # Benutzernamen generieren If ( $strNachname.Length -lt $intLaengestrNachname ) { # Berechne fehlende Zeichen $MissigChars = $intLaengestrNachname - ($strNachname.length) # generiere $strKonvention = $strNachname + ($strVorname.Substring(0,($intLaengestrVorname+$MissigChars))) } # Vergleiche die strKonvention mit dem Benutzerobjekt if ($SamAccountName -notlike $strKonvention) { Write-Host -Object "[!!] Unstimmigkeit gefunden! Vorname:'$strVorname', Nachname:'$strNachname', Erwartet:$strKonvention, Vorhanden:$SamAccountName" -ForegroundColor Yellow Out-File -FilePath 'PFAD' -Append -InputObject "[!!] Unstimmigkeit gefunden! Vorname:'$strVorname', Nachname:'$strNachname', Erwartet:$strKonvention, Vorhanden:$SamAccountName" } } catch { Write-Host -Object "[ERROR] $_" } } bearbeitet 29. April 2015 von MurdocX Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.