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 :

Listing droits arborescence


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2013
    Messages : 5
    Par défaut Listing droits arborescence
    Bonjour, je viens ici pour vous demander de l'aide. Je me suis inspiré d'un code trouvé sur la toile qui me permet d'afficher la listes des utilisateurs qui ont accès à une arbo ainsi que leurs type de droits.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Import-Module ActiveDirectory
    $stream = new-object System.IO.StreamWriter("C:\droits-arbo.txt")
    $liste_repertoire = Get-childitem "B:\TEST"
    foreach ($repertoire in $liste_repertoire)
        {
            if($repertoire.Attributes -eq "Directory")
                {
                    $global_acl = Get-Acl $repertoire.FullName
                    $stream.WriteLine($repertoire.FullName)
                    $stream.WriteLine("----------------------------------------------------------------------")
                    $stream.WriteLine("----------------------------------------------------------------------")
    
                        foreach ($droit in $global_acl.Access)
                            {
                                $chaine = "`t"
                                $chaine += $droit.IdentityReference
                                $chaine += " : "
                                $chaine += $droit.FileSystemRights
                                $stream.WriteLine($chaine)
                                $stream.WriteLine("----------------------------------------------------------------------")
                                
                                
                                $split = $chaine.split("\"" :")
    
                                $member = get-adgroupmember $split[1] | select name
                                
                                foreach ($ecriture in $member)
                                    {
                                        $tab = "`t`t"
                                        $tab += $ecriture.name
                                        $stream.WriteLine($tab)
                                        
                                
                                    }
                                
                                $stream.WriteLine("----------------------------------------------------------------------")
                                
                                
                            }
                            
                    $stream.WriteLine("_________________________")
                }
        }
    Le soucis que je rencontre est que le résultat affiché est bon mis à par que quand dans un groupe Active Directory j'ai un groupe il m'affiche ce groupe. Je m'explique voici un exemple de résultat.


    B:TEST
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------

    DOMAINDROIT-TEST : ReadAndExecute, Synchronize
    ----------------------------------------------------------------------
    GROUPE-A
    GROUPE-B
    GROUPE-C
    GROUPE-D
    Bernard
    Simon
    Simone
    Valérie



    Dans ce cas j'aimerais afficher le contenu des groupes A, B, C et D à leur place dans le fichier résultat.
    Dans le cas ou dans le groupe A il y a un autre groupe j'aimerai pouvoir l'afficher.

    Je pense que dans un premier il faut déterminer si $tab est un groupe dans l'Active Directory.


    Pouvez-vous m'aider s'il vous plait ?


    Merci de m'avoir lu jusqu'ici.

    Cordialement,

    Kypso.

    PS: Si vous avez des questions hésitez pas.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2015
    Messages : 66
    Par défaut
    Je n'ai pas un exemple sous la main, mais en gros tu dois vérifier si le SID est un groupe, en demandant à l'Active Directory.

    Ensuite pour chaque groupe tu dois en extraire les utilisateurs, sachant qu'un groupe peut en contenir d'autres.

    Il doit y avoir pas mal d'exemples sur le net sur la récupération des membres d'un groupe AD de façon récursive.

  3. #3
    Membre chevronné
    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
    Par défaut
    salut bnolan86

    si j'ai bien compris ta demande
    si tu remplace cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $member = get-adgroupmember $split[1] | select name
    par cette là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $member = get-adgroupmember $split[1] -Recursive | select name
    tu aura ce que tu cherche !

    un petit détail :
    n'oublie pas de fermé le fichier à la fin de ton script !

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/10/2011, 15h48
  2. Liste Droit Dossier
    Par Lexounet dans le forum VBScript
    Réponses: 10
    Dernier message: 25/05/2011, 15h04
  3. Recuperer la liste droite d'un rich:picklist
    Par aniss77 dans le forum JSF
    Réponses: 14
    Dernier message: 29/12/2009, 09h02
  4. Puce d'une liste à droite
    Par mims1664 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 17/11/2009, 13h33
  5. Comment remplit la liste DROITE du PickList
    Par sino100100 dans le forum JSF
    Réponses: 1
    Dernier message: 28/08/2009, 13h04

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