Erstellen neuer Active Directory-Benutzer mit PowerShell

Am einfachsten lassen sich neue Benutzer in einer Active Directory-Domäne mit dem MMC-Snap-in „Active Directory-Benutzer und -Computer“ erstellen. Doch wie gehen Sie vor, wenn Sie eine Vielzahl von Benutzerkonten gleichzeitig erstellen möchten oder das Snap-in nicht verfügbar ist? In diesem Artikel werden verschiedene Methoden vorgestellt, mit denen Sie Active Directory-Benutzerkonten mit dem PowerShell-Cmdlet „New-ADUser“ erstellen können.

Erstellen neuer Benutzerkonten mit dem Cmdlet „New-ADUser“

Das PowerShell-Cmdlet „New-ADUser“ ist im Active Directory PowerShell-Modul von Microsoft Windows Server 2008 R2/2012 und höheren Versionen enthalten und ermöglicht das Erstellen neuer Benutzerobjekte. Zunächst müssen Sie deshalb das Active Directory-Modul aktivieren:

Import-Module ActiveDirectory

Schauen wir uns die Funktionsweise des Cmdlets „New-ADUser“ genauer an. Mit dem folgenden Befehl können Sie die vollständige Syntax anzeigen:

Get-Command New-ADUser –Syntax

Wenn Sie die Syntax kennen, können Sie ganz einfach Benutzer zum Active Directory hinzufügen:

New-ADUser B.Johnson

Überprüfen Sie nun, ob der Benutzer erfolgreich hinzugefügt wurde, indem Sie mit folgendem Skript alle Active Directory-Benutzer anzeigen:

Get-ADUser -Filter * -Properties samAccountName | select samAccountName

Und da ist Ihr neuer Benutzer auch schon, ganz am Ende der Liste!

Erstellen neuer Active Directory-Benutzerkonten mit Kennwort

  • Die Konten werden mit folgenden Standardeigenschaften erstellt:
  • Das Konto wird im Container „Benutzer“ erstellt.
  • Das Konto ist deaktiviert.
  • Das Konto gehört der Gruppe „Domänenbenutzer“ an.
  • Es wird kein Kennwort festgelegt.
  • Der Benutzer muss das Kennwort bei der ersten Anmeldung zurücksetzen.

Um ein neues Konto zu erstellen, das tatsächlich genutzt werden kann, muss das Konto also mit dem Cmdlet „Enable-ADAccount“ aktiviert werden. Anschließend muss mit dem Cmdlet „Set-ADAccountPassword“ ein Kennwort eingerichtet werden.

Erstellen Sie nun ein neues Konto mit den folgenden Attributen:

  • Name: Jack Robinson
  • Vorname: Jack
  • Nachname: Robinson
  • Kontoname: J.Robinson
  • Benutzerprinzipalname: J.Robinson@enterprise.com
  • Pfadadresse: „OU=Managers,DC=enterprise,DC=com“
  • Kennworteingabe
  • Status: Aktiviert

Verwenden Sie folgendes Skript:

New-ADUser -Name "Jack Robinson" -GivenName "Jack" -Surname "Robinson" -SamAccountName "J.Robinson" -UserPrincipalName "J.Robinson@enterprise.com" -Path "OU=Managers,DC=enterprise,DC=com" -AccountPassword(Read-Host -AsSecureString "Input Password") -Enabled $true

Mit dem Parameter „Read-Host“ werden Sie aufgefordert, ein neues Kennwort einzugeben. Beachten Sie, dass das Kennwort die Regeln Ihrer Domänensicherheitsrichtlinie im Hinblick auf Länge, Komplexität und Historie einhalten muss.

Schauen Sie sich nun die Ergebnisse an, indem Sie das folgende Cmdlet ausführen:

Get-ADUser J.Robinson -Properties CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet  | Select CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet

Gleichzeitiges Erstellen mehrerer Active Directory-Benutzer mit einem PowerShell-Skript

Damit die Aufgabe ein wenig komplizierter wird, erstellen Sie nun zehn ähnliche Active Directory-Konten gleichzeitig, beispielsweise für die IT-Schulung Ihres Unternehmens, und legen für die einzelnen Konten ein Standardkennwort (P@ssw0rd) fest. Für die geschützte Übermittlung des Standardkennworts müssen Sie den Parameter „ConvertTo-SecureString“ verwenden. Verwenden Sie folgendes Skript:

