Question
Déplacement user dans Group
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
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]j'ai pas bien compris pk mon code ne fonctionnait pas
si tu modifie ton fichier csv pour avoir un nom de colonne pour les groupes, par exemple groupAucune idée pour le csv par contre ?^^
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.
- Dupont
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 48
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Dupont
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 48
- Remerciements reçus 0
#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.
- Dupont
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 48
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
je vois que tu est perdu
la tout est bon/normal, chaque chiffre correspond bien à la colonne GroupeTest de ton fichier grasse à $cond1 = $usersCreated.GroupeTestJe sais pas si mes conditions sont bonnes car enfait $cond1 vaut :
0
0
1
Deux chose :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
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 !
- une autre erreur dans ta ligne de code, $usersCreated.GroupeTest contient des \"1\" ou des \"0\" mais pas le nom du groupe
tu va donc me dire \"je faire çà\" : [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
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 \"GroupeTest\" | where {$_.SamAccountName -eq $usersCreated.sAMAccountName })) {
Add-ADGroupMember -Identity \"GroupeTest\" -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.
- Dupont
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 48
- Remerciements reçus 0
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 :
\"sAMAccountName\",\"GroupeTest\",\"Groupe2\",\"Groupe3\"
\"lagaui01d\",\"1\",\"0\",\"1\"
\"igonnett01d\",\"0\",\"1\",\"0\"
\"goetghef01d\",\"0\",\"0\",\"0\"
\"derrierg01d\",\"1\",\"1\",\"1\"
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 \"lagaui01d\" et \"derrierg01d\" 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.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Déplacement user dans Group