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.