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!