Freigeben über


LookupAccountNameW-Funktion (winbase.h)

Die LookupAccountName-Funktion akzeptiert den Namen eines Systems und eines Kontos als Eingabe. Es ruft eine Sicherheits-ID (SID) für das Konto und den Namen der Domäne ab, in der das Konto gefunden wurde.

Die LsaLookupNames-Funktion kann auch Computerkonten abrufen.

Syntax

BOOL LookupAccountNameW(
  [in, optional]  LPCWSTR       lpSystemName,
  [in]            LPCWSTR       lpAccountName,
  [out, optional] PSID          Sid,
  [in, out]       LPDWORD       cbSid,
  [out, optional] LPWSTR        ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

Parameter

[in, optional] lpSystemName

Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Namen des Systems angibt. Diese Zeichenfolge kann der Name eines Remotecomputers sein. Wenn diese Zeichenfolge NULL ist, beginnt die Übersetzung des Kontonamens im lokalen System. Wenn der Name auf dem lokalen System nicht aufgelöst werden kann, versucht diese Funktion, den Namen mithilfe von Domänencontrollern aufzulösen, die vom lokalen System als vertrauenswürdig eingestuft werden. Geben Sie im Allgemeinen nur dann einen Wert für lpSystemName an, wenn sich das Konto in einer nicht vertrauenswürdigen Domäne befindet und der Name eines Computers in dieser Domäne bekannt ist.

[in] lpAccountName

Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Kontonamen angibt.

Verwenden Sie eine vollqualifizierte Zeichenfolge im Format domain_name\user_name, um sicherzustellen, dass LookupAccountName das Konto in der gewünschten Domäne findet.

[out, optional] Sid

Ein Zeiger auf einen Puffer, der die SID-Struktur empfängt, die dem Kontonamen entspricht, auf den der lpAccountName-Parameter verweist. Wenn dieser Parameter NULL ist, muss cbSid null sein.

[in, out] cbSid

Ein Zeiger auf eine Variable. Bei der Eingabe gibt dieser Wert die Größe des Sid-Puffers in Bytes an. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist oder cbSid null ist, empfängt diese Variable die erforderliche Puffergröße.

[out, optional] ReferencedDomainName

Ein Zeiger auf einen Puffer, der den Namen der Domäne empfängt, in der sich der Kontoname befindet. Für Computer, die nicht mit einer Domäne verbunden sind, empfängt dieser Puffer den Computernamen. Wenn dieser Parameter NULL ist, gibt die Funktion die erforderliche Puffergröße zurück.

[in, out] cchReferencedDomainName

Ein Zeiger auf eine Variable. Bei der Eingabe gibt dieser Wert die Größe des ReferencedDomainName-Puffers in TCHARs an. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist, empfängt diese Variable die erforderliche Puffergröße, einschließlich des abschließenden NULL-Zeichens . Wenn der Parameter ReferencedDomainNameNULL ist, muss dieser Parameter 0 sein.

[out] peUse

Ein Zeiger auf einen SID_NAME_USE aufgezählten Typ, der den Typ des Kontos angibt, wenn die Funktion zurückgibt.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null zurück.

Wenn die Funktion fehlschlägt, wird null zurückgegeben. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Hinweise

Die LookupAccountName-Funktion versucht, eine SID für den angegebenen Namen zu finden, indem zuerst eine Liste bekannter SIDs überprüft wird. Wenn der Name nicht einer bekannten SID entspricht, überprüft die Funktion integrierte und administrativ definierte lokale Konten. Als Nächstes überprüft die Funktion die primäre Domäne. Wenn der Name dort nicht gefunden wird, werden vertrauenswürdige Domänen überprüft.

Verwenden Sie vollqualifizierte Kontonamen (z. B. domain_name\user_name) anstelle von isolierten Namen (z. B. user_name). Vollqualifizierte Namen sind eindeutig und bieten eine bessere Leistung, wenn die Suche durchgeführt wird. Diese Funktion unterstützt auch vollqualifizierte DNS-Namen (z. B. example.example.com\user_name) und Benutzerprinzipalnamen (UPN) (z. B someone@example.com. ).

Zusätzlich zum Suchen nach lokalen Konten, lokalen Domänenkonten und explizit vertrauenswürdigen Domänenkonten kann LookupAccountName den Namen für jedes Konto in einer beliebigen Domäne in der Gesamtstruktur suchen.

Hinweis

Der winbase.h-Header definiert LookupAccountName als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winbase.h (Windows.h einschließen)
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

Zugriffssteuerung Übersicht

Grundlegende Access Control-Funktionen

EqualPrefixSid

GetUserName

LookupAccountSid

LsaLookupNames2

SID

SID_NAME_USE