OVH Cloud OVH Cloud

Question sur LookupAccountSid et les SID

1 réponse
Avatar
Jean-Claude BELLAMY
Hello World !

Dans une appli, je récupère des SID, et à l'aide de "LookupAccountSid" j'en
déduis le nom du compte associé.

Je rappelle sa définition :
BOOL LookupAccountSid(
LPCTSTR lpSystemName,
PSID lpSid,
LPTSTR lpName,
LPDWORD cchName,
LPTSTR lpReferencedDomainName,
LPDWORD cchReferencedDomainName,
PSID_NAME_USE peUse
);

Je comptais naïvement sur le paramètre "peUse" pour distinguer les "vrais"
utilisateurs des autres (Groupes, ordinateurs, comptes SYSTEM, LOCALSERVICE,
...) mais je me suis rendu compte p.ex. que "SYSTEM/AUTORITE NT" était vu
comme "SidTypeUser".
Donc impossible à distinguer d'un compte utilisateur ordinaire.

J'ai contourné cela en analysant la chaîne du SID :
les comptes SYSTEM, SERVICE LOCAL, ... sont de la forme S-1-5-xx (3 tirets
au maximum) alors qu'un compte utilisateur lambda est de la forme
S-1-5-21-xxxxxxxxxx-xxxxxxxxxxx-xxxxxxxxx-xxxx

Çà marche, mais je trouve cette méthode vraiment "très laide" !!!
J'aime bien les trucs agricoles, mais avec un minimum d'esthétique ! ;-)

Je suis donc preneur de toute idée ..
Merci d'avance .

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr

1 réponse

Avatar
adebaene
Jean-Claude BELLAMY wrote:
Hello World !

Dans une appli, je récupère des SID, et à l'aide de "LookupAccountS id" j'en
déduis le nom du compte associé.

Je rappelle sa définition :
BOOL LookupAccountSid(
LPCTSTR lpSystemName,
PSID lpSid,
LPTSTR lpName,
LPDWORD cchName,
LPTSTR lpReferencedDomainName,
LPDWORD cchReferencedDomainName,
PSID_NAME_USE peUse
);

Je comptais naïvement sur le paramètre "peUse" pour distinguer les "v rais"
utilisateurs des autres (Groupes, ordinateurs, comptes SYSTEM, LOCALSERVI CE,
...) mais je me suis rendu compte p.ex. que "SYSTEM/AUTORITE NT" était vu
comme "SidTypeUser".
Donc impossible à distinguer d'un compte utilisateur ordinaire.

J'ai contourné cela en analysant la chaîne du SID :
les comptes SYSTEM, SERVICE LOCAL, ... sont de la forme S-1-5-xx (3 tirets
au maximum) alors qu'un compte utilisateur lambda est de la forme
S-1-5-21-xxxxxxxxxx-xxxxxxxxxxx-xxxxxxxxx-xxxx

Çà marche, mais je trouve cette méthode vraiment "très laide" !!!
J'aime bien les trucs agricoles, mais avec un minimum d'esthétique ! ; -)

Je suis donc preneur de toute idée ..
Merci d'avance .



Il y a bien IsWellKnownSid, mais bon c'est pas forcément top de tester
contre les 61 valeurs possibles de WELL_KNOWN_SID_TYPE

Arnaud