Active Directory Nutzer per Powershell im Bulk anlegen

Mit Windows Server 2008R2 kommt das Addlet „New-ADUser“ für die Powershell bei den Active Directory Verwaltungstools mit, mit dessen Hilfe wir ganz bequem Nutzer im Active Directory anlegen können. In einer Schleife laufend lassen sich dadurch schnell und einfach eine Menge neuer Active-Directory Konten anlegen. Wer mehr im Detail über New-ADUser erfahren möchte, wird im Technet fündig: https://technet.microsoft.com/de-de/library/ee617241.aspx

Das folgende Script führt New-ADUser in einer Schleife aus, wobei der Platzhalter „XX“ durch die laufende Nummer ersetzt wird. So kommen nach dem Lauf 10 Active-Directory Konten raus die wie folgt aussehen: buha.azubi01,…,buha.azubi10

$ad_count_of_users_to_create=10 
$ad_acc_firstname="" 
$ad_acc_surname="buha.azubiXX" 
$ad_acc_displayname=$ad_acc_surname 
$ad_acc_SamAccountName=" buha.azubiXX"
$ad_acc_UserPrincipalName=" buha.azubiXX" 
$ad_acc_password="pa$w0rd" 
$ad_acc_department="Buchhaltung" 
$ad_acc_description="Account fuer die Azubis der Buchhaltung " 
$ad_domainname_short="meinefirma" 
$ad_domainname_long=" meinefirma.local" 
$ad_path="OU=Azubis,OU=User,OU= "+$ad_domainname_short+",DC="+$ad_domainname_short+",DC=meinefirma,DC=de" 

### load AD Module 
Import-Module ActiveDirectory 
for ($i=1;$i -le $ad_count_of_users_to_create; $i++) { 
 $current_number=$i 
 if($current_number -lt 10){
  $current_number="0"+$current_number
 }

 $tmp_ad_acc_surname=$ad_acc_surname -replace 'XX',$current_number
 $tmp_ad_acc_displayname=$ad_acc_displayname -replace 'XX',$current_number
 $tmp_ad_acc_SamAccountName=$ad_acc_SamAccountName -replace 'XX',$current_number

 $tmp_upn = $tmp_ad_acc_SamAccountName+“@”+$ad_domainname_long
 
 write-host "`n`nSamAccountName: "$tmp_ad_acc_SamAccountName"`n 
 Name: "$tmp_ad_acc_SamAccountName"`n 
 UserPrincipalName: "$tmp_upn"`n 
 firstname: "$ad_acc_firstname"`n 
 Surname: "$tmp_ad_acc_surname"`n 
 DisplayName: "$tmp_ad_acc_displayname"`n 
 Description: "$ad_acc_description"`n 
 Department: "$ad_acc_department"`n 
 Path : "$ad_path"`n 
 AccountPassword: "$ad_acc_password 

 New-ADUser -SamAccountName $tmp_ad_acc_SamAccountName -UserPrincipalName $tmp_upn -Name $tmp_ad_acc_SamAccountName -SurName $tmp_ad_acc_surname -DisplayName $tmp_ad_acc_displayname -Department $_.Department -Path $ad_path -Description $ad_acc_description -AccountPassword (ConvertTo-SecureString $ad_acc_password -AsPlainText -force) -Enabled $True -PasswordNeverExpires $True -PassThru 
}

weiteres über Powershell Programmierung