DWORD??!

Résolu
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 - 19 août 2005 à 18:12
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 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

Ici shi502_permissions m'interesse particulièrement.

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!

Merci d'avance pour votre aide!
Douns

9 réponses

cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 1
24 août 2005 à 16:05
En fait j'ai trouvé encore mieux! :p

L'api ADVAPI32.dll!

Je posterais surement bientôt ma source!
Un prog qui parcour le réseau à la recherche des partages et des droits appliqués dessus!
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
19 août 2005 à 18:25
Salut, va voir Cette Page tu devrais y trouver réponse à ta question.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 1
20 août 2005 à 00:17
C'est sur cette page que j'ai trouvé l'api...
Et j'y vois pas ma réponse...
Une autre idée?
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
20 août 2005 à 04:27
Salut, c'est ces valeurs que tu veux ?

// C/C++

#define ACCESS_NONE 0
#define ACCESS_READ 0x01
#define ACCESS_WRITE 0x02
#define ACCESS_CREATE 0x04
#define ACCESS_EXEC 0x08
#define ACCESS_DELETE 0x10
#define ACCESS_ATRIB 0x20
#define ACCESS_PERM 0x40

#define ACCESS_ALL ( ACCESS_READ | \
ACCESS_WRITE | \
ACCESS_CREATE | \
ACCESS_EXEC | \
ACCESS_DELETE | \
ACCESS_ATRIB | \
ACCESS_PERM \
)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 1
20 août 2005 à 13:47
Peut etre bien, il faut quer j'essaye cela au boulot lundi, juste une question alors :
ACCESS_ALL correspond à quoi

ce qui m'étone c'est que j'ai des réponses du styles 1656329...
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
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 !
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
20 août 2005 à 17:16
0
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 1
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.

Promis, je vous tient au courant!

Merci
0
cs_Douns Messages postés 100 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 19 septembre 2005 1
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.
0
Rejoignez-nous