none
User per PowerShell anlegen RRS feed

  • Frage

  • Hallo,

    ich habe mir ein kleines Script angelegt, mit diesem ich meine neuen User in der AD anlegen kann. Das Script läuft auch problemlos durch. Jedoch schaffe ich es nicht den "Namen" nachträglich zu ändern.

    Hätte hier jemand einen Tipp für mich?

    Danke

    Freitag, 28. Oktober 2016 10:20

Antworten

  • Hi,

    Tipp 1: vermische nicht die Befehlszeilenkommandos, bleibe innerhalb einer Sprache ("cls" ist in PowerShell "Clear-Host"; macht zwar das gleiche, ist aber sauberer).

    Tipp 2: Du kannst das Skript auch so bauen, dass Benutzername und Kennwort abgefragt werden, falls gewünscht, dann musst Du nicht das Skript jedes Mal anpassen:

    $Account = Read-Host "Bitte Benutzernamen eingeben"
    $InitialPassword = Read-Host "Bitte Kennwort eingeben"

    Idealerweise verwendest Du auch nicht für jeden User das gleiche Initialkennwort, sondern lässt per Funktion automatisiert ein individuelles Kennwort erstellen (--> z.B. Sicherheitsgründe, weil sonst jeder das Kennwort eines neuen Kollegen weiß).

    Tipp 3: Du kannst Dein Skript wesentlich verkürzen, wenn Du die ganzen Parameter hintereinander schreibst, Du musst nicht jeden Parameter einzeln setzen:

    New-ADUser -Name $Account -accountPassword (ConvertTo-SecureString -AsPlainText "Init123" -Force) -enable $True -Company "Meine Firma" -StreetAddress "Hamburger Strasse 7" -PostalCode "12345" -City Heimatstadt -State "Mecklenburg-Vorpommern" -Country DE
    
    

    Damit die Zeile nicht zu lang wird, kannst Du den String mittels ` (SHIFT+Hochkomma-Taste neben "ß") trennen; nach diesem Zeichen darfst Du den Rest mit ENTER in eine neue Zeile setzen.

    Was mich jetzt noch wundert, ist:
    1. Warum das Remove-ADUser? Ist das Skript nur zum Testen gedacht oder willst Du damit ausschließen, dass der Benutzer schon existiert?
    2. Warum brauchst Du das "-Replace" und das "-Rename" überhaupt? Wäre es nicht einfacher, den Namen gleich bei der Erstellung richtig zu setzen?


    Liebe Grüße

    Ben

    ____________________________

    MCSA Office 365

    MCSA SQL Server 2014

    MCITP Windows 7

    MCSA Windows 8/10

    MCSE Server Infrastructure

    ____________________________

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort. Danke! :-).

    Montag, 31. Oktober 2016 07:27

Alle Antworten

  • Hallo,

    das sollte mit dem cmdlet Rename-ADObject möglich sein bzw. sieh dir mal folgenden Link an:

    Rename AD users with Powershell

    Lg

    Freitag, 28. Oktober 2016 11:01
  • Hallo,

    irgendwie nicht :(.

    Ich bekomme folgende Fehlermeldung zurück:

    Rename-ADObject : Unter "DC=MyDomain,DC=local" kann kein Objekt mit der ID "zzzYYYY"
    gefunden werden.

    Was mich auch noch wunder ist, dass folgender Befehl funktioniert:

    Set-ADUser -Identity

    Hier mein Script:

    cls
    
    $Account = "zzzYYYY"
    $InitialPassword = "Init123"
    
    Remove-ADUser $Account -Confirm:$false
    
    New-ADUser -Name $Account -accountPassword (ConvertTo-SecureString -AsPlainText "Init123" -Force) -enable $True
    
    Set-ADUser -Identity $Account -Company "Meine Firma"
    Set-ADUser -Identity $Account -StreetAddress "Hamburger Strasse 7"
    Set-ADUser -Identity $Account -PostalCode "12345"
    Set-ADUser -Identity $Account -City Heimatstadt
    Set-ADUser -Identity $Account -State "Mecklenburg-Vorpommern"
    Set-ADUser -Identity $Account -Country DE
    
    Set-ADUser -Identity $Account -GivenName Vorname
    Set-ADUser -Identity $Account -Surname Familienname
    Set-ADUser -Identity $Account -DisplayName "Familienname Vorname"
    Set-ADUser -Identity $Account -EmailAddress Vorname.Familienname@MyDomain.com
    Set-ADUser -Identity $Account -UserPrincipalName "zzzYYYY"
    Set-ADUser -Identity $Account -Title "Titelllllllllllll"
    Set-ADUser -Identity $Account -Department "Abteilung"
    
    Set-ADUser -Identity $Account -Initials "199990"
    Set-ADUser -Identity $Account -EmployeeID "xxxx"
    Set-ADUser $Account -Replace @{Pager='xxxx'}
    
    Set-ADUser -Identity $Account -Office "Raummmmmmmmmm"
    Set-ADUser -Identity $Account -HomePage "http://www.MyDomain.com"
    
    Set-ADUser -Identity $Account -OfficePhone "+49 8888 7724 xxx"
    Set-ADUser -Identity $Account -Fax "+49 8888 7724 xxx"
    Set-ADUser -Identity $Account -MobilePhone "+49 172 xxxxxxxxxxxxx"
    
    Set-ADUser -Identity $Account -Manager "Name1"
    
    Set-ADUser $Account -Replace @{UserPrincipalName= "$Account@MyDomain.local"}
    
    Rename-ADObject -Identity $Account -NewName "Max Huber"
    Schon mal Danke.

    Montag, 31. Oktober 2016 00:06
  • Hi,

    Tipp 1: vermische nicht die Befehlszeilenkommandos, bleibe innerhalb einer Sprache ("cls" ist in PowerShell "Clear-Host"; macht zwar das gleiche, ist aber sauberer).

    Tipp 2: Du kannst das Skript auch so bauen, dass Benutzername und Kennwort abgefragt werden, falls gewünscht, dann musst Du nicht das Skript jedes Mal anpassen:

    $Account = Read-Host "Bitte Benutzernamen eingeben"
    $InitialPassword = Read-Host "Bitte Kennwort eingeben"

    Idealerweise verwendest Du auch nicht für jeden User das gleiche Initialkennwort, sondern lässt per Funktion automatisiert ein individuelles Kennwort erstellen (--> z.B. Sicherheitsgründe, weil sonst jeder das Kennwort eines neuen Kollegen weiß).

    Tipp 3: Du kannst Dein Skript wesentlich verkürzen, wenn Du die ganzen Parameter hintereinander schreibst, Du musst nicht jeden Parameter einzeln setzen:

    New-ADUser -Name $Account -accountPassword (ConvertTo-SecureString -AsPlainText "Init123" -Force) -enable $True -Company "Meine Firma" -StreetAddress "Hamburger Strasse 7" -PostalCode "12345" -City Heimatstadt -State "Mecklenburg-Vorpommern" -Country DE
    
    

    Damit die Zeile nicht zu lang wird, kannst Du den String mittels ` (SHIFT+Hochkomma-Taste neben "ß") trennen; nach diesem Zeichen darfst Du den Rest mit ENTER in eine neue Zeile setzen.

    Was mich jetzt noch wundert, ist:
    1. Warum das Remove-ADUser? Ist das Skript nur zum Testen gedacht oder willst Du damit ausschließen, dass der Benutzer schon existiert?
    2. Warum brauchst Du das "-Replace" und das "-Rename" überhaupt? Wäre es nicht einfacher, den Namen gleich bei der Erstellung richtig zu setzen?


    Liebe Grüße

    Ben

    ____________________________

    MCSA Office 365

    MCSA SQL Server 2014

    MCITP Windows 7

    MCSA Windows 8/10

    MCSE Server Infrastructure

    ____________________________

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort. Danke! :-).

    Montag, 31. Oktober 2016 07:27