Question Savoir si un membre appartient a un groupe !

Plus d'informations
il y a 12 ans 8 mois #15332 par madmax
Bonjour à tous,

Je suis un petit nouveaux sous powershell. J'aurais besoin de vos services.

Bon mon problème se situe dans une condition SI \"IF\" je voudrais faire :

[code:1]Si

l'utilisateur n'appartient pas au groupe \"toto\"

alors

\"Traitement\"[/code:1]

J'ai essayé de diverse manière j'avais cru y arriver avec la commande [code:1](Get-ADGroupMember \"toto\"«»).name)[/code:1] qui m'affiche bien le membre sauf que quand il y a plusieurs membres dans \"toto\" la commande ce passe bien, mais l'affichage est vide.

Merci de votre aide.

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

Plus d'informations
il y a 12 ans 8 mois #15336 par ANTRI Mohamed
Voici un exemple :

[code:1]
$users = @(\"Nicolas\",\"François\"«»)

foreach( $item in $users)
{
if((get-aduser $item -properties *).Memberof -like \"*toto*\"«»)
{
write-host $item

}
}
[/code:1]

quelque explication :

J'ai rapidement créer un tableau avec deux utilisateurs.

Ensuite je parcours le tableau à l'aide d'une boucle foreach.

Pour chaque utilisateur je prend sa propriétés memberof qui va prendre tous les groupes auxquels appartient notre utilisateur. L’inconvénient de Memberof est qu'il retourne le DistinguishedName de l'objet c'est à dire [code:1]CN=...,DC=...[/code:1] voilà pourquoi j'utilise le comparateur [code:1]-like[/code:1].

Enfin si la condition est vérifier j'affiche le nom de l'utilisateur. mais vous pourrez mettre votre traitement. Il y a surement plus simple mais c'est la première idée qui met venue à l'esprit.

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

Plus d'informations
il y a 12 ans 8 mois #15342 par madmax
Et bien merci, je ne peux tester cela de suite, car c'est sur mon PC au bureau. Mais je testerais cela demain matin.

Il y a tout de même un truque que je ne comprends pas.

le [code:1]-like \"*toto*\"[/code:1]m'affiche que le groupe AD du même nom toto est-ce bien cela ? Ou vers autre chose ?

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

Plus d'informations
il y a 12 ans 8 mois #15343 par Laurent Dardenne
Salut,
madmax écrit:

Il y a tout de même un truque que je ne comprends pas.

Sur le même point, mais sur un autre aspect, j'ai un doute sur l'usage du -like dans ce contexte.
As-tu un jeux de tests qui valide ton code ?

[edit]
Au sein d'un fonction j'utilise ceci :
[code:1]
return ($Group.Member.IndexOf($UserDN) -ne -1)
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 10/07/13 21:16

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 8 mois #15345 par madmax
Bonjour,

après des tests ce matin malheureusement ça ne marche pas.

voilà mon jeux de test
[code:1]Import-module ActiveDirectory
$util=Import-Csv -path \&quot;C:\Projet_Automatisation\utilisateur.csv\&quot; -delimiter \&quot;;\&quot;

foreach ($utilisateur in $util)
{
$name=$utilisateur.name
$group=$utilisateur.Member


if ((get-aduser $name -properties *).Memberof -like $group)
{
Write-Host \&quot;ok\&quot;
}
else
{
Write-Host \&quot;nok\&quot;
#Add-ADGroupMember -Identity $group -Member $name
}
}[/code:1]

J'ai un peu adpater ton code, car je n'est réussit a voir aucun résultat avec ce code si.

[code:1]
$users = @(\&quot;Mad max\&quot;,\&quot;Jean poche\&quot;«»)

foreach( $item in $users)

{

if((get-aduser $item -properties *).Memberof -like \&quot;*toto*\&quot;«»)

{
write-host \&quot;Ok\&quot;
}
else
{
write-host \&quot;NOk\&quot;
}

}[/code:1]

Alors que mes deux utilisateurs son bien dans le groupe toto.

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

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