Question tester acl d'1 dossier

Plus d'informations
il y a 11 ans 7 mois #14647 par erin
tester acl d'1 dossier a été créé par erin
Bonjour,
je souhaiterai récupérer les droits d'un dossier pour un utilisateur tester ces droits et modifier une variable.j'ai essayer ca

ok = \"false\"
$c = cacls d:\datauser
$c | foreach {

if($_ -eq \"AUTORITE NT\Système:(I)(OI)(CI)(IO)(F)\"){$ok = \"True\"}
}
write-host $ok


mais la comparaison ne marche pas.
je penser faire une simple comparaison d'éléments ds un tableau.
Quelqu'un a-t-il une idée du pourquoi ca marche pas
Merci.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #14651 par hahang
Réponse de hahang sur le sujet Re:tester acl d'1 dossier
Bonjour,

Essaie ce script qui te permettra en powershell de vérifier les droits des fichiers dans un repertoire (ici c:\temp)

$rootfolder = Get-ChildItem -Path c:\Temp
foreach ($userfolder in $rootfolder) {
$userfolder.FullName
get-acl $userfolder.FullName | foreach {write-host \"The owner is : \" $_.Owner \"`nNTFS Security rights : \" $_.AccessToString}
Write-Host \"`n\"
}


My Powershell IT blogs : powershell.nicoh.me

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #14653 par hahang
Réponse de hahang sur le sujet Re:tester acl d'1 dossier
Par contre quelle comparaison souhaites-tu faire ?



My Powershell IT blogs : powershell.nicoh.me

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #14654 par hahang
Réponse de hahang sur le sujet Re:tester acl d'1 dossier
Plus simplement, tu peux récupérer les infos de droits avec les commandes suivantes :
(get-acl \"C:\\temp\").Access
(get-acl \"C:\\temp\").sddl

Tu obtiens ce genre d'output :
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : CREATOR OWNER
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly

FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : NT AUTHORITY\SYSTEM
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None

FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None

FileSystemRights : Modify, Synchronize
AccessControlType : Allow
IdentityReference : BUILTIN\Users
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None

O:BAG:SYD:PAI(A;OICIIO;FA;;;CO)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1301bf;;;BU)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #14656 par erin
Réponse de erin sur le sujet Re:tester acl d'1 dossier
si je comprends je ne peux pas utiliser cacls le mettre dans un tableau et comparer avec une valeur attendue.


avec get-acl je me perd un peu

comment je peu combiner le nom de l'utilisateur avec ses droit $acc.IdentityReference.Value

...

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #14660 par hahang
Réponse de hahang sur le sujet Re:tester acl d'1 dossier
Dans l'objet sddl tu obtiens tous les droits des differents utilisateurs. Pour les utilisateurs non système, tu auras un resultat du type :
[code:1]O:BAG:«»SYD:«»PAI(A;OICIIO;FA;;;CO)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1301bf;;;BU)(A;OICI;0x1301bf;;;S-1-5-21-436374069-1897051121-839522115-19780)[/code:1]

Pour résoudre ce SID, tu peux utiliser le script suivant :

[code:1]$objSID = New-Object System.Security.Principal.SecurityIdentifier(\"S-1-5-21-123456789-1234567890-123456789-12345\")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value[/code:1]




My Powershell IT blog : powershell.nicoh.me

Message édité par: nicoh, à: 23/04/13 17:13

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.111 secondes
Propulsé par Kunena