Question ajouter les membres AD dans des groupes de 500
- jimmy
- Auteur du sujet
- Visiteur
-
il y a 9 ans 8 mois #22061
par jimmy
ajouter les membres AD dans des groupes de 500 a été créé par jimmy
Bonjour,
Je souhaiterai ecrire un script me permettant d'allimenter des group AD de 500 membres maxi avec tous les utilisateurs de l'AD
3 group de 500 devraient suffire pour le moment.
voici mon debut de code
[code:1]
import-Module activedirectory
$grp1 = \"Ensemble Agents GRP 1\"
$grp2 = \"Ensemble Agents GRP 2\"
$grp3 = \"Ensemble Agents GRP 3\"
#clean group member
Get-ADGroupMember -Identity $grp1 | %{Remove-ADGroupMember -Identity $grp1 -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp2 | %{Remove-ADGroupMember -Identity $grp2 -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp3 | %{Remove-ADGroupMember -Identity $grp3 -Members $_ -Confirm:$false}
# filtre utilisé ici ne prend en compte que les utilisateurs actifs dont le champ COMPANY = COMPANY
#Get-ADUser -SearchBase 'OU=05 - test,DC=xxx,DC=yy' -Filter { (Enabled -eq \"true\"«») -and (company -eq \"COMPANY\"«») }| % { Add-ADGroupMember $grp1 -Members $_ }
$usersCOMPANY = Get-ADUser -SearchBase 'OU=05 - test,DC=xxx,DC=yy' -Filter { (Enabled -eq \"true\"«») -and (company -eq \"COMPANY\"«») }
# il faudrait ici faire une boucle de ce type qui alimente les users de 1 à 500 dans GRP1
# il faudrait ici faire une boucle de ce type qui alimente les users de 501 à 1000 dans GRP2
# il faudrait ici faire une boucle de ce type qui alimente les users de 1001 à 1500 dans GRP3
foreach ($user in $usersCOMPANY)
{
Add-ADGroupMember $grp1 -Members $_
}
[/code:1]
Je souhaiterai ecrire un script me permettant d'allimenter des group AD de 500 membres maxi avec tous les utilisateurs de l'AD
3 group de 500 devraient suffire pour le moment.
voici mon debut de code
[code:1]
import-Module activedirectory
$grp1 = \"Ensemble Agents GRP 1\"
$grp2 = \"Ensemble Agents GRP 2\"
$grp3 = \"Ensemble Agents GRP 3\"
#clean group member
Get-ADGroupMember -Identity $grp1 | %{Remove-ADGroupMember -Identity $grp1 -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp2 | %{Remove-ADGroupMember -Identity $grp2 -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp3 | %{Remove-ADGroupMember -Identity $grp3 -Members $_ -Confirm:$false}
# filtre utilisé ici ne prend en compte que les utilisateurs actifs dont le champ COMPANY = COMPANY
#Get-ADUser -SearchBase 'OU=05 - test,DC=xxx,DC=yy' -Filter { (Enabled -eq \"true\"«») -and (company -eq \"COMPANY\"«») }| % { Add-ADGroupMember $grp1 -Members $_ }
$usersCOMPANY = Get-ADUser -SearchBase 'OU=05 - test,DC=xxx,DC=yy' -Filter { (Enabled -eq \"true\"«») -and (company -eq \"COMPANY\"«») }
# il faudrait ici faire une boucle de ce type qui alimente les users de 1 à 500 dans GRP1
# il faudrait ici faire une boucle de ce type qui alimente les users de 501 à 1000 dans GRP2
# il faudrait ici faire une boucle de ce type qui alimente les users de 1001 à 1500 dans GRP3
foreach ($user in $usersCOMPANY)
{
Add-ADGroupMember $grp1 -Members $_
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 8 mois #22062
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:ajouter les membres AD dans des groupes de 500
Salut,
une possibilité simple :
[code:1]
$usersCOMPANY = 1..1500|% { \"User$_\"}
$usersCOMPANY[1..500]
$usersCOMPANY[501..1000]
$usersCOMPANY[1001..1500]
[/code:1]
Une autre paramétrable :
[code:1]
#indice zéro
$Bornes=@(
@(0,499,'Grp1'),
@(500,999,'Grp2'),
@(1000,1499,'Grp3')
)
$Bornes|% {
$Min=$_[0]
$Max=$_[1]
$GroupName=$_[2]
Write-Debug \"De $Min à $Max\"
Write-host \"Ajoute $($usersCOMPANY[$Min]) dans $GroupName\"
Write-host \"Ajoute $($usersCOMPANY[$Max]) dans $GroupName\"
#Itération par lot de 500
#$usersCOMPANY[$Min..$Max]|% {Write-host \"Ajoute $_ dans $GroupName\"}
}
[/code:1]
Pour une meilleure relecture, il reste possible d'utiliser un tableau d'objets personnalisé au lieu d'un tableau d'objets.
une possibilité simple :
[code:1]
$usersCOMPANY = 1..1500|% { \"User$_\"}
$usersCOMPANY[1..500]
$usersCOMPANY[501..1000]
$usersCOMPANY[1001..1500]
[/code:1]
Une autre paramétrable :
[code:1]
#indice zéro
$Bornes=@(
@(0,499,'Grp1'),
@(500,999,'Grp2'),
@(1000,1499,'Grp3')
)
$Bornes|% {
$Min=$_[0]
$Max=$_[1]
$GroupName=$_[2]
Write-Debug \"De $Min à $Max\"
Write-host \"Ajoute $($usersCOMPANY[$Min]) dans $GroupName\"
Write-host \"Ajoute $($usersCOMPANY[$Max]) dans $GroupName\"
#Itération par lot de 500
#$usersCOMPANY[$Min..$Max]|% {Write-host \"Ajoute $_ dans $GroupName\"}
}
[/code:1]
Pour une meilleure relecture, il reste possible d'utiliser un tableau d'objets personnalisé au lieu d'un tableau d'objets.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- jimmy
- Auteur du sujet
- Visiteur
-
il y a 9 ans 8 mois #22063
par jimmy
Réponse de jimmy sur le sujet Re:ajouter les membres AD dans des groupes de 500
merci de ta contribution.
Du coup on cree 3 un tableaux en y plaçant les valeur dedans ?
Avec ça comment je viens boucler ma commande du coup ?
Du coup on cree 3 un tableaux en y plaçant les valeur dedans ?
Avec ça comment je viens boucler ma commande du coup ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 8 mois #22064
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:ajouter les membres AD dans des groupes de 500
jimmy écrit:
jimmy écrit:
[code:1]
foreach ($user in $usersCOMPANY[1..500])
{ Add-ADGroupMember $grp1 -Members $user }
[/code:1]
Oui c'est un tableau de paramètres, que tu peux agrandir/réduire.Du coup on cree un tableaux en y plaçant les valeur dedans ?
jimmy écrit:
Regarde le paramétrage du cmdlet Add-ADGroupMember et adapte/fusionne le code proposé avec le tien :Avec ça comment je viens boucler ma commande du coup ?
[code:1]
foreach ($user in $usersCOMPANY[1..500])
{ Add-ADGroupMember $grp1 -Members $user }
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- jimmy
- Auteur du sujet
- Visiteur
-
il y a 9 ans 8 mois #22065
par jimmy
Réponse de jimmy sur le sujet Re:ajouter les membres AD dans des groupes de 500
c'est parfait merci beaucoup.
Il a juste fallu que je commence le compteur à 0
Et je dois aussi gerer les erreur si il ya des valeurs NULL dans le tableau dans le cas ou on a atteint la fin des users
ça me donne ça au final:
[code:1]
import-Module activedirectory
$grp1ville = \"Ensemble Agents Ville 1\"
$grp2ville = \"Ensemble Agents Ville 2\"
$grp3ville = \"Ensemble Agents Ville 3\"
$grp1Casq = \"Ensemble Agents CASQ 1\"
$grp2Casq = \"Ensemble Agents CASQ 2\"
$grp3Casq = \"Ensemble Agents CASQ 3\"
#clean group member
Get-ADGroupMember -Identity $grp1ville | %{Remove-ADGroupMember -Identity $grp1ville -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp2ville | %{Remove-ADGroupMember -Identity $grp2ville -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp3ville | %{Remove-ADGroupMember -Identity $grp3ville -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp1Casq | %{Remove-ADGroupMember -Identity $grp1Casq -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp2Casq | %{Remove-ADGroupMember -Identity $grp2Casq -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp3Casq | %{Remove-ADGroupMember -Identity $grp3Casq -Members $_ -Confirm:$false}
# filtre utilisé ici ne prend en compte que les utilisateurs actifs dont le champ COMPANY = VILLE ou CASQ
$usersVille = Get-ADUser -SearchBase 'OU=05 - test,DC=XXX,DC=YY' -Filter { (Enabled -eq \"true\"«») -and (company -like \"*ville*\"«») }
$usersCasq = Get-ADUser -SearchBase 'OU=05 - test,DC=XXX,DC=YY' -Filter { (Enabled -eq \"true\"«») -and (company -like \"*casq*\"«») }
foreach ($user in $usersVille[0..499]) { Add-ADGroupMember $grp1Ville -Members $user }
foreach ($user in $usersVille[500..999]) { Add-ADGroupMember $grp2Ville -Members $user }
foreach ($user in $usersVille[1000..1499]) { Add-ADGroupMember $grp3Ville -Members $user }
foreach ($user in $usersCasq[0..499]) { Add-ADGroupMember $grp1Casq -Members $user }
foreach ($user in $usersCasq[500..999]) { Add-ADGroupMember $grp2Casq -Members $user }
foreach ($user in $usersCasq[1000..1499]) { Add-ADGroupMember $grp3Casq -Members $user }
[/code:1]
Il a juste fallu que je commence le compteur à 0
Et je dois aussi gerer les erreur si il ya des valeurs NULL dans le tableau dans le cas ou on a atteint la fin des users
ça me donne ça au final:
[code:1]
import-Module activedirectory
$grp1ville = \"Ensemble Agents Ville 1\"
$grp2ville = \"Ensemble Agents Ville 2\"
$grp3ville = \"Ensemble Agents Ville 3\"
$grp1Casq = \"Ensemble Agents CASQ 1\"
$grp2Casq = \"Ensemble Agents CASQ 2\"
$grp3Casq = \"Ensemble Agents CASQ 3\"
#clean group member
Get-ADGroupMember -Identity $grp1ville | %{Remove-ADGroupMember -Identity $grp1ville -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp2ville | %{Remove-ADGroupMember -Identity $grp2ville -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp3ville | %{Remove-ADGroupMember -Identity $grp3ville -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp1Casq | %{Remove-ADGroupMember -Identity $grp1Casq -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp2Casq | %{Remove-ADGroupMember -Identity $grp2Casq -Members $_ -Confirm:$false}
Get-ADGroupMember -Identity $grp3Casq | %{Remove-ADGroupMember -Identity $grp3Casq -Members $_ -Confirm:$false}
# filtre utilisé ici ne prend en compte que les utilisateurs actifs dont le champ COMPANY = VILLE ou CASQ
$usersVille = Get-ADUser -SearchBase 'OU=05 - test,DC=XXX,DC=YY' -Filter { (Enabled -eq \"true\"«») -and (company -like \"*ville*\"«») }
$usersCasq = Get-ADUser -SearchBase 'OU=05 - test,DC=XXX,DC=YY' -Filter { (Enabled -eq \"true\"«») -and (company -like \"*casq*\"«») }
foreach ($user in $usersVille[0..499]) { Add-ADGroupMember $grp1Ville -Members $user }
foreach ($user in $usersVille[500..999]) { Add-ADGroupMember $grp2Ville -Members $user }
foreach ($user in $usersVille[1000..1499]) { Add-ADGroupMember $grp3Ville -Members $user }
foreach ($user in $usersCasq[0..499]) { Add-ADGroupMember $grp1Casq -Members $user }
foreach ($user in $usersCasq[500..999]) { Add-ADGroupMember $grp2Casq -Members $user }
foreach ($user in $usersCasq[1000..1499]) { Add-ADGroupMember $grp3Casq -Members $user }
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.066 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- ajouter les membres AD dans des groupes de 500