cs_Douns
Messages postés100Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention19 septembre 2005
-
19 août 2005 à 18:12
cs_Douns
Messages postés100Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention19 septembre 2005
-
24 août 2005 à 16:05
Bonjour
Je fais un appel à une api (function NetShareGetInfo dans netapi32.dll) afin de trouver les permissions d'un partage réseau.
L'api renvoi un réponse du type suivant :
Private Type SHARE_INFO_502
shi502_netname As Long ' LPWSTR shi502_netname;
shi502_type As Long ' DWORD shi502_type;
shi502_remark As Long ' LPWSTR shi502_remark;
shi502_permissions As Long ' DWORD shi502_permissions;
shi502_max_uses As Long ' DWORD shi502_max_uses;
shi502_current_uses As Long ' DWORD shi502_current_uses;
shi502_path As Long ' LPWSTR shi502_path;
shi502_passwd As Long ' LPWSTR shi502_passwd;
shi502_reserved As Long ' DWORD shi502_reserved;
shi502_security_descriptor As Long ' PSECURITY_DESCRIPTOR shi502_security_descriptor;
End Type
Seulement voila, c'est normalement un DWORD qui est en long et je n'arrive pas à le déchiffrer!
J'ai trouvé sur msdn de krosoft que les réponses possibles sont : ACCESS_READ, ACCESS_WRITE, ACCESS_CREATE, ACCESS_EXEC, ACCESS_DELETE, ACCESS_ATRIB, ACCESS_PERM, ACCESS_ALL. Mais tout ec que j'ai en réponse, c'est du long!!!
Je me doute que je dois faire une convertion, mais je en vois pas comment.
J'ai trouvé la méthode pour les LPWSTR ( en utilisant les functions lstrlenW et lstrcpyW de kernel32) mais pour les DWORD je patoge complet!
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 20 août 2005 à 17:10
Salut, tu l'auras remarqué ce sont des valeurs en hexadécimale, ACCESS_ALL ( 0x7F ) est une combinaison avec l'opérateur OU binaire. Les valeurs peuvent être combinées pour mettre plusieurs valeurs dans un seul entier, par contre 1656329 ca me semble une valeur invalide !
cs_Douns
Messages postés100Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention19 septembre 20051 21 août 2005 à 16:17
Je vais m'interesser a tous cela lundi, je voçus préviens après. Une fois que ce code fonctionnera je le posterais ici car je pense que cela pourrait etre utile! ^^
Et pour la valeur 1656329 c'ets normal, c'ets un truc que j'ai dit au pif. Mes sources sont sur mon lieu d etravail.
cs_Douns
Messages postés100Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention19 septembre 20051 23 août 2005 à 10:59
Bon, au final, je n'arrive pas à faire fonctionner cette api, je vais donc utiliser les wmi car je me suis rendu compte d'autre chose :
On ne récupère les droits que de la session en cours (par exemple si je suis loggué sous admin, je ne verra pas les droits de l'utilisateurs beta).
Je vais donc faire un script vbs qui s'executera sur chaque poste au démarrage et qui vérifira les droits sur chaque ordi pour les enregistrer ensuite dans une BD.