Question
Listing droits arborescence.
- BASTIEN
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 10 ans 4 mois #21013
par BASTIEN
Listing droits arborescence. a été créé par BASTIEN
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:1]
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(\"_________________________\")
}
}
[/code:1]
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
DOMAIN\\DROIT-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.
Message édité par: Kypso, à: 6/11/15 12:17
Message édité par: Kypso, à: 6/11/15 13:46<br><br>Message édité par: Kypso, à: 6/11/15 13:48
Voici mon code:
[code:1]
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(\"_________________________\")
}
}
[/code:1]
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
DOMAIN\\DROIT-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.
Message édité par: Kypso, à: 6/11/15 12:17
Message édité par: Kypso, à: 6/11/15 13:46<br><br>Message édité par: Kypso, à: 6/11/15 13:48
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 4 mois #21055
par Philippe
Réponse de Philippe sur le sujet Re:Listing droits arborescence.
salut Kypso
si j'ai bien compris ta demande
si tu remplace cette ligne :
[code:1]$member = get-adgroupmember $split[1] | select name[/code:1]
par cette là :
[code:1]$member = get-adgroupmember $split[1] -Recursive | select name[/code:1]
tu aura ce que tu cherche !
un petit détail :
n'oublie pas de fermé le fichier à la fin de ton script !
[code:1]$stream.Close()
[/code:1]
si j'ai bien compris ta demande
si tu remplace cette ligne :
[code:1]$member = get-adgroupmember $split[1] | select name[/code:1]
par cette là :
[code:1]$member = get-adgroupmember $split[1] -Recursive | select name[/code:1]
tu aura ce que tu cherche !
un petit détail :
n'oublie pas de fermé le fichier à la fin de ton script !
[code:1]$stream.Close()
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.037 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Listing droits arborescence.