Je configure constamment des environnements de recherche et développement qui nécessitent des comptes Active Directory. Comme nous plaçons ces environnements dans des réseaux isolés, chaque environnement a besoin de son propre Active Directory. Comment puis-je créer un nouveau compte Active Directory à l'aide de PowerShell.
Je ne sais pas si vous recherchez un script qui prendra une liste de noms, mots de passe, etc., mais la commande suivante fonctionne pour créer un nouvel utilisateur. UserPrincipalName est facultatif. Dans ce cas, l'e-mail n'est pas utilisé.
New-ADUser -SamAccountName nnn2 -Name "nnn2" -UserPrincipalName nnn2@jj -AccountPassword (ConvertTo-SecureString -AsPlainText "somePassword" -Force) -Enabled $true -PasswordNeverExpires $true -Path 'CN=Users,DC=jjdomain,DC=net'
Si vous souhaitez créer un utilisateur dans un domaine approuvé, ajoutez - server dns.domain à la commande ci-dessus
Je recommanderais d'étudier les applets de commande AD de Quest:
http://www.quest.com/powershell/activeroles-server.aspx
Un nouvel utilisateur AD serait:
new-QADUser -name 'user1' -ParentContainer 'OU=companyOU,DC=company,DC=com' -samAccountName 'user1' -UserPassword 'P@ssword'
Cependant, pour Powershell "pur", la suggestion de Shay des scripts d'Idera vous sauverait en utilisant des applets de commande supplémentaires. Attention, si vous voulez vous lancer dans le téléchargement des scripts, vous pouvez aussi bien télécharger les applets de commande Quest.
J'ai pris la réponse de Brad ci-dessus et ajouté un peu plus de détails ci-dessous (merci Brad de m'avoir fait réfléchir dans cette direction):
fichier CSV d'entrée:
cn,givenname,sn,sAMAccountName,displayname,UserPrincipalName
Joe Smith,Joe,Smith,jsmith,Joe Smith,[email protected]
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,[email protected]
Code:
$inputFile = Import-CSV <insert filepath here>
foreach($line in $inputFile)
{
## need to add quotes around DSN
$dsn = "`"cn="+$line.cn+",ou=userou,dc=domain,dc=com`""
$samid = $line.sAMAccountName
$ln = $line.sn
$fn = $line.givenname
$dn = $line.displayname
## need to add quotes around display name
$dn2 = "`"$dn`""
$upn = $line.UserPrincipalName
cmd /c "dsadd user $dsn -samid $samid -ln $ln -fn $fn -display $dn2
-upn $upn -mustchpwd yes -pwd TempP@assw0rd"
write-Host `n
}
Bonne chance!
si vous configurez simplement les mêmes utilisateurs sur différents réseaux/domaines, un vieux fichier .cmd devrait faire l'affaire. Émettez simplement des appels à la commande dsadd pour chaque utilisateur.
un appel à dsadd ou dsmod fonctionnerait également au milieu d'un script PowerShell. vous pouvez même avoir un fichier CSV de nom d'utilisateur/mots de passe que vous pouvez importer avec un script powershell et parcourir chaque ligne avec un appel à dsadd ou dsmod comme ceci:
$inputFile = Import-CSV <insert filepath here>
foreach($line in $inputFile)
{
dsadd user -samid $line.Username -pwd $line.Password
}
Les commandes ds (dsadd, dsmod, etc.) sont installées avec le rôle Active Directory, elles sont donc disponibles une fois que AD est opérationnel.