Question
Copie le contenu d'un groupe
- big_cham
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 16 ans 1 mois #1779
par big_cham
Copie le contenu d'un groupe a été créé par big_cham
Bonjour à tous et à toutes !
Je suis confronté à un nouveau problème. J'ai un groupe d'utilisateurs que j'aimerai copier dans un autre.
Mon script travaille en plusieurs temps :
1- Indiquer le nom du groupe source
2- Indiquer le nom du groupe de destination
3- Lister le contenu du groupe source
4- Déplacer le contenu vers le groupe de destinations.
J'ai utilisé le script fourni la bibliothèque qui me fait les étapes 1,2,3. Je bloque au déplacement des utilisateurs.
Savez vous quelle commande utiliser pour faire cette opération ?
Etapes 1 et 2 :
[code:1]$a = new-object -comobject MSScriptControl.ScriptControl
$a.language = \"vbscript\"
$a.addcode(\"function getInput() getInput = inputbox(`\"Entrer le nom du groupe :`\",`\"Groupe Recherché...`\"«») end function\" )
$group = $a.eval(\"getInput\"«»)
$b = new-object -comobject MSScriptControl.ScriptControl
$b.language = \"vbscript\"
$b.addcode(\"function getInput() getInput = inputbox(`\"Entrer le nom du groupe de destination :`\",`\"Groupe de destination...`\"«») end function\" )
$group_dest = $b.eval(\"getInput\"«»)[/code:1]
Etape 3 :
[code:1]$ADSIGroup = [ADSI]\"WinNT://$server/$group\"
foreach ($member in $ADSIGroup.Members()) {
$member.GetType().InvokeMember(\"AdsPath\",\"GetProperty\",$null,$member,$null)
# Dans certains cas, on peut avoir un SID à la place du nom d'utilisateur.
# Dans ces cas-là, on affiche le SID sans chercher à reconstruire la
# chaîne domaine\utilisateur:
if ($ADSIName -match \"[^/]/[^/]\"«») {
[String]::Join(\"\\", $ADSIName.Split(\"/\"«»)[-2..-1])
}
else {
$ADSIName.Split(\"/\"«»)[-1]
}
}[/code:1]
Si vous pouviez me dire quelle commande utiliser pour faire le déplacement...
GROS MERCI !
Je suis confronté à un nouveau problème. J'ai un groupe d'utilisateurs que j'aimerai copier dans un autre.
Mon script travaille en plusieurs temps :
1- Indiquer le nom du groupe source
2- Indiquer le nom du groupe de destination
3- Lister le contenu du groupe source
4- Déplacer le contenu vers le groupe de destinations.
J'ai utilisé le script fourni la bibliothèque qui me fait les étapes 1,2,3. Je bloque au déplacement des utilisateurs.
Savez vous quelle commande utiliser pour faire cette opération ?
Etapes 1 et 2 :
[code:1]$a = new-object -comobject MSScriptControl.ScriptControl
$a.language = \"vbscript\"
$a.addcode(\"function getInput() getInput = inputbox(`\"Entrer le nom du groupe :`\",`\"Groupe Recherché...`\"«») end function\" )
$group = $a.eval(\"getInput\"«»)
$b = new-object -comobject MSScriptControl.ScriptControl
$b.language = \"vbscript\"
$b.addcode(\"function getInput() getInput = inputbox(`\"Entrer le nom du groupe de destination :`\",`\"Groupe de destination...`\"«») end function\" )
$group_dest = $b.eval(\"getInput\"«»)[/code:1]
Etape 3 :
[code:1]$ADSIGroup = [ADSI]\"WinNT://$server/$group\"
foreach ($member in $ADSIGroup.Members()) {
$member.GetType().InvokeMember(\"AdsPath\",\"GetProperty\",$null,$member,$null)
# Dans certains cas, on peut avoir un SID à la place du nom d'utilisateur.
# Dans ces cas-là, on affiche le SID sans chercher à reconstruire la
# chaîne domaine\utilisateur:
if ($ADSIName -match \"[^/]/[^/]\"«») {
[String]::Join(\"\\", $ADSIName.Split(\"/\"«»)[-2..-1])
}
else {
$ADSIName.Split(\"/\"«»)[-1]
}
}[/code:1]
Si vous pouviez me dire quelle commande utiliser pour faire le déplacement...
GROS MERCI !
Connexion ou Créer un compte pour participer à la conversation.
- big_cham
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 16 ans 1 mois #1781
par big_cham
Réponse de big_cham sur le sujet Re:Copie le contenu d'un groupe
Apparemment il est plus facile de travailler avec les cmdlets proposées par Quest...
Avec ces quelques lignes, j'extrais le contenu du groupe source dans un fichier.
[code:1]get-content d:\taf\scripts\powershell\groupe\grp.txt | foreach {
$grp = $_
Get-QADGroupMember $_ | select name,type,dn,@{n=\"Group\";e={$grp}}
} | export-csv -noType d:\taf\scripts\powershell\groupe\groupMembers.csv [/code:1]
Mais ma question tiens toujours : comment affecter à ces personnes le groupe de destination ?
Avec ces quelques lignes, j'extrais le contenu du groupe source dans un fichier.
[code:1]get-content d:\taf\scripts\powershell\groupe\grp.txt | foreach {
$grp = $_
Get-QADGroupMember $_ | select name,type,dn,@{n=\"Group\";e={$grp}}
} | export-csv -noType d:\taf\scripts\powershell\groupe\groupMembers.csv [/code:1]
Mais ma question tiens toujours : comment affecter à ces personnes le groupe de destination ?
Connexion ou Créer un compte pour participer à la conversation.
- big_cham
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 16 ans 1 mois #1789
par big_cham
Réponse de big_cham sur le sujet Re:Copie le contenu d'un groupe
Encore plus simple :
[code:1]Get-QADGroupMember $g_src | % { Add-QADGroupMember $g_dest -Member $_}
Get-QADGroupMember $g_src | % {Remove-QadGroupMember $g_src -Member $_}[/code:1]
[code:1]Get-QADGroupMember $g_src | % { Add-QADGroupMember $g_dest -Member $_}
Get-QADGroupMember $g_src | % {Remove-QadGroupMember $g_src -Member $_}[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.065 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Copie le contenu d'un groupe