DWORD??! [Résolu]

cs_Douns 100 Messages postés lundi 16 septembre 2002Date d'inscription 19 septembre 2005 Dernière intervention - 19 août 2005 à 18:12 - Dernière réponse : cs_Douns 100 Messages postés lundi 16 septembre 2002Date d'inscription 19 septembre 2005 Dernière intervention
- 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
Afficher la suite 

9 réponses

Meilleure réponse
cs_Douns 100 Messages postés lundi 16 septembre 2002Date d'inscription 19 septembre 2005 Dernière intervention - 24 août 2005 à 16:05
3
Merci
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!

Merci cs_Douns 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 19 août 2005 à 18:25
0
Merci
Salut, va voir Cette Page tu devrais y trouver réponse à ta question.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
cs_Douns 100 Messages postés lundi 16 septembre 2002Date d'inscription 19 septembre 2005 Dernière intervention - 20 août 2005 à 00:17
0
Merci
C'est sur cette page que j'ai trouvé l'api...
Et j'y vois pas ma réponse...
Une autre idée?
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 20 août 2005 à 04:27
0
Merci
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 \
)
cs_Douns 100 Messages postés lundi 16 septembre 2002Date d'inscription 19 septembre 2005 Dernière intervention - 20 août 2005 à 13:47
0
Merci
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...
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 20 août 2005 à 17:10
0
Merci
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 !
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 20 août 2005 à 17:16
cs_Douns 100 Messages postés lundi 16 septembre 2002Date d'inscription 19 septembre 2005 Dernière intervention - 21 août 2005 à 16:17
0
Merci
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
cs_Douns 100 Messages postés lundi 16 septembre 2002Date d'inscription 19 septembre 2005 Dernière intervention - 23 août 2005 à 10:59
0
Merci
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.