Comment creer des utilisateurs et groupes ADLDS avec Power Shell
Créer des utilisateurs avec PowerShell
Vous pouvez créer de nombreux utilisateurs ADLDS en l’automatisant avec PowerShell, pour cela on va créer deux fichiers.
Un fichier names.txt pour mettre les comptes utilisateurs, ensuite créer le script createuser.ps1 avec comme argument le fichier names.txt, le script crée alors les comptes ADLDS dans la partition OU=OU3,O=ms,C=com sur le serveur ADLDS qui a comme nom server2k8 qui utilise le port LDAP 50002.
Un fichier groups.txt sera également créer afin d’ajouter les comptes utilisateurs nouvellement créés dans des groupes qui sont définis dans le fichier groups.txt.
Supposons que le script sera créé dans le répertoire c:\temp, on se positionne d’abord dans ce répertoire avec set-location.
PS C:\ set-location c:\temp
Ensuite, autoriser à exécuter les scripts PowerShell.
PS C:\temp> set-executionpolicy unrestricted
Voici un exemple du contenu des fichiers names.txt et groups.txt
Fichier names.txt
account1
Julia
John
Roxanna
Kim
Huu-Duc
Fichier groups.txt
group1
group2
group3
group4
group5
. Créer le script PowerShell CreateUserFromListADLDS.ps1
Fichier CreateUserFromListADLDS.ps1
$InputUsers = Get-Content .\names.txt
$GroupsOU = [ADSI] 'LDAP://localhost:50002/OU=OU3,O=ms,C=com'
Foreach ($Line in $InputUsers)
{
$User = $GroupsOU.create('User','CN=' + $Line)
$User.SetInfo()
$User.Put('DisplayName', $Line)
$User.SetInfo()
}
On exécute le script PS avec la commande suivante :
.\ CreateUserFromListADLDS.ps1
ci-dessous, le résultat de la création des utilisateurs.
Création des groupes avec PowerShell.
Fichier CreateGroupADLDS.ps1
Ce script va lire le contenu du fichier groups.txt qui contient les noms des groupes à créer.
$InputGroups = Get-Content .\groups.txt
$GroupsOU = [ADSI] 'LDAP://localhost:50002/OU=OU3,O=ms,C=com'
Foreach ($Line in $InputGroups)
{
$User = $GroupsOU.Create('Group','CN=' + $Line)
$User.SetInfo()
$User.Put('displayname', $Line)
$User.SetInfo()
}
L’exécution du script ci-dessus est faite avec la commande suivante :
.\creategroupadlds.ps1
La figure ci-dessus montre le résultat de la creation des groupes par PS.
. Ajout des comptes dans le groupe GROUP1.
Fichier addmemberadlds.ps1
Ce script a comme fichier d’entrée names.txt, il va lire chaque de ce fichier, prendre le nom utilisateur et ajouter dans le groupe GROUP1.
$InputUser = Get-Content .\names.txt
$objContainer = [ADSI] "LDAP//localhost:50002/OU=OU3,O=ms,C=com"
Foreach ($Line in $InputUser)
{
$group = [ADSI]'LDAP://localhost:50002/CN=group1,OU=OU3,O=ms,C=com'
$group.Member.Add('CN=' + $Line + ',OU=OU3,O=ms,C=com')
$group.SetInfo()
}
L’exécution du PS script donne le résultat suivant :
PS C:\temp> .\addmemberadlds.ps1
0
1
2
3
4
5
En regardant le contenu de l’attribut member de GROUP1, on peut voir les utilisateurs qui ont été ajoutés dans ce groupe.
Créer les comptes de type UserProxy avec Power Shell.
Un exemple ci-dessous permet de créer plusieurs compte proxy par PS.
Le fichier d’entrée s’appelle column.txt, contenant 2 colonnes. La première colonne contient le nom du compte proxy, la deuxième colonne contient le SID du compte AD qu’on veut ajouter dans l’attribut ObjectSID du compte proxy qu’on veut créer.
Fichier column.txt
ADproxy1 S-1-5-21-1552230033-2990721084-1776586453-1107
ADproxy2 S-1-5-21-1552230033-2990721084-1776586453-1108
ADproxy3 S-1-5-21-1552230033-2990721084-1776586453-1109
Le script Power Shell ci-dessous va lire le fichier column.txt et crée les comptes proxy ADProxy1, ADProxy2 et ADProxy3.
Dans chaque ligne, le paramètre var[0] contient le compte utilisateur de la première colonne, var[1] contient le SID se trouvant dans la deuxième colonne.
Script CreateProxyUserAll.ps1
$InputUsers = Get-Content .\column.txt
$GroupsOU = [ADSI] 'LDAP://localhost:50002/OU=OU3,O=ms,C=com'
Foreach ($myvar in $InputUsers)
{
$var=$myvar.split()
$var[0]
$var[1]
$User = $GroupsOU.create('UserProxy','CN=' + $var[0])
$User.Put('DisplayName', $var[0])
$User.Put('ObjectSID', $var[1])
$User.SetInfo()
}
Exécution du script PS.
.\createProxyUserAll.ps1
ADproxy1
S-1-5-21-1552230033-2990721084-1776586453-1107
ADproxy2
S-1-5-21-1552230033-2990721084-1776586453-1108
ADproxy3
S-1-5-21-1552230033-2990721084-1776586453-1109
Ci-dessous, le résultat de l’exécution du script PS, 3 comptes de type userProxy sont créés.
Avec LDP, on peut vérifier le SID du compte ADProxy1 par exemple.
Comments
- Anonymous
March 25, 2016
The comment has been removed