Bonjour à tous,

Cela fait un moment que je me casse la tête pour trouver comment évaluer les droits d'un utilisateurs sur un répertoire partagé sur le réseau.

Il existe en interface un onglet, dans les options avancés des sécurités d'un répertoire, qui permet d'évaluer les droits NTFS effectifs d'un utilisateurs sur le répertoire.

J'ai trouvé le code qui permet d'utiliser cette fonction mais je reste bloque sur le fait que je ne puise pas calculer ces droits pour un autre utilisateur que celui qui initie la connexion.

Ce code fait appel à WMI.

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
Dim connection As New ConnectionOptions
            connection.Username = "user"
            connection.Password = "pwd"
            connection.Authority = "ntlmdomain:DOMAIN"
 
            Dim scope As New ManagementScope( _
                "\\RADATA\root\CIMV2", connection)
 
            scope.Connect()
 
            Dim classInstance As New ManagementObject(scope, _
                 New ManagementPath("Win32_Directory.Name='c:\'"), _
                 Nothing)
 
            ' Obtain [in] parameters for the method
            Dim inParams As ManagementBaseObject = _
                classInstance.GetMethodParameters("GetEffectivePermission")
 
            ' Add the input parameters.
 
            ' Execute the method and obtain the return values.
            Dim outParams As ManagementBaseObject = _
                classInstance.InvokeMethod("GetEffectivePermission", inParams, Nothing)
 
            ' List outParams
            Console.WriteLine("Out parameters:")
            Console.WriteLine("ReturnValue: {0}", outParams("ReturnValue"))
Quelqu'un aurait-il une idée pour réaliser l'équivalent de la fonction GetEffectivePermission sur un utilisateur différent de celui qui réalise la requête.

C'est-à-dire exactement comme le propose la fenêtre d'évaluation des droits.



L'évaluation se fait depuis mon application. Il me faudrait donc quelques choses qui donnerait une fois les routines écrites.

getEffectivePermission("DOMAIN\User", "\\SERVER\SHARE") as boolean ou as accessMask

Merci de votre aide tout les propositions seront les bienvenues.