Dear all,
I want to simply my work, so I wrote a script to crreate AD users, but unfortunately it doesn't work as designed. It's the code:
Import-Module ActiveDirectory #import AD module $TempIns = Read-Host -Prompt 'Please input a user to refer' #Offer an user for reference $OU = (Get-ADUser $TempIns -Properties *).distinguishedname.substring((Get-ADUser $TempIns -Properties *).CN.length+4) #Get OU $groups = (Get-ADPrincipalGroupMembership $TempIns).name #Get groups #======================Import CSV File================================================== #[void][reflection.assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") #$OFDImportCSV = New-Object System.Windows.Forms.OpenFileDialog #$OFDImportCSV.ShowDialog() #$Users = Import-Csv $OFDImportCSV.FileName $Users = Import-Csv D:\ADUsers.csv #=====================End Import====================================================== foreach ($User in $Users) { #==================Define paraments================== $GivenName = ($User.'English Name' -split ' ')[0] $Surname = ($User.'English Name' -split ' ')[1] $DisplayName = $User.'English Name' $samAccountName = $GivenName+"."+$Surname $title = $User.Position $desc = $User.Position $employeeID = $User.'Employee ID' $password = $User.Password $mobile = $User.Mobile $company = $User.Company $dept = $User.Department $UPN = $samAccountName+"@microsoft.com" $Office = $User.Location $date = Get-Date #==============End definition====================== #$msg=$date + " Start create AD user " + $samAccountName Write-Output $date', Start create AD user '$samAccountName >> D:\Creation.log New-ADUser -Instance $TempIns -Path $OU -Name $DisplayName -DisplayName $DisplayName -SamAccountName $samAccountName -GivenName $GivenName -Surname $Surname -Title $title -UserPrincipalName $UPN -Company $company -Department $dept -Office $Office -ErrorVariable ADError if($ADError) { $ADError = $null Write-Output $date', Failed to created user '$samAccountName >> D:\Creation.log continue; } Set-ADAccountPassword $samAccountName -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $password -Force ) #set password Set-ADUser $samAccountName -Enabled 1 -ChangePasswordAtLogon 1 -Replace @{pager=$employeeID;Mobile=$mobile;CN=$DisplayName;sn=$GivenName} foreach( $group in $groups ) { if($group -eq 'Domain Users'){ continue; } Add-ADGroupMember $group $samAccountName } #Copy Group membership Write-Output $date', Create user '$samAccountName' successfully.' >> D:\Creation.log } #Remove-Module ActiveDirectory #exit AD module
I am really grateful if you can correct my mistakes, I am confused. Thank you in advance.
- Edited by ChenryLee Monday, January 26, 2015 10:23 AM hide company name
- Moved by Alex ZhaozxMicrosoft contingent staff Tuesday, January 27, 2015 6:28 AM move to appropriate forum