La gestion des groupes AD est assez simple en Powershell, et la synthaxe assez proche de celle qu’on pouvait trouver en VBS. Pour effectuer une requête LDAP sur un objet AD, il suffit de recuperer son Distringuished Name (DN)
$DNGroup = [Completer]
$dom = New-Object DirectoryServices.DirectoryEntry("LDAP://$DNGroup")

Les méthodes de l’objet $dom peuvent maintenant etre utilisées:
$dom | get-member
Il est maintenant assez facile de lister les membres
$dom.member
![]()
Pour ajouter un utilisateur, il faut maintenant utiliser la methode add en passant en parametre le distringuishedName de l’utilisateur. Voila ce que ça donne
$dom.member.Add($DNUser) $dom.setInfo()

Dans le cas d’une connexion à un domaine non trusté. Il est nécessaire de recupérer les credentials de l’utilisateur
$cred = get-credential

Notre mot de passe est maintenant chiffré, mais la création d’un objet directory entry nécessite que le mot de passes ne soit pas chiffré. Pas de probleme, powershell fournis une méthode pour le faire
$pwd = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($cred.Password))
Et maintenant, il ne reste plus qu’à recreer l’objet directory entry en passant en parametre, la chaine ldap, le username ainsi que le mot de passe
$dom = New-Object DirectoryServices.DirectoryEntry("LDAP://$domain/$DNGroup",$cred.UserName,$pwd)
Considérons maintenant que nous nous trouvons dans un domaine (DomaineA) et un autre domaine, qui sera trusté (DomaineB). Admettons maintenant que nous souhaitions ajouter dans un groupe de DomaineA, un utilisateur de DomaineB. Si nous utilisons la méthode vu plus haut
$dom.member.Add($DNUser) $dom.setInfo()

Lors du setinfo une erreur se produira, car il n’est pas possible d’ajouter une utilisateur d’un domaine étranger en passant son DN.
Il est nécessaire de passer par son SID. Pour recuperer le SID d’un utilisateur, il faut faire comme suit:
$User = "Domaine\Utilisateur" $AccountSID = ((New-Object System.Security.Principal.NTAccount($User)).Translate([System.Security.Principal.SecurityIdentifier])).Value
Une fois le SID recupéré, il est maintenant possible de l’ajouter dans le groupe en forgeant sa chaine ldap comme suit :
$LDAP = "LDAP:// < SID=$AccountSID>" $dom.member.Add($LDAP) $dom.setInfo()

Et voila qui conclu pour cet article sur la gestion des groupes AD en powershell




salut,
je suis un debutant dans le domaine de la programmation je vais apprendre le powershell et son administration