Bonjour à tous, j'aimerais créer un petit programme qui viendrait finaliser une configuration suite à l'installation d'un logiciel dans notre parc informatique.

Un des tâches à accomplir est de créer un dossier, de le partager et ensuite d'appliquer des permissions spécifiques au partage... pour l'instant ce que je réussi à faire c'est créer le dossier, le partager mais lorsque que je tente de spécifier des permissions spécifiques au partage tout ce que je réussi à faire c'est d'appliquer les permissions sur le dossier local...

Voici mon code :

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
static void Main(string[] args)
        {
            /*using System;
            using System.IO;
            using System.Net;
            using System.Management;*/
 
            try
            {
                // create a directory
 
                Directory.CreateDirectory(@"D:\01Tmp");
                // Create a ManagementClass object
                ManagementClass managementClass = new ManagementClass("Win32_Share");
                // Create ManagementBaseObjects for in and out parameters
                ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");
                ManagementBaseObject outParams;
                // Set the input parameters
                inParams["Description"] = "01Tmp";
                inParams["Name"] = "01Tmp";
                inParams["Path"] = @"D:\01Tmp";
                inParams["Type"] = 0x0; // Disk Drive
                // Invoke the method on the ManagementClass object
                outParams = managementClass.InvokeMethod("Create", inParams, null);
                // Check to see if the method invocation was successful
 
                // Get a FileSecurity object that represents the current security settings.
                FileSecurity fSecurity = File.GetAccessControl("D:\\01Tmp");
 
                // Add the FileSystemAccessRule to the security settings. 
                fSecurity.AddAccessRule(new FileSystemAccessRule("MonDomaine\\MonGroupe", FileSystemRights.FullControl, AccessControlType.Allow));
 
                // Set the new access settings.
                File.SetAccessControl("D:\\01Tmp", fSecurity);
 
                if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)
                {
                    throw new Exception("Unable to share directory.");
                }
            }
 
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
J'ai fouillé (Google) et j'ai trouvé des miettes concernant la possibilité de le faire avec NetShareSetInfo SetShareInfo... mais j'avoue que je ne m'y retrouve guère...

Merci d'avance pour votre aide!!