Bonjour,
Je suis actuellement à la recherche d'un script ou une commande qui me permet d'ajouter un utilisateur en controle total sur un dossier.
La difficulté est que le nom de l'utilisateur est le nom du dossier.
Explication :
J'ai un dossier dans lequel mes users ont leurs dossiers qui leurs sont propres.
Le dossier de chaque utilisateur est nommé par le nom du user.
Je doit pour chaque dossier d'utilisateur Ajouter les droits NTFS de ce users sur sont dossier.
J'ai vu les commandes Subinacl et CACLS.exe, le problème c'est comment faire pour lire le nom du dossier ?
Si je devais faire un Algo ce serai :
LIRE nom du dossier (Exemple le dossier s'appelle toto)
Pour Dossier toto ajouter droit NTFS pour user toto avec controle total sans toucher au autres droits
Les droits appliqués doivent bien entendu prendre compte des dossiers et fichiers descendant.
J'espère avoir été assez clair dans mes explications. Merci d'avance a ceux et celle qui pouront me filer un coup de main
J'ai une erreur au code que l'on ma proposé et que j'ai que légèrement modifié, et j'ai beau chercher je ne vois pas d'où ça pourrai venir.
Mon dossier dans lequel se trouve les dossiers auquel on doit ajouter les droits est c:\general
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 strComputer = "." Racine = "C:\general" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set wShell = server.createObject("wscript.shell") Set colSubfolders = objWMIService.ExecQuery _ ("Associators of {Win32_Directory.Name='"& racine &"'} " _ & "Where AssocClass = Win32_Subdirectory " _ & "ResultRole = PartComponent") ' on parcourt les sous-répertoire du répertoire racine For Each objFolder in colSubfolders 'on extrait le nom du répertoire nomrep = Replace(objFolder.Name, racine & "\", "") 'on construit la ligne de commande lignedecommande = "C:\Cacls.exe "& objFolder.Name &"/T /G " & nomrep & ":F" 'et on l'exécute wShell.run lignedecommande Next
Pour la ligne de commande j'ai trouvé comment utiliser Cacls. Par exemple, pour donner le droit d'accès en "Controle Total" à l'utilisateur "Administrateur" sur le répertoire "D:\test", on utiliserait la commande suivante :
cacls d:\test /G administrateur:F (ensuite restera juste a valider un par un) sinon il y a la commande :
cacls d:\test /G administrateur:F<c:\o.txt (le fichier texte contient un "o" et valide automatiquement)
L'erreur est la suivante :
Avez vous une idée ?Script : (chemin du script)
ligne : 5
Caract : 1
erreur : Objet requis :'server'
code : 800A01A8
source erreur d'exection microsoft VBScript
Partager