Question GetMailbox et appartenance à un groupe

Plus d'informations
il y a 11 ans 8 mois #3860 par Pazefur
Hello tout le monde c'est encore moi :blush:

Donc je souhaite récupérer les boites aux lettres d'une OU dans AD, et pour chacune de ses boites savoir si elle appartient à un groupe :


J'ai écris des bouts de code à droite à gauche ... donc celui qui me permet de récupérer les boites :
[code:1]
param([string]$dn)
$res=\"\"
$boites = get-mailbox -OrganizationalUnit $dn

#$boite est de type Microsoft.Exchange.Data.Directory.Management.MailEnabledRecipient
foreach($boite in $boites) {
$SamAccountName =+$boite.SamAccountName
#
# traitement
#
}[/code:1]

Je voudrais savoir comment procéder par la suite, l'idéal serait de récupérer un équivalent de l'attribut MemberOf et de tester si mes 3 listes sont contenues mais je connais pas la syntaxe exacte.

J'ai bien une idée en tête mais c'est bien trop tordu récupérer mes 3 groupes puis regarder dans leur attribut membre ça je vois comment faire, mais c'est super dégueulasse :sick: , on doit bien forcément pouvoir faire ça simplement ;)


Merci pour toute vos propositions.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #3866 par Pazefur
Personne a une petite idée sur la question ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #3867 par janel
Une fois que tu as récupéré le SamAccountName, tu devrais pouvoir faire une requête sur l'AD pour récupérer l'objet User correspondant, et accéder à la propriété MemberOf de ce User.

La requête sur l'AD est très simple, tu l'as dans de nombreuses autres discussions de ce forum.

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #3901 par Pazefur
Bonjour, avec le code suivant, j'ai un petit problème. En effet mon user n'est pas directement contenu dans \"group\". En fait il est membre de \"groupe2\" qui lui même est membre de \"group\". Je sais pas si j'ai été clair :(


[code:1]
$user=[adsi]\"LDAP://cn=user,ou=test,dc=domain,dc=local\" # bind
$group=[adsi]\"LDAP://cn=group,ou=test,dc=domain,dc=local\" #bind
$ismember=$group.member -contains $user.distinguishedname
if ($ismember) {
\"traitement\"
}[/code:1]

En fait je voudrai que mon code me renvoie $true même si user n'est pas membre directement de group.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #3902 par janel
Ah je vois. Désolé, je n'avais pas compris ton besoin.

A ma connaissance on n'a pas de moyen \"automatique\" de tester la présence d'un utilisateur dans un des groupes membres d'un groupe donné.

Tu peux sans doute faire une fonction de recherche récursive. Pas très compliqué à priori, il faut juste pouvoir tester chaque membre d'un groupe:

- Si c'est un utilisateur et que cet utilisateur est celui qu'on cherche, on arrête la recherche et on renvoie $true.
- Si c'est un groupe, on lance la même recherche sur ce groupe.
- A la fin on renvoie $false par défaut.

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #3903 par Laurent Dardenne
Pazefur écrit:

En fait je voudrai que mon code me renvoie $true même si user n'est pas membre directement de group.

Il faut parcourir chaque groupe imbriqué, à moins qu'il existe déjà une fonction prévue à cet effet mais je ne la connais pas :S
Ensuite il faut savoir si le niveau d'imbrication est de 1 ou s'il peut être supérieure à 1.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.193 secondes
Propulsé par Kunena