Question Déplacement user dans Group

Plus d'informations
il y a 11 ans 1 mois #18891 par Philippe
Réponse de Philippe sur le sujet Re:Déplacement user dans Group

j'ai pas bien compris pk mon code ne fonctionnait pas

ton code ne fonctionne pas a cause de ca :[code:1] foreach ($groups in $OU )[/code:1]au lieu de ca :[code:1]foreach ($group in $groups) [/code:1]

Aucune idée pour le csv par contre ?^^

si tu modifie ton fichier csv pour avoir un nom de colonne pour les groupes, par exemple group

tu peut faire une seule boucle et utilisé les membres de chaque ligne comme ceci :

Import-Module ActiveDirectory

$OU = \"OU=Test,DC=TEST,DC=LO\"
$usersCreated = import-Csv \"C:\Projet2\Group.csv\"

foreach ($user in $usersCreated)
{
Add-ADGroupMember -Identity $user.group -Members $user.sAMAccountName -Verbose -Confirm
}


n'oublie pas que tu va rajouter et non déplacer l'utilisateur comme dans ta demande initiale

tu a plusieurs scripts du même genre sur ce site généralement pour la création d'utilisateurs dans l'AD le principe est le même
fait une recherche avec new-aduser

bon weekend je reviens que lundi

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

Plus d'informations
il y a 11 ans 1 mois #18894 par Dupont
Réponse de Dupont sur le sujet Re:Déplacement user dans Group
Oki merci à toi , je te souhaite un bon week-end alors :)

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

Plus d'informations
il y a 11 ans 1 mois #18895 par Dupont
Réponse de Dupont sur le sujet Re:Déplacement user dans Group
Pour \"simplifier\" la tâche , j'ai un fichier csv :

#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser
\"sAMAccountName\",\"GroupeTest\",\"Groupe2\",\"Groupe3\"
\"lagaui01d\",\"0\",\"1\",\"1\"
\"igonnett01d\",\"0\",\"0\",\"0\"
\"goetghef01d\",\"1\",\"1\",\"1\"

L'objectif étant que si le résultat d'un des groupes vaut 1 , alors l'utilisateur y est ajouté , s'il est de 0 il est supprimé ( en espérant que l'erreur de supprimer d'un groupe un utilisateur inexistant soit pas dramatique en soi )

J'avais commencé avec des structures en if mais c'est vite devenu trop long et trop lourd pour pas grand chose , j'ai donc opté pour cette option seulement il ne se passe rien , une erreur m'aurait fait plus plaisir mdr
Le code :

[code:1]
Import-Module ActiveDirectory
$usersCreated = Import-Csv -Encoding UTF8 -Path C:\Projet2\Group2.csv | select sAMAccountName,GroupeTest,Groupe2,Groupe3

foreach ($user in $usersCreated)
{

$memberName = $usersCreated.sAMAccountName
$cond1 = $usersCreated.GroupeTest
$cond2 = $usersCreated.Groupe2
$cond3 = $usersCreated.Groupe3

# Ajout des utilisateurs dans les groupes
Add-ADGroupMember -Identity $usersCreated.GroupeTest -Members $memberName -Verbose -Confirm | where {$cond1 -eq 1}
Add-ADGroupMember -Identity $usersCreated.Groupe2 -Members $memberName -Verbose -Confirm | where {$cond2 -eq 1}
Add-ADGroupMember -Identity $usersCreated.Groupe3 -Members $memberName -Verbose -Confirm | where {$cond3 -eq 1}

#Suppression des utilisateurs des groupes
Remove-ADGroupMember -Identity $usersCreated.GroupeTest -Members $memberName -Verbose -Confirm | where {$cond1 -eq 0}
Remove-ADGroupMember -Identity $usersCreated.Groupe2 -Members $memberName -Verbose -Confirm | where {$cond2 -eq 0}
Remove-ADGroupMember -Identity $usersCreated.Groupe3 -Members $memberName -Verbose -Confirm | where {$cond3 -eq 0}
} [/code:1]

Je sais pas si mes conditions sont bonnes car enfait $cond1 vaut :
0
0
1
Mais je sais pas trop comment me dépatouiller...<br><br>Message édité par: KaAzZ01, à: 2/02/15 10:57

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

Plus d'informations
il y a 11 ans 1 mois #18898 par Dupont
Réponse de Dupont sur le sujet Re:Déplacement user dans Group
up

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

