Bulk Users - Beispiele¶
Übungen Modul ActiveDirectory
Die meisten Code-Snippets werden von mir über entsprechende Dateien oder digitale Plattformen an die Trainess verteilt.
Hinweis
Die Trainerdateien (siehe „Snippets“; dt. Code-Schnippsel) biete ich über entsprechende Git Repos den Trainees in den Seminaren an. Gitlab Repo: https://gitlab.com/joebrandes/powershellcodes.git
Die Übungen/Beispiel behandeln die klassischen Umsetzungen rund um AD-User, AD-Groups und Organizational Units (OUs).
Praxisbeispiele:
Massenanlegen von OU mit Unter-OUs, Benutzern und Benutzergruppen mit einer CSV-Datei und AD-Skripting:
Create Bulk Users in Active Directory (Step-By-Step Guide inkl. Video)
Ein Klassiker, den ich an dieser gerne kurz darstelle. Das Ganze lässt sich gerne auch als Video nachvollziehen.
Anm.: in der dortigen Method 1 will der Autor ein Grafiktool vorstellen/bewerben. Wir konzentrieren uns natürlich auf die Method 2: How to Bulk Import AD Users with PowerShell from a CSV file.
Aus dem Praxisbuch von Holger Schwichtenberg mit verfeinerten Methoden und Techniken (Sub-Functions) für CSV-Importe oder MDB-Datenbanken.
Hier die Kurzdarstellung des Internet-Klassikers Create Bulk Users for AD
1# Import active directory module for running AD cmdlets
2Import-Module activedirectory
3
4# Store the data from ADUsers.csv in the $ADUsers variable
5$ADUsers = Import-csv C:\it\bulk_users1.csv
6
7# Loop through each row containing user details in the CSV file
8foreach ($User in $ADUsers)
9{
10 # Read user data from each field in each row and assign the data to a variable as below
11 $Username = $User.username
12 $Password = $User.password
13 $Firstname = $User.firstname
14 $Lastname = $User.lastname
15 $OU = $User.ou # This field refers to the OU the user account is to be created in
16 $email = $User.email
17 $streetaddress = $User.streetaddress
18 $city = $User.city
19 # $zipcode = $User.zipcode
20 $state = $User.state
21 # $country = $User.country
22 $telephone = $User.telephone
23 $jobtitle = $User.jobtitle
24 $company = $User.company
25 $department = $User.department
26 $Password = $User.Password
27
28
29 # Check to see if the user already exists in AD
30 if (Get-ADUser -Filter {SamAccountName -eq $Username})
31 {
32 # If user does exist, give a warning
33 Write-Warning "A user account with username $Username already exist in Active Directory."
34 }
35 else
36 {
37 # User does not exist then proceed to create the new user account
38
39 # Account will be created in the OU provided by the $OU variable read from the CSV file
40 New-ADUser -SamAccountName $Username `
41 -UserPrincipalName "$Username@winadpro.com" `
42 -Name "$Firstname $Lastname" `
43 -GivenName $Firstname `
44 -Surname $Lastname `
45 -Enabled $True `
46 -DisplayName "$Lastname, $Firstname" `
47 -Path $OU `
48 -City $city `
49 -Company $company `
50 -State $state `
51 -StreetAddress $streetaddress `
52 -OfficePhone $telephone `
53 -EmailAddress $email `
54 -Title $jobtitle `
55 -Department $department `
56 -AccountPassword (convertto-securestring $Password -AsPlainText -Force) -ChangePasswordAtLogon $True
57
58 }
59}
Und hier die bereitgestellte CSV-Datei:
1firstname,middleInitial,lastname,username,email,streetaddress,city,zipcode,state,country,department,password,telephone,jobtitle,company,ou
2Joshua,L,Lynch,JLynch,JLynch@activedirectorypro.com,2749 Liberty Street,Dallas,75202,TX,United States,Marketing,Roadfox2209,214-800-4820,Marking Specialist,AD Pro,"CN=Users,DC=ad,DC=activedirectorypro,DC=COM"
3Sam,A,smith,ssmith,ssmith@activedirectorypro.com,2749 Liberty Street,Dallas,75202,TX,United States,Marketing,Roadfox2208,214-800-4820,Marking Specialist,AD Pro,"CN=Users,DC=ad,DC=activedirectorypro,DC=COM"
Selbstverständlich müssen die nötigen Anpassungen in Skripten und Steuerdateien für die eigenen Umgebungen vorgenommen werden!