Beste Medetweakers,
Ik heb onderstaande code geschreven en gedeeltes van internet afghaald.
Nu probeer ik gebruikers vanuit een excel lijst te importeren. Dat lukt.
Wat wel werkt is het volgende:
Dit heb ik getest door een test account in het excel bestand te zetten die al bestaat. Dan krijg ik netjes een warning.
Ik heb ook met een echo getest of mijn variable de data uit de CSV lijst leest. Dat werkt ook. Dus als ik
doe of een andere echo krijg ik de verwachtte output zoals ook in mijn CSV bestand staat. zoals in onderstaand stuk code.
Wat ik niet werkend krijg is het stuk vanaf New-ADUser in de code hieronder:
Wat ik dan krijg als ik het script run is zoals in de afbeeldingen. De linker afbeelding is als ik de ` weghaal. De rechter is zoals in het voorbeeld hierboven met `.
Dan wat ik zelf al geprobeerd heb. Ik heb in powershel met de get-help functie al gezocht. De technet documentatie heb ik ook al opgezocht, daar kwam ik ook helaas niet mee verder en nog op google gezocht, maar daar kwam ik helaas de gouden tip ook niet tegen.
Ik heb onderstaande code geschreven en gedeeltes van internet afghaald.
Nu probeer ik gebruikers vanuit een excel lijst te importeren. Dat lukt.
Wat wel werkt is het volgende:
Dit heb ik getest door een test account in het excel bestand te zetten die al bestaat. Dan krijg ik netjes een warning.
Ik heb ook met een echo getest of mijn variable de data uit de CSV lijst leest. Dat werkt ook. Dus als ik
PowerShell:
1
| echo $Lastname |
doe of een andere echo krijg ik de verwachtte output zoals ook in mijn CSV bestand staat. zoals in onderstaand stuk code.
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| # Import active directory module for running AD cmdlets Import-Module activedirectory #Store the data from ADUsers.csv in the $ADUsers variable $ADUsers = Import-csv -Path "C:\Users\%username%\Desktop\powershell_create_bulk_users\bulk_users1.csv" -delimiter ";" #Loop through each row containing user details in the CSV file foreach ($User in $ADUsers) { #Read user data from each field in each row and assign the data to a variable as below $Username = $User.username $Password = $User.password $Firstname = $User.firstname $Lastname = $User.lastname $OU = $User.ou #This field refers to the OU the user account is to be created in $email = $User.email $streetaddress = $User.streetaddress $city = $User.city $zipcode = $User.zipcode $jobtitle = $User.jobtitle $Password = $User.Password $LogonScript = "Login_NL.bat" #Check to see if the user already exists in AD if ($checkuser=Get-ADUser -Filter {SamAccountName -eq "$Username"}) { #If user does exist, give a warning Write-Warning "A user account with username $Username already exist in Active Directory." } } |
Wat ik niet werkend krijg is het stuk vanaf New-ADUser in de code hieronder:
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| # Import active directory module for running AD cmdlets Import-Module activedirectory #Store the data from ADUsers.csv in the $ADUsers variable $ADUsers = Import-csv -Path "C:\Users\%username%\Desktop\powershell_create_bulk_users\bulk_users1.csv" -delimiter ";" #Loop through each row containing user details in the CSV file foreach ($User in $ADUsers) { #Read user data from each field in each row and assign the data to a variable as below $Username = $User.username $Password = $User.password $Firstname = $User.firstname $Lastname = $User.lastname $OU = $User.ou #This field refers to the OU the user account is to be created in $email = $User.email $streetaddress = $User.streetaddress $city = $User.city $zipcode = $User.zipcode $jobtitle = $User.jobtitle $Password = $User.Password $LogonScript = "Login_NL.bat" #Check to see if the user already exists in AD if ($checkuser=Get-ADUser -Filter {SamAccountName -eq "$Username"}) { #If user does exist, give a warning Write-Warning "A user account with username $Username already exist in Active Directory." } else { #User does not exist then proceed to create the new user account #Account will be created in the OU provided by the $OU variable read from the CSV file New-ADUser ` -Name "$Lastname, $Firstname" ` $SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force ` -AccountPassword $SecurePassword -ChangePasswordAtLogon $false -PasswordNeverExpires $True ` -Company $company ` -Enabled $True ` -GivenName $Firstname ` -HomeDirectory "\\NLHOUWFS\UsersShare$\$Username" ` -Homedrive "H:" ` -Path $OU ` -PostalCode $zipcode ` -SamAccountName $Username ` -UserPrincipalName "$Username@anticimex.nl" ` -Surname $Lastname ` -DisplayName "$Lastname, $Firstname" ` -City $city ` -StreetAddress $streetaddress ` -EmailAddress $email ` -Title $jobtitle ` -scriptPath $LogonScript } } |
Wat ik dan krijg als ik het script run is zoals in de afbeeldingen. De linker afbeelding is als ik de ` weghaal. De rechter is zoals in het voorbeeld hierboven met `.
![]() | ![]() |
Dan wat ik zelf al geprobeerd heb. Ik heb in powershel met de get-help functie al gezocht. De technet documentatie heb ik ook al opgezocht, daar kwam ik ook helaas niet mee verder en nog op google gezocht, maar daar kwam ik helaas de gouden tip ook niet tegen.