$path="OU=IT,DC=enterprise,DC=com"
$username="ITclassuser"
$count=1..10
foreach ($i in $count)
{ New-AdUser -Name $username$i -Path $path -Enabled $True -ChangePasswordAtLogon $true  `

-AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -passThru }

Sie werden das Skript nun um den Parameter „Read-Host“ erweitern, um die Flexibilität zu verbessern. Mit dem Parameter werden Sie aufgefordert, Namen und Anzahl der Benutzer einzugeben:

path="OU=IT,DC=enterprise,DC=com"
$username=Read-Host "Enter name"
$n=Read-Host "Enter Number"
$count=1..$n
foreach ($i in $count)
{ New-AdUser -Name $username$i -Path $path -Enabled $True -ChangePasswordAtLogon $true  `

-AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -passThru }

Importieren von Active Directory-Benutzern aus einer CSV-Datei

Eine weitere Möglichkeit, Benutzer in Active Directory zu erstellen, ist das Importieren der Benutzer aus einer CSV-Datei. Diese Option ist hilfreich, wenn Sie über eine Liste der Benutzer mit folgenden vordefinierten Eigenschaften verfügen:

  • Vorname
  • Nachname
  • Benutzername
  • Abteilung
  • Kennwort
  • Organisationseinheit

Die CSV-Datei muss UTF8-codiert sein und Kontaktdaten in diesem Format enthalten:

Mit dem folgenden Skript können Sie aktivierte Benutzerobjekte für alle Benutzer in der CSV-Datei erstellen, für die noch keine Benutzerkonten in Active Directory eingerichtet wurden. Für die neuen Konten wird die Option „Kennwort bei der nächsten Anmeldung zurücksetzen“ aktiviert, sodass Sie Ihr Standardkennwort verwenden können:

#Enter a path to your import CSV file
$ADUsers = Import-csv C:\scripts\newusers.csv

foreach ($User in $ADUsers)
{

       $Username    = $User.username
       $Password    = $User.password
       $Firstname   = $User.firstname
       $Lastname    = $User.lastname
    $Department = $User.department
       $OU           = $User.ou

       #Check if the user account already exists in AD
       if (Get-ADUser -F {SamAccountName -eq $Username})
       {
               #If user does exist, output a warning message
               Write-Warning "A user account $Username has already exist in Active Directory."
       }
       else
       {
              #If a user does not exist then create a new user account
          
        #Account will be created in the OU listed in the $OU variable in the CSV file; don’t forget to change the domain name in the"-UserPrincipalName" variable
              New-ADUser `
            -SamAccountName $Username `
            -UserPrincipalName "$Username@yourdomain.com" `
            -Name "$Firstname $Lastname" `
            -GivenName $Firstname `
            -Surname $Lastname `
            -Enabled $True `
            -ChangePasswordAtLogon $True `
            -DisplayName "$Lastname, $Firstname" `
            -Department $Department `
            -Path $OU `
            -AccountPassword (convertto-securestring $Password -AsPlainText -Force)

       }
}

Nach der Ausführung des Skripts sehen Sie die beiden neuen Benutzer Edward Franklin und Bill Jackson in Ihrer Active Directory-Domäne:

Schauen Sie sich die weiteren Details an, indem Sie das Cmdlet „Get-ADUser“ erneut ausführen:

Get-ADUser E.Franklin -Properties CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet  | Select CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet

Zusammenfassung

Sie wissen nun, wie Sie mit PowerShell-Skripts neue Benutzer in Active Directory erstellen. Versuchen Sie selbst, einzelne Konten bzw. mehrere Konten gleichzeitig zu erstellen und Benutzer aus CSV-Dateien auf Ihren lokalen oder Remote-Systemen zu importieren. Denken Sie daran, dass das MMC-Snap-in „Active Directory-Benutzer und -Computer“ hervorragend für die Erstellung einiger weniger Benutzer mit erweiterten Attributen geeignet ist, mit PowerShell hingegen eine große Anzahl von Benutzerkonten gleichzeitig importiert werden kann.

Tutorial zur Skripterstellung  mit Windows PowerShell für Einsteiger