So erstellen Sie neue Active Directory-Benutzer mit PowerShell
Oct 9, 2024
Das New-ADUser Cmdlet ermöglicht es Administratoren, Active Directory -Benutzerkonten präzise und im großen Umfang zu erstellen. Während ADUC und ADAC die Erstellung einzelner Benutzer ermöglichen, unterstützt PowerShell die Massenbereitstellung über Skripte oder CSV-Importe, was es ideal für große Umgebungen macht. Mit über 60 Parametern können Admins Attribute wie Passwortrichtlinien, OU-Platzierung und benutzerdefinierte Felder festlegen. Für noch größere Effizienz automatisiert Netwrix Directory Manager die Bereitstellung und synchronisiert mit HR-Systemen, um ein genaues und zeitnahes Benutzerlebenszyklusmanagement zu gewährleisten.
Tools wie ADUC und ADAC ermöglichen es Systemadministratoren, recht einfach einen neuen Benutzer in einem Active Directory zu erstellen, aber sie haben bestimmte Einschränkungen, wenn es um die Massenerstellung von Benutzern geht. PowerShell ist ein leistungsstarkes und flexibles Werkzeug zur Erstellung von Active Directory-Konten und vielem mehr im großen Maßstab.
Dieser Blogbeitrag bespricht den Prozess zur Erstellung eines neuen Active Directory-Benutzers mit dem PowerShell-Cmdlet New-ADUser. Wir behandeln die wichtigsten Anwendungsfälle für dieses Cmdlet und stellen seine vollständige Syntax vor, damit Sie es weiter erforschen können.
Erstellen von Active Directory-Benutzern mit PowerShell
Mit ADUC und ADAC ist es einfach, einen einzelnen Benutzer hinzuzufügen, aber es fehlt beiden die Funktionalität, um Benutzer in großen Mengen zu erstellen. PowerShell bietet mehrere Möglichkeiten, nicht nur einen einzelnen Benutzer zu erstellen, sondern auch Active Directory-Benutzerobjekte in großen Mengen. Beginnen wir mit der Überprüfung der Syntax und der Parameter des Cmdlets, das wir verwenden werden: New-ADUser.
Sie können bestimmte Parameter mit dem Befehl New-ADUser verwenden, um die gängigsten Benutzereigenschaften zu füllen.
- Mit dem Parameter OtherAttributes können Sie Eigenschaftswerte ändern, die nicht mit Cmdlet-Parametern zusammenhängen. Stellen Sie sicher, dass Sie den Attributnamen in einfache Anführungszeichen setzen, wenn Sie diesen Parameter verwenden.
- Um einen Benutzer zu erstellen, müssen Sie den SamAccountName-Parameter angeben.
- The container or organizational unit (OU) for the new user is specified by the Path parameter. When the Path option is not used, the cmdlet creates a user object in the domain’s default user object container.
Die folgenden Techniken beschreiben verschiedene Wege, um ein Objekt mit diesem Cmdlet zu erstellen:
- Verwenden Sie den Befehl New-ADUser, um die gängigen Parameter und Werte anzugeben und setzen Sie zusätzliche Werte mit dem Parameter OtherAttributes.
- Sie können auch einen neuen Benutzer aus einer Vorlage erstellen. Verwenden Sie den Instance-Parameter, um einen neuen Benutzer zu erstellen oder einen bestehenden in das neue Objekt zu kopieren. Das im Instance-Parameter verwendete Objekt dient als Vorlage.
- Um Active Directory-Benutzerobjekte in großen Mengen zu erstellen, kombinieren Sie das Import-Csv-Cmdlet mit dem New-ADUser-Cmdlet.
- Importieren Sie eine CSV-Datei mit einer Liste von Objekteigenschaften, um benutzerdefinierte Objekte mit dem Import-Csv-Cmdlet zu erstellen.
- Das Cmdlet New-ADUser kann dann verwendet werden, um Benutzerobjekte zu erstellen, indem diese Objekte durch seine Pipeline geleitet werden.
Bevor wir beginnen, müssen wir das in Microsoft Windows Server 2008R2/2012 und höher integrierte Active Directory PowerShell-Modul aktivieren, indem wir diesen Befehl ausführen:
New-ADUser Cmdlet: Syntax
Jetzt wollen wir die Syntax des New-ADUser-Cmdlets überprüfen:
Get-Command New-ADUser –Syntax
Hier sind dieselben Informationen in einem Format, das Sie kopieren und nach Ihren Bedürfnissen anpassen können:
New-ADUser [-WhatIf] [-Confirm] [-AccountExpirationDate <DateTime>] [-AccountNotDelegated <Boolean>] [-AccountPassword <SecureString>] [-AllowReversiblePasswordEncryption <Boolean>] [-AuthenticationPolicy <ADAuthenticationPolicy>] [-AuthenticationPolicySilo <ADAuthenticationPolicySilo>] [-AuthType <ADAuthType>] [-CannotChangePassword <Boolean>]
[-Certificates <X509Certificate[]>] [-ChangePasswordAtLogon <Boolean>] [-City <String>]
[-Company <String>] [-CompoundIdentitySupported <Boolean>] [-Country <String>]
[-Credential <PSCredential>] [-Department <String>] [-Description <String>] [-DisplayName <String>] [-Division <String>] [-EmailAddress <String>] [-EmployeeID <String>] [-EmployeeNumber <String>] [-Enabled <Boolean>] [-Fax <String>] [-GivenName <String>]
[-HomeDirectory <String>] [-HomeDrive <String>] [-HomePage <String>] [-HomePhone <String>]
[-Initials <String>] [-Instance <ADUser>] [-KerberosEncryptionType <ADKerberosEncryptionType>] [-LogonWorkstations <String>] [-Manager <ADUser>] [-MobilePhone <String>] [-Name] <String> [-Office <String>] [-OfficePhone <String>]
[-Organization <String>] [-OtherAttributes <Hashtable>] [-OtherName <String>] [-PassThru]
[-PasswordNeverExpires <Boolean>] [-PasswordNotRequired <Boolean>] [-Path <String>]
[-POBox <String>] [-PostalCode <String>] [-PrincipalsAllowedToDelegateToAccount <ADPrincipal[]>] [-ProfilePath <String>] [-SamAccountName <String>] [-ScriptPath <String>]
[-Server <String>] [-ServicePrincipalNames <String[]>] [-SmartcardLogonRequired <Boolean>]
[-State <String>] [-StreetAddress <String>] [-Surname <String>] [-Title <String>] [-TrustedForDelegation <Boolean>] [-Type <String>] [-UserPrincipalName <String>]
New-ADUser: Parameter
Das Cmdlet New-ADUser bietet mehr als 60 Parameter, aber Sie müssen nicht sofort alle kennen. Hier sind die am häufigsten verwendeten, um AD-Benutzerkonten zu erstellen:
Parameter | Wurde verwendet um |
|---|---|
|
AccountExpirationDate |
Geben Sie das Ablaufdatum des Kontos an |
|
AccountPassword |
Geben Sie das Passwort des Kontos an |
|
AuthType |
Wählen Sie den Authentifizierungstyp aus, wenn Sie den Befehl ausführen |
|
CannotChangePassword |
Verhindern Sie, dass der Kontoinhaber das Passwort ändert (üblicherweise für Dienstkonten verwendet) |
|
ChangePasswordAtLogon |
Zwingen Sie den Benutzer dazu, das Passwort des Kontos beim nächsten Login zu ändern |
|
Stadt |
Geben Sie die Stadt für das Benutzerkonto an |
|
Unternehmen |
Geben Sie das Unternehmen für das Benutzerkonto an |
|
Bestätigen |
Erhalten Sie eine Bestätigungsaufforderung, um das Cmdlet auszuführen |
|
Land |
Geben Sie das Land für das Benutzerkonto an |
|
Anmeldeinformation |
Führen Sie den Befehl mit alternativen Anmeldeinformationen aus |
|
Abteilung |
Geben Sie die Abteilung des Benutzers an |
|
Beschreibung |
Geben Sie eine Beschreibung für das Benutzerkonto an |
|
DisplayName |
Geben Sie den Anzeigenamen des Kontos an |
|
E-Mail-Adresse |
Geben Sie die E-Mail-Adresse des Kontos an |
|
EmployeeID |
Geben Sie die Mitarbeiter-ID des Benutzers an |
|
Aktiviert |
Aktivieren Sie das Benutzerkonto |
|
Instanz |
Erstellen Sie ein Benutzerkonto basierend auf einem bestehenden Konto, wie beispielsweise einem mit denselben Abteilungs- und Titel-Eigenschaften wie das Konto, das Sie erstellen |
|
Manager |
Geben Sie den Manager des Benutzerkontos an |
|
Büro |
Geben Sie das Office-Attribut des Benutzerkontos an |
|
Organisation |
Geben Sie die Organisation des Benutzers an |
|
OtherAttributes |
Geben Sie den Wert für ein Attribut an, für das es keinen entsprechenden Parameter im Cmdlet gibt, wie zum Beispiel die extensionAttribute1 bis 15 Attribute |
|
PasswordNeverExpires |
Stellen Sie sicher, dass das Passwort des Kontos niemals abläuft |
|
PasswordNotRequired |
Geben Sie an, dass das Konto, wie beispielsweise ein Dienstkonto, kein Passwort benötigt |
|
Pfad |
Geben Sie den OU-Pfad an, um das Benutzerkonto zu erstellen |
|
SamAccountName |
Geben Sie das SAMAccountName-Attribut des Kontos an, einen Anmeldenamen, der zur Unterstützung von Clients und Servern verwendet wird, die ältere Versionen von Windows ausführen, wie Windows NT 4.0, Windows 95 oder LAN Manager |
|
Server |
Stellen Sie während der Ausführung des Befehls eine Verbindung zu einem alternativen DC her |
|
Staat |
Geben Sie den US-Bundesstaat des Benutzers an |
|
Straßenadresse |
Geben Sie die Adresse des Benutzers an |
|
Titel |
Geben Sie die Berufsbezeichnung des Benutzers an |
|
Art |
Geben Sie den Typ des Benutzerobjekts an, wie zum Beispiel einen normalen Benutzer oder einen inetOrgPerson-Benutzer |
|
UserPrincipalName |
Geben Sie den userPrincipalName (UPN) des Kontos an, der in der Regel der Name ist, den der Benutzer zum Anmelden verwenden wird |
|
Was wäre wenn |
Sehen Sie, was die Ausgabe des Cmdlets wäre, ohne es tatsächlich auszuführen |
Häufige Szenarien für das Erstellen von Benutzern mit PowerShell
Lassen Sie uns nun einige der wichtigsten Methoden durchgehen, wie Sie PowerShell verwenden können, um Benutzerkonten einzurichten:
- Erstellen Sie ein neues Benutzerkonto.
- Erstellen Sie ein Benutzerkonto in einer bestimmten OU.
- Erstellen Sie einen Benutzer und setzen Sie Attribute, die nicht durch die Parameter des Cmdlets abgedeckt sind.
- Erstellen Sie einen inetOrgPerson-Benutzer.
- Erstellen Sie einen neuen Benutzer basierend auf einem bestehenden AD-Benutzer.
- Erstellen Sie Benutzer in großen Mengen mit einem PowerShell-Skript.
- Erstellen Sie Benutzer in großen Mengen, indem Sie deren Attribute aus einer CSV-Datei importieren.
- Erstellen Sie mehrere Benutzerkonten mithilfe einer CSV-Datei.
Erstellen Sie ein neues Benutzerkonto
Beispiel 1: Geben Sie nur den Kontonamen an
Beginnen wir mit dem einfachsten Fall: das Erstellen eines neuen Benutzerkontos, indem nur sein Namensattribut angegeben wird. Zum Beispiel:
New-ADUser B.Johnson
Durch die Ausführung wird der Benutzer erstellt, aber es wird keine Ausgabe angezeigt. Um zu überprüfen, ob der Benutzer erfolgreich hinzugefügt wurde, können wir alle Active Directory-Benutzer mit dem folgenden Skript auflisten:
Get-ADUser -Filter * -Properties samAccountName | select samAccountName
Da ist es, das Letzte in der Liste!
Beachten Sie jedoch, dass der gerade erstellte Benutzer mehr Attribute als nur einen Namen hat; die folgenden Attribute werden standardmäßig festgelegt:
- Das Konto wird im „Users“-Container erstellt.
- Das Konto ist deaktiviert.
- Das Konto ist Mitglied der Gruppe Domain Users.
- Der Benutzer muss das Passwort beim ersten Anmelden zurücksetzen.
Viele gewünschte Attribute sind nicht ausgefüllt. Insbesondere ist kein Passwort festgelegt.
Beispiel 2: Geben Sie zusätzliche Attribute an
Dementsprechend erstellen wir ein neues Konto, das durch die Angabe weiterer Attribute tatsächlich nutzbar ist:
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
Der Read-Host-Parameter fordert Sie auf, ein neues Passwort einzugeben. Beachten Sie, dass das Passwort den Längen-, Komplexitäts- und Historienanforderungen Ihrer Domäne security policy entsprechen sollte.
Jetzt werfen wir einen Blick auf die Ergebnisse, indem wir 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
Beispiel 3: Geben Sie noch mehr Attribute an
Um ein vollwertiges Benutzerkonto mit noch mehr Attributen zu erstellen, verwenden Sie den folgenden Befehl.
New-ADUser -Name "Jason Bourne" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force) -ChangePasswordAtLogon $True -Company "Versacorp" -Title "CEO" -State "California" -City "San Francisco" -Description "Test Account Creation" -EmployeeNumber "45" -Department "Engineering" -DisplayName "Jason Bourne" -Country "US" -PostalCode "94001" -Enabled $True
Lassen Sie uns nur einige der Attribute des neuen Benutzers betrachten:
Get-ADUser -Identity Jason-bourne -Properties * | select name,samaccountname,company,title,department,city,state,country,description,employeenumber,postalcode
Erstellen Sie ein Benutzerkonto in einer bestimmten OU
Wie oben erwähnt, erstellt das New-ADUser Cmdlet standardmäßig den neuen Benutzer im „Users“-Container in der Domäne. Um den Benutzer in einer anderen OU zu erstellen, verwenden Sie den -Path-Parameter mit dem eindeutigen Namen der gewünschten OU:
New-ADUser -Name "Jason Bourne" -Path "OU=NBC,DC=milkyway,DC=local" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force ) -ChangePasswordAtLogon $True -DisplayName "Jason Bourne" -Enabled $True<
Benutzer erstellen und Attribute über die Parameter von New-ADUser hinaus festlegen
Das New-ADUser Cmdlet mit über 60 Parametern deckt die gängigen Attribute eines neuen Benutzers ab, aber es gibt noch viele weniger häufig verwendete Attribute. Sie können diese mit dem Parameter -OtherAttributes befüllen. In diesem Beispiel befüllen wir extensionattribute1 und das benutzerdefinierte Attribut carlicense:
New-ADUser -Name "Jason Bourne" -Path "OU=NBC,DC=milkyway,DC=local" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force ) -ChangePasswordAtLogon $True -DisplayName "Jason Bourne" -Enabled $True -OtherAttributes @{'extensionattribute1'="director";'carlicense'="LWG3852"}
Lassen Sie uns die Ergebnisse mit dem Befehl Get-ADUser überprüfen, wie unten gezeigt.
Get-ADUser -Identity Jason-bourne -Properties * | select name,extensionattribute1,carlicense
Erstellen Sie einen inetOrgPerson-Benutzer
Most user objects in Active Directory have the class user. But you can also create user objects with the class inetOrgPerson, which has user as a parent class. The inetOrgPerson class facilitates integration with certain applications and simplifies the migration of certain user objects into Active Directory.
Um ein inetOrgPerson-Benutzerkonto zu erstellen, fügen Sie einfach den -Type-Parameter hinzu und geben Sie inetOrgPerson als dessen Wert an:
New-ADUser -Name "Benedict Cumberbatch" -Path "OU=NBC,DC=milkyway,DC=local" -GivenName "Benedict" -Surname "Cumberbatch" -SamAccountName "Benedict.Cumberbatch" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force ) -ChangePasswordAtLogon $True -DisplayName "Benedict Cumberbatch" -Enabled $True -Type iNetOrgPerson<
Im folgenden Screenshot beachten Sie den Typ des neuen Benutzers Benedict Cumberbatch und den Typ des Benutzers Jason Bourne, den wir zuvor erstellt haben:
Erstellen Sie ein neues Active Directory-Benutzerkonto mit Passwort
Konten werden mit den folgenden Standard-Eigenschaften erstellt:
- Das Konto wird im „Users“-Container erstellt.
- Konto ist deaktiviert.
- Das Konto ist Mitglied der Gruppe Domain Users.
- Es ist kein Passwort festgelegt.
- Der Benutzer muss das Passwort beim ersten Anmelden zurücksetzen.
Daher müssen wir, um ein neues Konto zu erstellen, das tatsächlich verwendbar ist, es mit dem Enable-ADAccount Cmdlet aktivieren und ihm mit dem Set-ADAccountPassword Cmdlet ein Passwort geben.
Vereinfachen Sie das AD Management mit GroupID
Entdecken Sie, wie Sie Berechtigungen, Gruppenmitgliedschaften und die Benutzerbereitstellung effizient mit Netwrix verwalten können
Also, lassen Sie uns ein neues Konto mit den folgenden Attributen erstellen:
Name – Jack Robinson
Vorname – Jack
Nachname – Robinson
Kontoname – J.Robinson
Benutzerprinzipalname – J.Robinson@enterprise.com
Pfadadresse – „OU=Managers,DC=enterprise,DC=com“
Passworteingabe
Status – Aktiviert
Hier ist das Skript, das wir verwenden werden:
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
Der Read-Host-Parameter fordert Sie auf, ein neues Passwort einzugeben. Beachten Sie, dass das Passwort den Längen-, Komplexitäts- und Historienanforderungen Ihrer Domänensicherheitsrichtlinie entsprechen sollte.
Jetzt werfen wir einen Blick auf die Ergebnisse, indem wir 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
Erstellen Sie einen neuen Benutzer basierend auf einem vorhandenen Benutzer
Manchmal möchten Sie einen neuen Benutzer erstellen, der fast alle Eigenschaften eines bestehenden Benutzers hat. Zuerst müssen wir eine Vorlage basierend auf dem bestehenden Benutzer erstellen. Hier erstellen wir eine Vorlage mit 5 Eigenschaften des Benutzers Benedict Cumberbatch. Die zweite Zeile setzt den Wert für userPrincipalName auf null, da dieses Attribut einzigartig in der gesamten Waldstruktur ist. Die Vorlage wird in der Variablen $temp_UserAccount gespeichert.
$temp_UserAccount = Get-ADUser -Identity Benedict.Cumberbatch -Properties State,Department,Country,City,title
$temp_UserAccount.UserPrincipalName = $null
Nun können wir einen neuen Benutzer erstellen, der die 5 Attribute aus unserer Vorlage haben wird (indem wir den Instance-Parameter mit dem Wert $temp_UserAccount angeben), sowie mehrere andere Attribute, die wir spezifizieren:
New-ADUser -Instance $temp_UserAccount -Name 'Nelson Mendela' -SamAccountName 'Nelson.Mendela' -AccountPassword (Read-Host -AsSecureString "Input User Password") -Enabled $True
Wir können den Befehl Get-ADUser verwenden, um den neuen Benutzer zu sehen:
Get-ADUser -Identity Nelson.Mendela -Properties * | select `name,department,city,country,title,state
Beachten Sie, dass die Eigenschaften, die wir aufgelistet haben, sowohl für den neuen Benutzer als auch für Benedict Cumberbatch gleich sind:
Erstellen Sie Benutzer in Massen mit einem PowerShell-Skript
Jetzt verwenden wir ein PowerShell-Skript, um zehn ähnliche Active Directory-Konten in großen Mengen zu erstellen. Sie werden alle fast den gleichen Benutzernamen haben, mit Ausnahme einer Nummer am Ende, die für jeden Benutzer erhöht wird. Wir werden das gleiche Standardpasswort (P@ssw0rd) für jeden von ihnen setzen, indem wir es in einem geschützten Zustand senden, indem wir den ConvertTo-SecureString-Parameter verwenden. Hier ist das Skript, das Sie verwenden sollten, und die ersten beiden Benutzer, die es erstellt:
$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 }
Machen wir unser Skript jetzt flexibler, indem wir den Read-Host-Parameter hinzufügen, der uns auffordert, den Stamm-Benutzernamen und die Anzahl der zu erstellenden 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 }
Erstellen Sie Benutzer in Massen mit einem CSV-Import mithilfe von PowerShell
Eine weitere Möglichkeit, Benutzer in großen Mengen zu erstellen, besteht darin, ihre Attribute aus einer CSV-Datei zu importieren. Diese Option ist ideal, wenn Sie eine Liste von Benutzern mit vordefinierten persönlichen Details wie ihrem Namen, ihrer Abteilung und ihrer OU haben.
Die CSV-Datei muss in UTF8-Kodierung vorliegen und so aussehen:
Das folgende Skript wird aktivierte Benutzerobjekte für alle Benutzer in der CSV-Datei erstellen, die noch keine Konten im Active Directory haben. Die Option „Passwort bei der nächsten Anmeldung zurücksetzen“ wird für die neuen Konten aktiviert, sodass Sie Ihr Standardpasswort verwenden können:
#Define path to your import CSV file location in a variable as shown in below line.
$AD_Users = Import-csv C:\scripts\newusers.csv
foreach ($User in $AD_Users)
{
$User_name = $User.username
$User_Password = $User.password
$First_name = $User.firstname
$Last_name = $User.lastname
$User_Department = $User.department
$User_OU = $User.ou
#Below if-else condition will check if the user already exists in Active Directory.
if (Get-ADUser -F {SamAccountName -eq $User_name})
{
#Will output a warning message if user exist.
Write-Warning "A user $User_name has already existed in Active Directory."
}
else
{
#Will create a new user, if user is not available in Active Directory.
#User account will be created in the OU listed in the $User_OU variable in the CSV file; it is necessary to change the domain name in the"-UserPrincipalName" variable in the script below.
New-ADUser `
-SamAccountName $User_name `
-UserPrincipalName "$Username@example.com"
-Name "$First_name $Last_name"
-GivenName $First_name `
-Surname $Last_name `
-Enabled $True `
-ChangePasswordAtLogon $True `
-DisplayName "$Last_name, $First_name" `
-Department $User_Department `
-Path $User_OU `
-AccountPassword (convertto-securestring $User_Password -AsPlainText -Force)
}
}
Nach Ausführung des Skripts haben wir zwei neue Benutzer, Edward Franklin und Bill Jackson, in unserer Active Directory domain:
Erstellen Sie Benutzerkonten in Massen mit einer CSV-Datei
Häufig müssen Benutzer täglich oder wöchentlich erstellt werden. Nehmen wir an, Ihre Personalabteilung stellt Ihnen die Details für jeden Benutzer in einer CSV-Datei zur Verfügung, die folgendermaßen aussieht:
Um Benutzer aus dieser Datei zu erstellen, importieren wir zuerst die CSV-Datei in die Variable $import_users, wobei jeder Datensatz als separate Zeile vorliegt:
$import_users = Import-Csv -Path c:\bulkuser.csv
Dann erstellen wir die Benutzer mit dem untenstehenden Skript. Beachten Sie, dass es das Passwort jedes Benutzers aus der Quelldatei nimmt, es in einen sicheren String umwandelt und verschlüsselt.
$import_users | ForEach-Object {New-ADUser -Name $($_.First + " " + $_.Last) -GivenName $_.First -Surname $_.Last -Department $_.Department -State $_.State -EmployeeID $_.EmployeeID -DisplayName $($_.First + " " + $_.Last) -Office $_.OfficeName -UserPrincipalName $_.UserPrincipalName -SamAccountName $_.samAccountName -AccountPassword $(ConvertTo-SecureString $_.Password -AsPlainText -Force) -City $_.City -StreetAddress $_.Address -Title $_.Title -Company $_.Company -EMailAddress $_.Email -Path $_.OU -Enabled $True}
Wir können den folgenden Befehl verwenden, um die neuen Benutzer und ihre Eigenschaften zu überprüfen:
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=BaseOU,DC=milkyway,DC=local" -Properties * | select name,samaccountname,title,department,city,state,employeeid,userprincipalname,mail,streetaddress
Wie Netwrix beim Erstellen von Benutzern in Active Directory helfen kann
Die Bereitstellung von Benutzern ist eine nie endende Aufgabe. Jeden Tag müssen Organisationen:
- Neue Benutzerkonten in Active Directory anlegen.
- Aktualisieren Sie Benutzerkonten, wenn Benutzer ihre Namen ändern, Abteilungen wechseln und so weiter.
- Fügen Sie Benutzer Sicherheitsgruppen hinzu und entfernen Sie sie daraus, um sicherzustellen, dass sie die richtigen Berechtigungen haben.
- Deaktivieren und entfernen Sie Konten, wenn Benutzer die Organisation verlassen.
Darüber hinaus müssen, um eine starke Sicherheit und Benutzerproduktivität zu gewährleisten, all diese Aufgaben genau, zuverlässig und umgehend erledigt werden.
Netwrix Directory Manager vereinfacht die Gruppen- und Benutzerverwaltung für Active Directory, Azure AD und Microsoft 365. Insbesondere können Sie AD-Benutzer durch eine automatisierte, bidirektionale Datensynchronisation mit Ihren HR-Systemen, wie SQL- oder Oracle-Datenbanken, bereitstellen und entfernen. Schauen wir uns einige Screenshots an, die die Synchronisieren-GUI darstellen.
- Der folgende Screenshot zeigt die Anbieter, die als Datenquelle in einem Synchronize-Job verwendet werden können.
- Der folgende Screenshot zeigt, dass Active Directory als Zielanbieter für die Erstellung von Benutzer-, Kontakt-, Postfach- und externen mailaktivierten Benutzerobjekten ausgewählt ist. Als Quellanbieter können wir einfache (z.B. Text oder CSV) bis komplexe (z.B. Microsoft SQL Server oder Oracle Server) Datenspeicher verwenden.
- Der folgende Screenshot zeigt, dass Sie verschiedene Objekte (wie postfachaktivierte Benutzer, mailaktivierte Benutzer und Kontakte) am Zielort erstellen können. Sie können diese Objekte am Zielort auch aktualisieren, wenn es eine Änderung beim Quellanbieter gibt.
- Die Schaltfläche 'Erstellen' ermöglicht es Ihnen, die entsprechenden Objekte am Zielort zu erstellen.
- Die Schaltfläche Überspringen ermöglicht es Ihnen, die entsprechenden Objekte am Zielort zu aktualisieren.
Fazit
Nachdem Sie nun gesehen haben, wie man Benutzer in Active Directory mit PowerShell erstellt, probieren Sie die hier gezeigten Befehle und Skripte in Ihrer eigenen Umgebung aus und erkunden Sie die vielen anderen Parameter des New-ADUser-Cmdlets.
Dann sollten Sie sich unbedingt Netwrix Directory Manager ansehen. Es kombiniert die Vorteile von ADAC und PowerShell, indem es eine benutzerfreundliche GUI für die Durchführung und Automatisierung Ihrer Benutzerbereitstellungs- und -deaktivierungsaufgaben bietet.
Beherrschen Sie die Grundlagen des PowerShell-Scriptings
Laden Sie noch heute das eBook zum Windows PowerShell Scripting Tutorial herunter!
Erfahren Sie mehrFAQs
F: Was ist new-ADUser im Active Directory?
A: New-ADUser ist ein PowerShell-Befehl zum Erstellen eines Active Directory-Benutzers.
F: Wie verwende ich das new-ADUser PowerShell-Cmdlet?
A: Um New-ADUser zu verwenden, geben Sie so viele Parameter an, wie Sie benötigen, wie in diesem Beispielbefehl:
New-ADUser -Name "Jason Bourne" -GivenName "Jason" -Surname "Bourne" -SamAccountName "Jason-Bourne" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force) -ChangePasswordAtLogon $True -Company "Versacorp" -Title "CEO" -State "California" -City "San Francisco" -Description "Test Account Creation" -EmployeeNumber "45" -Department "Engineering" -DisplayName "Jason Bourne" -Country "US" -PostalCode "94001" -Enabled $True
F: Wie erstelle ich einen neuen Benutzer im Active Directory?
A: Sie können einen neuen Benutzer einfach mit Active Directory Users and Computers erstellen, aber es ist möglicherweise nicht möglich, alle Benutzereigenschaften, die Sie benötigen, zu füllen und Sie können keine Benutzerkonten in Massen erstellen. Eine leistungsfähigere und flexiblere Alternative ist PowerShell. Hier ist ein Beispiel, wie Sie das New-ADUser Cmdlet verwenden können, um einen Benutzer in Active Directory zu erstellen und viele gängige Attribute zu füllen:
New-ADUser -Name "Mike Hussey" -GivenName "Mike" -Surname "Hussey" -SamAccountName "Mike-Hussey" -AccountPassword (ConvertTo-SecureString -AsPlainText “Sas123R” -Force) -ChangePasswordAtLogon $True -Company "DeltaCorp" -Title "COO" -State "California" -City "San Jose" -Description "Test Account Creation-2" -EmployeeNumber "46" -Department "Operations" -DisplayName "Mike Hussey" -Country "US" -PostalCode "94089" -Enabled $True
F: Wie kann ich 1.000 Benutzer in Active Directory erstellen?
A: Sie können das PowerShell-Cmdlet New-ADUser verwenden, um viele Benutzerkonten basierend auf einer CSV-Datei zu erstellen, die die Details für jeden Benutzer enthält. Eine noch einfachere Option ist die Verwendung von Netwrix Directory Manager, der einen benutzerfreundlichen Assistenten bietet und Eingaben nicht nur aus CSV-Dateien, sondern auch aus SQL Server- und Oracle-Datenbanken akzeptiert.
Teilen auf
Erfahren Sie mehr
Über den Autor
Jonathan Blackwell
Leiter der Softwareentwicklung
Seit 2012 hat Jonathan Blackwell, ein Ingenieur und Innovator, eine führende Rolle in der Ingenieurskunst übernommen, die Netwrix GroupID an die Spitze des Gruppen- und Benutzermanagements für Active Directory und Azure AD Umgebungen gebracht hat. Seine Erfahrung in Entwicklung, Marketing und Vertrieb ermöglicht es Jonathan, den Identity-Markt und die Denkweise der Käufer vollständig zu verstehen.
Erfahren Sie mehr zu diesem Thema
Powershell Delete File If Exists
PowerShell Write to File: "Out-File" und Dateiausgabetechniken
So führen Sie ein PowerShell-Skript aus
Was ist PowerShell? Ein kompletter Leitfaden zu seinen Funktionen & Anwendungen
Beherrschung von PowerShell Sleep für das Skriptmanagement