OVH Cloud OVH Cloud

Xcalcls et les sous répertoire

5 réponses
Avatar
MB
bonsoir

Je souhaite pour archiver, lister toutes les ACL fichiers, répertoires
et sous répertoire d'un gros disque dur.

J'ai essayé avec Xcalcls mais je n'ai pas tout

Xcalcls i:\*.*

Avez-vous d'autre idées ?
Merci

5 réponses

Avatar
Thierry DEMAN [MVP]
Bonsoir,
tu peux utiliser un script de ce genre :
http://base.faqexchange.info/Documents%20partages/Scripting/VbScript/showperms.vbs.TXT

A bientôt,
--
Thierry DEMAN-BARCELÒ
MVP Exchange, SQL/Server
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org
"MB" a écrit dans le message de
news:

bonsoir

Je souhaite pour archiver, lister toutes les ACL fichiers, répertoires et
sous répertoire d'un gros disque dur.

J'ai essayé avec Xcalcls mais je n'ai pas tout

Xcalcls i:*.*

Avez-vous d'autre idées ?
Merci


Avatar
MB
/L c'est quoi exectement
Cela manque un peut de commentaire et d'un exemple

showperms.vbs /P:c:
sur un PC cela fonctionne
sur un autre cela me donne des popup

Bonsoir,
tu peux utiliser un script de ce genre :
http://base.faqexchange.info/Documents%20partages/Scripting/VbScript/showperms.vbs.TXT


A bientôt,


Avatar
Jacques Barathon [MS]
"MB" wrote in message
news:

bonsoir

Je souhaite pour archiver, lister toutes les ACL fichiers, répertoires et
sous répertoire d'un gros disque dur.

J'ai essayé avec Xcalcls mais je n'ai pas tout

Xcalcls i:*.*

Avez-vous d'autre idées ?


Tu peux utiliser le résultat d'un "dir /s" pour parcourir toute
l'arborescence:

for /f "delims=/" %f in ('dir i: /s /b') do xcacls %f >>
d:logsxcacls-i.log

Si tu mets la ligne ci-dessus dans un script, n'oublie pas de doubler les %
(%%f au lieu de %f).

Jacques

Avatar
Jacques Barathon [MS]
Petit supplément, si vous avez installé Windows PowerShell sur le poste ou
le serveur que vous devez auditer, vous pouvez utiliser ce filtre très
simple:

filter get-fullacl {
$path = $_.PSPath.SubString($_.PSPath.IndexOf("::")+2)
$acl = $_ | get-acl
$acl | select -expand access | foreach {
add-member -in $_ NoteProperty Path $path
add-member -in $_ NoteProperty Owner $acl.Owner -passthru
}
}

Vous pourrez alors utiliser ce filtre de la manière suivante:

PS> dir i: -rec | get-fullacl

Le résultat étant à priori très bavard, je vous conseille de le rediriger
vers un fichier. Pour pouvoir l'exploiter à postériori (l'importer dans
Excel pour faire des stats, ou le réimporter dans PowerShell pour
réappliquer tout ou partie des ACL d'origine), il est préférable de créer un
fichier au format CSV:

PS> dir i: -rec | get-fullacl | export-csv acl-i.csv -notypeinformation

Il est également possible de manipuler les données récoltées directement
depuis PowerShell. Voici quelques exemples très basiques sur un audit de mes
documents:

# l'opération suivante a duré 8 minutes 24 secondes sur mon poste:
PS> $acl = dir "$($env:homepath)documents" -rec -force | get-fullacl

# ceci est le nombre d'ACL enregistrées:
PS> $acl.count
35190

# j'isole les ACL pour les fichiers du dossier "2-Info":
PS> $infoacl = $acl | where {$_.path -match "2-Info"}
PS> $infoacl.count
13086

# je regroupe les ACL par type de droit d'accès:
PS> $infoacl | group filesystemrights | ft count,name -a

Count Name
----- ----
11895 FullControl
1191 268435456

# je regroupe les ACL par identité utilisée:
PS> $infoacl | group identityreference | ft count,name -a

Count Name
----- ----
4362 EUROPEjbaratho
4362 NT AUTHORITYSYSTEM
4362 BUILTINAdministrators

# je cherche les fichiers dont je ne suis pas le propriétaire en titre:
PS> $infoacl | where {$_.owner -notmatch "jbaratho"} | select path -unique

Path
----
C:Usersjbarathodocuments2-InfoDogfoodingVistacommand.reg

Etc.

Jacques

"Jacques Barathon [MS]" wrote in message
news:
"MB" wrote in message
news:

bonsoir

Je souhaite pour archiver, lister toutes les ACL fichiers, répertoires et
sous répertoire d'un gros disque dur.

J'ai essayé avec Xcalcls mais je n'ai pas tout

Xcalcls i:*.*

Avez-vous d'autre idées ?


Tu peux utiliser le résultat d'un "dir /s" pour parcourir toute
l'arborescence:

for /f "delims=/" %f in ('dir i: /s /b') do xcacls %f >>
d:logsxcacls-i.log

Si tu mets la ligne ci-dessus dans un script, n'oublie pas de doubler les
% (%%f au lieu de %f).

Jacques





Avatar
Thierry DEMAN [MVP]
Bonsoir,

L'option /L:x permet de définir "x" niveaux de répertoires.


les POPUPS proviennent du mode par défaut utilisé par les fichiers .VBS

vous pouvez:

- soit lancer la commande en utilisant la syntaxe suivante:

cscript showperms.vbs ....

- soit modifier le mode par défaut

cscript //h:cscript

A bientôt


Thierry DEMAN-BARCELÒ
MVP Exchange, SQL/Server
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org
"MB" a écrit dans le message de
news:

/L c'est quoi exectement
Cela manque un peut de commentaire et d'un exemple

showperms.vbs /P:c:
sur un PC cela fonctionne
sur un autre cela me donne des popup

Bonsoir,
tu peux utiliser un script de ce genre :
http://base.faqexchange.info/Documents%20partages/Scripting/VbScript/showperms.vbs.TXT A
bientôt,