Bonjour,

Je vous écris car je suis à la recherche d'un script vbs me permettant de modifier les droits de certain dossiers.
En effet je fais beaucoup de prises en main à distance et il m'est souvent nécessaire d'attribuer des droits.

J’ai trouvé par hasard ce script de Hackoofr:
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
45
46
 
'Vbscript pour modifier des Droits NTFS d'un Dossier et de son contenu (sous-dossiers et Fichiers)
'© Hackoo 25/03/2012
Dim oFSO,oFld 
Set oFSO = CreateObject("Scripting.FileSystemObject")
Dossier = "c:\Essai"
If Not oFSO.FolderExists(Dossier) Then
'Crée le repertoire
Set oFld=oFSO.CreateFolder(Dossier)
end if
 
If oFSO.FolderExists(Dossier) Then
For each Fichier in oFSO.GetFolder(Dossier).Files
'MsgBox "Fichier :" & Fichier.path,64,"Nom des Fichiers"
LectureSeule(Fichier) 'chaque fichier devient en lecture seule 
Next
End if
 
If oFSO.FolderExists(Dossier) Then
For each Folder in oFSO.GetFolder(Dossier).SubFolders
'MsgBox "Dossier :" & Folder.Path,64,"Nom des Dossiers"
LectureSeule(Dossier) 'chaque dossier devient en lecture seule
Next
End If
 
ControlTotale(Dossier) ' Pour rendre un controle Totale du dossier parent
 
Function LectureSeule(objet)
Set Ws = CreateObject("WScript.Shell")
Set ProcessEnv = Ws.Environment("Process")
NomUtilisateur = ProcessEnv("USERNAME")
Command = "%COMSPEC% /c Echo o| cacls "& objet &" /g " & qq(NomUtilisateur) & ":r administrateurs:r"
Result = ws.Run(Command,0,True) 'exécution de la commande sans afficher la console MS-DOS
End Function
 
Function ControlTotale(objet)
Set Ws = CreateObject("WScript.Shell")
Set ProcessEnv = Ws.Environment("Process")
NomUtilisateur = ProcessEnv("USERNAME")
Command = "%COMSPEC% /c Echo o| cacls "& objet &" /g " & qq(NomUtilisateur) & ":f administrateurs:f"
Result = ws.Run(Command,0,True) 'exécution de la commande sans afficher la console MS-DOS
End Function
 
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function
Ce script correspond exactement à ce que je voulais faire (sans savoir comment =).
Je rencontre néanmoins des difficultés (très faibles connaissances en programmation).

Je souhaiterai savoir s’il est possible de changer « administrateurs » en « tout le monde » ou « everyone », j’ai essayé mais cela ne fonctionne pas. J’ai uniquement réussi en mettant « utilisateurs ».

J’ai rencontré une autre difficulté. Si le chemin du dossier est dans « program files » ou « windows », le script ne fonctionne pas. Comme ci je n’avais pas le droit de modifier le contenu de ces dossiers.
Y a-t-il une spécificité pour ces chemins?

Le script permet de mettre l’utilisateur actuel et le groupe administrateurs en contrôle total du dossier. Est-il possible de rajouter d’autres groupes ?
L’idéal pour moi serait : l’utilisateur actuel + Tout le monde + utilisateurs + administrateurs en contrôle total.

Merci d’avance pour tout élément que vous pourrez m’apporter.

Cordialement
Thomas