Freigeben über


LookupAccountSidA-Funktion (winbase.h)

Die LookupAccountSid--Funktion akzeptiert eine Sicherheits-ID (SID) als Eingabe. Er ruft den Namen des Kontos für diese SID und den Namen der ersten Domäne ab, in der diese SID gefunden wird.

Syntax

BOOL LookupAccountSidA(
  [in, optional]  LPCSTR        lpSystemName,
  [in]            PSID          Sid,
  [out, optional] LPSTR         Name,
  [in, out]       LPDWORD       cchName,
  [out, optional] LPSTR         ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

Parameter

[in, optional] lpSystemName

Ein Zeiger auf eine NULL--terminated-Zeichenfolge, die den Zielcomputer angibt. Diese Zeichenfolge kann der Name eines Remotecomputers sein. Wenn dieser Parameter NULL-ist, beginnt die Kontonamenübersetzung im lokalen System. Wenn der Name im lokalen System nicht aufgelöst werden kann, versucht diese Funktion, den Namen mithilfe von Domänencontrollern aufzulösen, die vom lokalen System vertrauenswürdig sind. Geben Sie im Allgemeinen einen Wert für lpSystemName nur 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] Sid

Ein Zeiger auf die SID, um nachzuschlagen.

[out, optional] Name

Ein Zeiger auf einen Puffer, der eine NULL--terminated-Zeichenfolge empfängt, die den Kontonamen enthält, der dem parameter lpSid entspricht.

[in, out] cchName

Gibt bei eingaben die Größe des lpName Puffers in TCHAR-s an. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist oder cchName null ist, empfängt cchName die erforderliche Puffergröße, einschließlich des endierenden Null- Zeichens.

[out, optional] ReferencedDomainName

Ein Zeiger auf einen Puffer, der eine NULL--terminated-Zeichenfolge empfängt, die den Namen der Domäne enthält, in der der Kontoname gefunden wurde.

Auf einem Server ist der für die meisten Konten in der Sicherheitsdatenbank des lokalen Computers zurückgegebene Domänenname der Name der Domäne, für die der Server ein Domänencontroller ist.

Auf einer Arbeitsstation ist der für die meisten Konten in der Sicherheitsdatenbank des lokalen Computers zurückgegebene Domänenname der Name des Computers ab dem letzten Start des Systems (umgekehrte Schrägstriche sind ausgeschlossen). Wenn sich der Name des Computers ändert, wird der alte Name weiterhin als Domänenname zurückgegeben, bis das System neu gestartet wird.

Einige Konten sind vom System vordefiniert. Der für diese Konten zurückgegebene Domänenname ist BUILTIN.

[in, out] cchReferencedDomainName

Gibt bei Eingaben die Größe des lpReferencedDomainName Puffers in TCHAR-s an. Wenn die Funktion fehlschlägt, da der Puffer zu klein ist oder cchReferencedDomainName null ist, erhält cchReferencedDomainName die erforderliche Puffergröße, einschließlich des Endens Null- Zeichens.

[out] peUse

Ein Zeiger auf eine Variable, die einen SID_NAME_USE Wert empfängt, der den Typ des Kontos angibt.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion "nonzero" zurück.

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

Bemerkungen

Die LookupAccountSid Funktion versucht, einen Namen für die angegebene SID zu finden, indem zuerst eine Liste bekannter SIDs überprüft wird. Wenn die angegebene SID keiner 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. Sicherheits-IDs, die von der primären Domäne nicht erkannt werden, werden anhand der vertrauenswürdigen Domänen überprüft, die ihren SID-Präfixen entsprechen.

Wenn die Funktion keinen Kontonamen für die SID finden kann, gibt GetLastError- ERROR_NONE_MAPPED zurück. Dies kann auftreten, wenn ein Netzwerktimeout verhindert, dass die Funktion den Namen findet. Sie tritt auch für SIDs auf, die keinen entsprechenden Kontonamen haben, z. B. eine Anmelde-SID-, die eine Anmeldesitzungidentifiziert.

Neben dem Nachschlagen von SIDs für lokale Konten, lokalen Domänenkonten und explizit vertrauenswürdigen Domänenkonten können LookupAccountSid- SIDs für jedes Konto in jeder Domäne in der Gesamtstruktur nachschlagen, einschließlich SIDs, die nur im SIDhistory-Feld eines Kontos in der Gesamtstruktur angezeigt werden. Das SIDhistory-Feld speichert frühere SIDs eines Kontos, das aus einer anderen Domäne verschoben wurde. Um eine SID nachzuschlagen, fragt LookupAccountSid den globalen Katalog der Gesamtstruktur ab.

Beispiele

Ein Beispiel, das diese Funktion verwendet, finden Sie unter Suchen nach einer SID in einem Zugriffstoken-.

Anmerkung

Der winbase.h-Header definiert LookupAccountSid 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
mindestens unterstützte Client- Windows XP [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- winbase.h (enthalten Windows.h)
Library Advapi32.lib
DLL- Advapi32.dll

Siehe auch

Übersicht über die Zugriffssteuerung

grundlegende Zugriffssteuerungsfunktionen

EqualPrefixSid-

LookupAccountName-

SID-

SID_NAME_USE