IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Retirer plusieurs utilisateurs de plusieurs groupes AD [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut Retirer plusieurs utilisateurs de plusieurs groupes AD
    Bonjour les amis,

    je suis débutant en PowerShell et j'ai besoin de votre aide pour compléter un script qui supprime des utilisateurs d'un minimum de 3 groupes
    j'ai un OU de plus de 1000 utilisateurs je veux leur supprimer les groupes suivant : (sachant bien que ces groupes sont utilisés par d'autre utilisateur dans d'autre OU)
    GroupeA
    GroupeB
    GroupeC-12*** (tout groupe qui commence par GroupeC-12 )

    voila mon essaie ,je ne sais comment faire pour supprimer les utilisateurs des groupes qui commencent par GroupeC-12*****
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $groups = get-content c:\groups.txt
    $names = get-content c:\users.txt
    foreach ($aduser in $names) { foreach ($adgroups in $groups) { remove-adgroupmember $adgroups –members $aduser -confirm:$false } }
    Merci d'avance pour votre aide

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut
    j'ai trouvé une solution sur un autre forum sauf j'ai un message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $groups = get-content c:\removegroups.txt | ?{$_ -match '^Group1$|^Goup2$|^GroupCC'}
    Erreur:
    remove-adgroupmember : Cannot find an object with identity: 'mygroup' under: 'DC=corp,DC=ADN,DC=AAA,DC=com'.

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut remove groupe
    salut Med_be

    j'ai modifier ton premier script qui été bon
    et maintenant il accepte des étoiles dans le nom du groupe (dans le fichier groups.txt) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $groups = get-content c:\groups.txt
    $names = get-content c:\users.txt
    foreach ($aduser in $names) { 
        foreach ($adgroups in $groups) { 
            Get-ADGroup -Filter "name -like '$adgroups'" | remove-adgroupmember –members $aduser -confirm:$false } }

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par 6ratgus Voir le message
    salut Med_be

    j'ai modifier ton premier script qui été bon
    et maintenant il accepte des étoiles dans le nom du groupe (dans le fichier groups.txt) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $groups = get-content c:\groups.txt
    $names = get-content c:\users.txt
    foreach ($aduser in $names) { 
        foreach ($adgroups in $groups) { 
            Get-ADGroup -Filter "name -like '$adgroups'" | remove-adgroupmember –members $aduser -confirm:$false } }
    salut merci pour ta contribution , j'ai testé ton code je n'ai pas eu de passage d'erreur sauf qu'il n'a rien supprimé quand j'ai vérifié

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    Citation Envoyé par Med_be Voir le message
    salut merci pour ta contribution , j'ai testé ton code je n'ai pas eu de passage d'erreur sauf qu'il n'a rien supprimé quand j'ai vérifié
    si tes fichiers contiennent les sAMAccountName (noms) des groupes et les sAMAccountName (login) des utilisateurs, ça doit marché

    un get-aduser login
    et un get-adgroup nomgroupe
    avec un utilisateur que tu a inscrit dans le fichier users.txt et idem avec le groupe
    devrait te confirmé le bon contenu des fichiers

    pour les groupes qui commence par "GroupeC-12" tu peut faire un test d'abord avec
    Get-ADGroup -Filter "name -like 'GroupeC-12*'"

    n'oublie pas l'etoile dans le fichier pour ce groupe

    je te conseil aussi de testé cette commande avec les autres groupes pour voir si d'autres groupes ne sont pas pris dans le filtre alors qui ne le devrait pas

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut
    Merci pour ton retour ,mais apparemment je suis maudis j'ai toujours le meme message d'erreur (remove-adgroupmember : Cannot find an object with identity: 'mygroup' under: 'DC=corp,DC=ADN,DC=AAA,DC=com'.)
    quand je tape

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    Citation Envoyé par Med_be Voir le message
    remove-adgroupmember : Cannot find an object with identity: 'mygroup' under: 'DC=corp,DC=ADN,DC=AAA,DC=com'.
    quand je tape
    il est clair que ton groupe n'existe pas !
    pas dans ce domaine en tout cas !

    cherche le vrais nom du groupe dans l'onglet objet des propriétés du groupe via l'interface graphique "utilisateurs et ordinateur active directory"

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut
    ça marche maintenant tu avais raison il me manquait un "s"
    j'aimerais rajouter une petite amélioration au script pour rediriger la sorti vers un fichier log.txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $groups = get-content c:\grnames.txt
    $names = get-content c:\names.txt
    
     foreach ($aduser in $names) { 
        foreach ($adgroups in $groups)
         { 
            Get-ADGroup -Filter "name -like '$adgroups'" | remove-adgroupmember –members $aduser -confirm:$false 
            echo "$aduser successful deletion from $adgroups" >> c:\log.txt
            } 
            echo "******************next user******************" >> c:\log.txt
            }
    le problème maintenant c'est que j'ai à chaque fois la ligne user1 successful deletion from group2" même si user1 n'appartient pas à ce groupe2
    il y a un moyen de mettre une condition sur la sorti de la commande Get-ADGroup -Filter "name -like '$adgroups'" | remove-adgroupmember –members $aduser -confirm:$false ??

  9. #9
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    Citation Envoyé par Med_be Voir le message
    ça marche maintenant tu avais raison il me manquait un "s"
    j'aimerais rajouter une petite amélioration au script pour rediriger la sorti vers un fichier log.txt
    plutôt qu'un long discours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $groups = get-content c:\grnames.txt
    $names = get-content c:\names.txt
    
     foreach ($aduser in $names) { 
        foreach ($adgroups in $groups) { 
            Get-ADGroup -Filter "name -like '$adgroups'" | where {(Get-ADGroupMember $_).SamAccountName -eq $aduser} | foreach {
                remove-adgroupmember -Identity $_ –members $aduser -confirm:$false 
                echo "$aduser successful deletion from $adgroups" >> c:\log.txt
                }
            echo "******************next user******************" >> c:\log.txt
            }
        }
    j'ai rajouter un where pour testé la présence de l'utilisateur dans le groupe avant de le supprimer

  10. #10
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut
    Merci beaucoup pour ton aide :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel est la syntaxe exact pour ajouter un utilisateurs dans plusieurs groupes
    Par pierrot10 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 27/02/2014, 13h32
  2. Réponses: 2
    Dernier message: 17/04/2007, 11h37
  3. Créer un utilisateur sous plusieurs groupes
    Par djibril dans le forum Administration système
    Réponses: 1
    Dernier message: 20/09/2006, 16h15
  4. Créer un utilisateur sous plusieurs groupes
    Par djibril dans le forum Réseau
    Réponses: 0
    Dernier message: 20/09/2006, 10h49
  5. partager un schema entre plusieurs utilisateurs
    Par jrman dans le forum Oracle
    Réponses: 5
    Dernier message: 15/12/2004, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo