Bonjour,
J'aimerai si possible pouvoir attribuer les droits de modification aux utilisateurs d'une machine.
Dans un premier temps, j'ai créé le repertoire en vbs mais ensuite je bloque pour attribuer les droits
Est ce qu'il y a une solution ?
Merci
Bonjour,
J'aimerai si possible pouvoir attribuer les droits de modification aux utilisateurs d'une machine.
Dans un premier temps, j'ai créé le repertoire en vbs mais ensuite je bloque pour attribuer les droits
Est ce qu'il y a une solution ?
Merci
C'est sous XP pro pour le moment coté code, j'ai juste la création du repertoire, c'est après que je bloque ou plutot que je ne sais pas comment faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim oFSO,oFld Set oFSO = CreateObject("Scripting.FileSystemObject") 'Crée le repertoire Set oFld=oFSO.CreateFolder ("C:\Applis") Set oFld=oFSO.CreateFolder ("C:\Package")
En utilisant WMI, Win32_Directory et la méthode ChangeSecurityPermissions :
Un exemple :Description:
La méthode ChangeSecurityPermissions modifie les autorisations de sécurité pour le fichier logique spécifié dans le chemin d’accès de l’objet. Si le fichier logique est un répertoire, alors ChangeSecurityPermissions agira de façon récursive, en modifiant les autorisations de sécurité de tous les fichiers et sous-répertoires que contient le répertoire. ChangeSecurityPermissions renvoie une valeur entière de 0 si les autorisations ont été modifiées, et tout autre nombre pour indiquer une erreur.
Elle renvoie une des valeurs entières suivantes*:
0 - La requête a fonctionné correctement.
2 - L'accès a été interdit.
8 - Une erreur non spécifiée s’est produite.
9 - Le nom spécifié n'était pas valide.
10 - L'objet spécifié existe déjà.
11 - Le système de fichiers n’est pas NTFS.
12 - La plate forme n’est pas Windows NT ou Windows 2000.
13 - Le lecteur n’est pas le même.
14 - Le répertoire n’est pas vide.
15 - Il s’est produit une violation de partage.
16 - Le fichier de démarrage spécifié n'était pas valide.
17 - Un privilège requis pour l’opération n’est pas maintenu.
21 - Un paramètre spécifié n’est pas valide.
Qualifiers:
Description
ValueMap
Values
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 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") ' Obtain an instance of the the class ' using a key property value. Set objShare = objWMIService.Get("Win32_Directory.ReplaceKeyProperty=ReplacePropertyValue") ' Obtain an InParameters object specific ' to the method. Set objInParam = objShare.Methods_("ChangeSecurityPermissions"). _ inParameters.SpawnInstance_() ' Add the input parameters. objInParam.Properties_.Item("Option") = 5 ' Execute the method and obtain the return status. ' The OutParameters object in objOutParams ' is created by the provider. Set objOutParams = objWMIService.ExecMethod("Win32_Directory.ReplaceKeyProperty=ReplacePropertyValue", "ChangeSecurityPermissions", objInParam) ' List OutParams Wscript.Echo "Out Parameters: " Wscript.echo "ReturnValue: " & objOutParams.ReturnValue
Ici une autre façon de faire la même chose :
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 strServer = "." Set objWMI = GetObject("winmgmts:\\" & strServer & "\root\cimv2") strWQL = "select * from Win32_Directory" Set objInstances = objWMI.ExecQuery(strWQL,,48) For Each objInstance in objInstances Set p_SecurityDescriptor = objWMI.Get("Win32_SecurityDescriptor").SpawnInstance_ p_Option = 0 ' Uncomment next line to actually execute the method! ' intResult = objInstance.ChangeSecurityPermissions(p_SecurityDescriptor, p_Option) Select case intResult Case 0 : WScript.Echo "Success" Case 2 : WScript.Echo "Access Denied" Case 8 : WScript.Echo "Unspecified failure" Case 9 : WScript.Echo "Invalid object" Case 10 : WScript.Echo "Object already exists" Case 11 : WScript.Echo "File system not NTFS" Case 12 : WScript.Echo "Platform not NT/Windows 2000" Case 13 : WScript.Echo "Drive not the same" Case 14 : WScript.Echo "Directory not empty" Case 15 : WScript.Echo "Sharing violation" Case 16 : WScript.Echo "Invalid start file" Case 17 : WScript.Echo "Privilege not held" Case 21 : WScript.Echo "Invalid parameter" End Select Next
Partager