Vbscript pour modifier des Droits NTFS d'un Dossier et de son contenu
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:
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