none
AD Useranlage RRS feed

  • Frage

  • Guten Tag liebe Community,

    ich habe folgendes Problem:

    Wir legen Nutzer mit einem Powershell Script an. Nun hat die Zentrale leider ein neues Namenskonzept veröffentlicht, wodurch ich das Script anpassen muss. Bisher war es bei neuen Mitarbeitern so:

    Max Mustermann = Samaccount:mustermann.m

    neues Konzept lautet: mmustermann.

    Im folgenden Script, legt er einen Nutzer nach dem alten Konzept an:

    $Correct = (Get-Culture).TextInfo
    $vorname1 = $vorname
    $vorname1 = $Correct.ToTitleCase($vorname1.ToLower())
    $ReplaceMap.Keys | % {$vorname1 = $vorname1.Replace($_, $ReplaceMap[$_])}
    
    $name1 = $name
    $name1 = $Correct.ToTitleCase($name1.ToLower())
    $ReplaceMap.Keys | % {$name1 = $name1.Replace($_, $ReplaceMap[$_])}
    
    $name2=$name1
    $vorname2=$vorname1
    for($i = 1; $i -le 5; $i++) {
    
        $account = "$name1.$($vorname1.Substring(0,$i))"
        $user = Get-ADUser -server domäne.domäne1.de -Filter "samaccountname -eq '$account'"
    
        if($user -eq $null){
    
            write-Host "User $account in Domain 1 NICHT gefunden"
            $user = Get-ADUser -server domäne.domäne2.de -Filter "samaccountname -eq '$account'"
    
            if($user -eq $null){
                write-Host "User $account in Domain 2 NICHT gefunden"
    	    break
            }
            else{
                write-Host "User $account in Domain 2 gefunden"
            }
        }
        else{
            write-Host "User $account in Domain 1 gefunden"
        }
    }
    
    $account
    Sollte es bereits einen Nutzer mit dem SamAccount mustermann.m geben, nimmt er den nächsten Buchstaben des Vornamens. Wie müsste das Script aussehen, damit der SamAccount als mmustermann und, falls es bereits einen mmustermann gibt, als mamustermann angelegt wird?


    • Bearbeitet antenne1988 Mittwoch, 30. September 2020 07:29
    Mittwoch, 30. September 2020 07:28

Antworten

  • Dreh den Wert doch einfach um:

     $account = "$($vorname1.Substring(0,$i))$name1"


    • Als Antwort markiert antenne1988 Mittwoch, 30. September 2020 09:15
    Mittwoch, 30. September 2020 09:07

Alle Antworten

  • Dreh den Wert doch einfach um:

     $account = "$($vorname1.Substring(0,$i))$name1"


    • Als Antwort markiert antenne1988 Mittwoch, 30. September 2020 09:15
    Mittwoch, 30. September 2020 09:07
  • Ehm ok Vielen Dank ^^ Ich hab mir das irgendwie komplizierter vorgestellt. Funktioniert.
    Mittwoch, 30. September 2020 09:15
  • Moin,

    in Theorie, müsstest Du doch in der Schleife lediglich

     $account = "$name1.$($vorname1.Substring(0,$i))"

    durch

     $account = "$($vorname1.Substring(0,$i))$name1"

    ersetzen, oder habe ich etwas übersehen?

    Was ich generell nicht sehe, ist, wo ihr die Gesamtlänge begrenzt. Vom Vornamen nehmt ihr ja maximal 5 Buchstaben, das bedeutet aber, dass der Nachname maximal 15 Zeichen haben kann. Zugegeben selten, aber durchaus schon vorgekommen ;-)


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Mittwoch, 30. September 2020 09:17