Microsoft fournit avec Windows 2008 R2 son propre module PowerShell pour Active Directory.
Pour ceux qui ne dispose pas de contrôleurs de domaine Windows 2008 R2, vous pouvez utiliser le module PowerShell Quest pour Active Directory (ActiveRoles Management Shell for Active Directory).
Il est gratuit et téléchargeable à cette adresse : http://www.quest.com/powershell/activeroles-server.aspx
Ce dernier fonctionne très bien (testé de très nombreuses fois).
Pour les amateurs de scripts, ci dessous un exemple de code pour créer des comptes utilisateurs avec la commande PowerShell Quest New-QADUser et SET-QADuser.
Pour plus d’informations sur la commande New-SQADuser : Get-Help New-QADUser -examples
Comme nous n’avons pas toutes les options avec la commande New-QADuser je fais un pipe avec la commande Set-QADuser.
# Create 100 accounts with this caracteristics :
# Expiration date : 1er aout 2011.
# Password never expire and no change of password at first logon.
# Differents passwords for each account.
# Connexion to DC
Connect-QADService nom_contrôleur_domaine
# Variable
$boucle = 1;
$nbaccounttocreate = 101;
$ParentContainer = "OU=Users,OU=FR,DC=MSREPORT,DC=LOCAL";
$description = "Test Account";
$EmployeeType = "System";
$StreetAddress = "route des Gardes";
$PostalCode = "92000";
$City = "Meudon";
$Company = "Msreport France";
do
{
$DisplayName = "it_msreport" + $boucle;
$SamAccountname = "it_msreport" + $boucle;
$UserPrincipalName = "$SamAccountname" + "@msreport.local";
$Password = "GeihposM" + $boucle;
$email = $SamAccountname + "@msreport.free.fr";
# Command to create user
new-QADUser -ParentContainer $ParentContainer -DisplayName $DisplayName -description $description -StreetAddress $StreetAddress -PostalCode $PostalCode -City $City -Company $Company -name $SamAccountname -sAMAccountName $SamAccountname -UserprincipalName $UserPrincipalName -UserPassword $Password -Email $email -ObjectAttributes @{EmployeeType = "Test";C="FR"} | Set-QADuser -PasswordNeverExpires $true -AccountExpires 01/08/2011 -Manager "gmmathieu";
$boucle = $boucle + 1;
}
# Manage the number of loop.
while ($boucle -lt 101)