Modifier les droits d'un répertoire sous Program Files

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
joce
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 26 janv. 2017 17:00
Status : Hors ligne

Modifier les droits d'un répertoire sous Program Files

#1

Message par joce »

Bonjour à tous,

J'ai un souci sur l'affectation de droits à un répertoire se trouvant sous Program Files (x86).

J'ai ce code qui fonctionne parfaitement pour d'autres répertoires:
RunWait(@ComSpec & " /C CACLS C:\Tmp /T /E /P ""Tout le monde"":F")
Mais celui-ci ne fonctionne pas:
RunWait(@ComSpec & " /C CACLS" & @ProgramFilesDir & "\Common Files\Borland Shared /T /E /P ""Tout le monde"":F")
Ni celui-ci:
RunWait(@ComSpec & " /C CACLS C:\Program Files (x86)\Common Files\Borland Shared /T /E /P ""Tout le monde"":F")
Quelqu'un parmi vous verrait-il où se situe le problème ?
Merci
Joce
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Modifier les droits d'un répertoire sous Program Files

#2

Message par orax »

Tu peux utiliser /K (à la place de /C) pour lancer la commande dans une nouvelle fenêtre ; ça te permettra de voir l'erreur qui est retournée.
RunWait(@ComSpec & " /K CACLS" & @ProgramFilesDir & "\Common Files\Borland Shared /T /E /P ""Tout le monde"":F")
Ou affiche la commande pour comprendre d'où peut venir l'erreur.
ConsoleWrite(@ComSpec & " /C CACLS" & @ProgramFilesDir & "\Common Files\Borland Shared /T /E /P ""Tout le monde"":F" & @CRLF)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Modifier les droits d'un répertoire sous Program Files

#3

Message par jguinch »

Plusieurs choses :
- il manque un espace après la commande cacls
- Vu que le chemin contient des espaces, il faut le mette entre guillemet :
RunWait(@ComSpec & ' /C CACLS "' & @ProgramFilesDir & '\Common Files\Borland Shared" /T /E /P "Tout le monde":F')
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Modifier les droits d'un répertoire sous Program Files

#4

Message par jguinch »

Petite parenthèse : le groupe "Tout le monde" a un nom différent sur les postes avec un OS de langue non française.
Pour ceux qui gèrent des postes avec des langues différents, on peut utiliser icacls.exe (disponible à partir de Windows Vista, mais qu'on peut ajouter sous XP), qui permet d'utiliser un SID à la place d'un nom d'utilisateur ou de groupe. On peut faire la même chose avec subinacl (qui permet de modifier les droits dans la base de registre - uniquement 32 bits)
Exemple : icacls "c:\program files (x86)\Common Files\Borland Shared" /grant *S-1-1-0:F /T
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
joce
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 26 janv. 2017 17:00
Status : Hors ligne

Re: Modifier les droits d'un répertoire sous Program Files

#5

Message par joce »

Alors, effectivement, j'ai testé aussi icacls mais cela mets le contrôle à tout le monde sur les fichiers finaux mais pas sur le répertoire choisi et les suivants. "Tout le monde" est bien affecté aux utilisateurs du répertoire avec comme autorisations 'Autorisations spéciales'.
Répondre