Plus d'informations
il y a 11 ans 1 mois #18900 par Philippe
Réponse de Philippe sur le sujet Re:Déplacement user dans Group
salut KaAzZ01

je vois que tu est perdu

Je sais pas si mes conditions sont bonnes car enfait $cond1 vaut :
0
0
1

la tout est bon/normal, chaque chiffre correspond bien à la colonne GroupeTest de ton fichier grasse à $cond1 = $usersCreated.GroupeTest

J'avais commencé avec des structures en if mais c'est vite devenu trop long et trop lourd pour pas grand chose , j'ai donc opté pour cette option seulement il ne se passe rien , une erreur m'aurait fait plus plaisir mdr

Deux chose :
1) je suis surpris que tu n'est rien car il doit te demander les trois ajout puis les trois suppressions aux trois groupes pour chaque utilisateurs
moi en tout cas c'est ce qu'il fait !!!
2) soit tu fais trois boucles foreach (un pour chaque groupe),
soit tu fais deux fois trois if
mais tu va pas pouvoir faire de raccourcie


pour finir sur cette ligne par exemple :
[code:1]Add-ADGroupMember -Identity $usersCreated.GroupeTest -Members $memberName -Verbose -Confirm | where {$cond1 -eq 1}[/code:1]- le where ne sers a rien dans cette ligne, le where sers a filtrer le pipeline.
ici le pipeline est remplie par le Add-ADGroupMember. Tu va donc filtrer le message renvoyer par Add-ADGroupMember et non le bloquer ! :unsure:
- une autre erreur dans ta ligne de code, $usersCreated.GroupeTest contient des \&quot;1\&quot; ou des \&quot;0\&quot; mais pas le nom du groupe :ohmy:
tu va donc me dire \&quot;je faire çà\&quot; : [code:1]where {$cond1 -eq 1} | Add-ADGroupMember -Identity testgr -Members test12 -Verbose -Confirm
[/code:1]perdu pour presque les même raison : where ne reçois rien du pipeline puisqu'il n'y a aucune pipeline/instruction avant lui ! la condition $cond1 -eq 1 n'est même pas exécuter :blush:


je sais que ca fait beaucoup d'info pour un débutant,
je te donne ces deux lignes de code :[code:1] if ($usersCreated.GroupeTest -eq 1 -and !(Get-ADGroupMember -Identity \&quot;GroupeTest\&quot; | where {$_.SamAccountName -eq $usersCreated.sAMAccountName })) {
Add-ADGroupMember -Identity \&quot;GroupeTest\&quot; -Members $usersCreated.sAMAccountName -Verbose -Confirm
}[/code:1]ta la base pour la boucle avec deux fois trois if

revient nous avec le script final !!! ;)

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

Plus d'informations
il y a 11 ans 1 mois #18901 par Dupont
Réponse de Dupont sur le sujet Re:Déplacement user dans Group
Salut , tu vas me dire que mon script initial fonctionne ? xD

Sinon je veux bien , cependant si je procède comme ça , le script va demander si je veux déplacer chaque utilisateur du moment où GroupeTest vaut 1 une fois , je m'explique :

\&quot;sAMAccountName\&quot;,\&quot;GroupeTest\&quot;,\&quot;Groupe2\&quot;,\&quot;Groupe3\&quot;
\&quot;lagaui01d\&quot;,\&quot;1\&quot;,\&quot;0\&quot;,\&quot;1\&quot;
\&quot;igonnett01d\&quot;,\&quot;0\&quot;,\&quot;1\&quot;,\&quot;0\&quot;
\&quot;goetghef01d\&quot;,\&quot;0\&quot;,\&quot;0\&quot;,\&quot;0\&quot;
\&quot;derrierg01d\&quot;,\&quot;1\&quot;,\&quot;1\&quot;,\&quot;1\&quot;

Mon csv ressemble à ça , avec le if ( ou tout ce que j'ai essayé ) , le script va me demander 4 fois si je veux déplacer chaque utilisateur dans le groupe sans se soucier au final que seul \&quot;lagaui01d\&quot; et \&quot;derrierg01d\&quot; devraient être déplacés , car ce sont les seuls à remplir la condition ...

Le truc c'est que j'arrive pas à construire l'algorithme xD

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

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