LsaLookupNames2, fonction (ntsecapi.h)
La fonction LsaLookupNames2 récupère les identificateurs de sécurité (SID) pour les noms de compte spécifiés. LsaLookupNames2 peut rechercher le SID pour n’importe quel compte dans n’importe quel domaine d’une forêt Windows.
La fonction LsaLookupNames est remplacée par la fonction LsaLookupNames2 . Les applications doivent utiliser la fonction LsaLookupNames2 pour garantir la compatibilité future.
Cette fonction diffère de la fonction LsaLookupNames en ce que LsaLookupNames2 retourne chaque SID en tant qu’élément unique, tandis que LsaLookupNames divise chaque SID en une paire RID/domaine.
Syntaxe
NTSTATUS LsaLookupNames2(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Flags,
[in] ULONG Count,
[in] PLSA_UNICODE_STRING Names,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_SID2 *Sids
);
Paramètres
[in] PolicyHandle
Handle d’un objet Policy . Le handle doit avoir le droit d’accès POLICY_LOOKUP_NAMES. Pour plus d’informations, consultez Ouverture d’un handle d’objet de stratégie.
[in] Flags
Valeurs qui contrôlent le comportement de cette fonction. La valeur suivante est actuellement définie.
[in] Count
Spécifie le nombre de noms dans le tableau Names . Il s’agit également du nombre d’entrées retournées dans le tableau Sids .
[in] Names
Pointeur vers un tableau de structures LSA_UNICODE_STRING qui contiennent les noms à rechercher. Ces chaînes peuvent être les noms des comptes d’utilisateur, de groupe ou de groupe local, ou les noms de domaines. Les noms de domaine peuvent être des noms de domaine DNS ou des noms de domaine NetBIOS.
Pour plus d’informations sur le format des chaînes de nom, consultez Remarques.
[out] ReferencedDomains
Reçoit un pointeur vers une structure LSA_REFERENCED_DOMAIN_LIST . Le membre Domains de cette structure est un tableau qui contient une entrée pour chaque domaine dans lequel un nom a été trouvé. Le membre DomainIndex de chaque entrée du tableau Sids est l’index de l’entrée de tableau Domains pour le domaine dans lequel le nom a été trouvé.
Lorsque vous avez terminé d’utiliser le pointeur retourné, libérez-le en appelant le
Fonction LsaFreeMemory . Cette mémoire doit être libérée même lorsque la fonction échoue avec l’un des codes d’erreur STATUS_NONE_MAPPED ou STATUS_SOME_NOT_MAPPED
[out] Sids
Reçoit un pointeur vers un tableau de structures LSA_TRANSLATED_SID2 . Chaque entrée du tableau Sids contient les informations SID de l’entrée correspondante dans le tableau Names .
Lorsque vous avez terminé d’utiliser le pointeur retourné, libérez-le en appelant le
Fonction LsaFreeMemory . Cette mémoire doit être libérée même lorsque la fonction échoue avec l’un des codes d’erreur STATUS_NONE_MAPPED ou STATUS_SOME_NOT_MAPPED
Valeur retournée
Si la fonction réussit, la fonction retourne l’une des valeurs NTSTATUS suivantes.
Valeur | Description |
---|---|
|
Certains noms n’ont pas pu être traduits. Il s’agit d’une valeur de retour de niveau informationnel. |
|
Tous les noms ont été trouvés et traduits avec succès. |
Si la fonction échoue, la valeur de retour est la valeur NTSTATUS suivante ou l’une des valeurs de retour de la fonction de stratégie LSA.
Valeur | Description |
---|---|
|
Aucun des noms n’a été traduit. |
Utilisez la fonction LsaNtStatusToWinError pour convertir le code NTSTATUS en code d’erreur Windows.
Remarques
Utilisez des noms de compte complets (par exemple, DomainName\UserName) au lieu de noms isolés (par exemple, UserName). Les noms complets sont non ambigus et offrent de meilleures performances lorsque la recherche est effectuée. Cette fonction prend également en charge les noms DNS complets (par exemple, Exemple.Exemple .com\UserName) et les noms d’utilisateur principaux (UPN) (par exemple, Exemple de quelqu’un@.com).
La traduction de noms isolés introduit la possibilité de collisions de noms, car le même nom peut être utilisé dans plusieurs domaines. La fonction LsaLookupNames2 utilise l’algorithme suivant pour traduire des noms isolés.
Pour traduire des noms isolés
- Si le nom est un nom connu, par exemple Local ou Interactif, la fonction retourne l’identificateur de sécurité (SID) connu correspondant.
- Si le nom est le nom du domaine intégré, la fonction retourne le SID de ce domaine.
- Si le nom est le nom du domaine du compte, la fonction retourne le SID de ce domaine.
- Si le nom est le nom du domaine principal, la fonction retourne le SID de ce domaine.
- Si le nom est l’un des noms du domaine approuvé, la fonction retourne le SID de ce domaine.
- Si le nom est un compte d’utilisateur, de groupe ou de groupe local dans le domaine intégré, la fonction retourne le SID de ce compte.
- Si le nom est un compte d’utilisateur, de groupe ou de groupe local dans le domaine du compte sur le système local, la fonction retourne le SID de ce compte.
- Si le nom est un utilisateur, un groupe ou un groupe local dans le domaine principal, la fonction retourne le SID de ce compte.
- Après avoir cherché dans le domaine principal, la fonction recherche dans chacun des domaines approuvés du domaine principal.
- Sinon, le nom n’est pas traduit.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | ntsecapi.h |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |