LsaLookupSids-Funktion (ntsecapi.h)
[LsaLookupSids ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Es kann in nachfolgenden Versionen geändert oder entfernt werden. Verwenden Sie stattdessen LsaLookupSids2.]
Die LsaLookupSids-Funktion sucht die Namen, die einem Array von Sicherheitsbezeichnern (SIDs) entsprechen. Wenn LsaLookupSids keinen Namen finden kann, der einer SID entspricht, gibt die Funktion die SID in Zeichenform zurück.
Syntax
NTSTATUS LsaLookupSids(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Count,
[in] PSID *Sids,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_NAME *Names
);
Parameter
[in] PolicyHandle
Ein Handle für ein Policy-Objekt . Dieses Handle muss über das zugriffsrecht POLICY_LOOKUP_NAMES verfügen. Weitere Informationen finden Sie unter Öffnen eines Richtlinienobjekthandles.
[in] Count
Gibt die Anzahl der SIDs im Sids-Array an. Dies ist auch die Anzahl der Einträge, die im Names-Array zurückgegeben werden. Dieser Wert muss kleiner oder gleich 20480 sein.
[in] Sids
Zeiger auf ein Array von SID-Zeigern, die gesucht werden sollen. Die SIDs können bekannte SIDs, Benutzer-, Gruppen- oder lokale Gruppenkonto-SIDs oder Domänen-SIDs sein.
[out] ReferencedDomains
Empfängt einen Zeiger auf einen Zeiger auf eine LSA_REFERENCED_DOMAIN_LIST-Struktur . Das Domänenelement dieser Struktur ist ein Array, das einen Eintrag für jede Domäne enthält, in der eine SID gefunden wurde. Der Eintrag für jede Domäne enthält die SID und den Flachnamen der Domäne. Bei Windows-Domänen ist der Flatname der NetBIOS-Name. Bei Links mit Nicht-Windows-Domänen ist der Flatname der identifizierende Name dieser Domäne oder NULL.
Wenn Sie die Informationen nicht mehr benötigen, übergeben Sie den zurückgegebenen Zeiger an LsaFreeMemory. Dieser Arbeitsspeicher muss freigegeben werden, auch wenn die Funktion mit einem der Fehlercodes STATUS_NONE_MAPPED oder STATUS_SOME_NOT_MAPPED
[out] Names
Empfängt einen Zeiger auf ein Array von LSA_TRANSLATED_NAME Strukturen. Jeder Eintrag im Array Names enthält die Namensinformationen für den entsprechenden Eintrag im Sids-Array . Bei Konto-SIDs enthält der Name-Member jeder Struktur den isolierten Namen des Kontos. Für Domänen-SIDs ist das Namenselement ungültig.
Das DomainIndex-Element jedes Eintrags im Names-Array ist der Index eines Eintrags im Domänenarray , der im Parameter ReferencedDomains zurückgegeben wird. Der Index identifiziert das Domänenarray für die Domäne, in der die SID gefunden wurde.
Wenn Sie die Informationen nicht mehr benötigen, übergeben Sie den zurückgegebenen Zeiger an LsaFreeMemory. Dieser Arbeitsspeicher muss freigegeben werden, auch wenn die Funktion mit einem der Fehlercodes STATUS_NONE_MAPPED oder STATUS_SOME_NOT_MAPPED
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert einer der folgenden NTSTATUS-Werte .
Rückgabecode | Beschreibung |
---|---|
|
Einige der SIDs konnten nicht übersetzt werden. Dies ist ein Rückgabewert auf Informationsebene. |
|
Alle SIDs wurden gefunden und erfolgreich übersetzt. |
Wenn die Funktion fehlschlägt, ist der Rückgabewert ein NTSTATUS-Code , der einer der folgenden Werte oder einer der Rückgabewerte der LSA-Richtlinienfunktion sein kann.
Rückgabecode | Beschreibung |
---|---|
|
Keine der SIDs wurde übersetzt. Dies ist ein Rückgabewert auf Fehlerebene. |
|
Der Sids-Arrayparameter war zu groß. |
Sie können die LsaNtStatusToWinError-Funktion verwenden, um den NTSTATUS-Code in einen Windows-Fehlercode zu konvertieren.
Hinweise
Bei Konto-SIDs ist die im Member Name zurückgegebene Zeichenfolge der isolierte Name des Kontos (z. B. user_name). Wenn Sie den zusammengesetzten Namen des Kontos benötigen (z. B. Acctg\user_name), rufen Sie den Domänennamen aus dem Puffer ReferencedDomains ab, und fügen Sie einen umgekehrten Schrägstrich und den isolierten Namen an.
Wenn die LsaLookupSids-Funktion eine SID nicht übersetzen kann, verwendet die Funktion den folgenden Algorithmus:
- Wenn die Domäne der SID bekannt ist, enthält der ReferencedDomains-Puffer einen Eintrag für die Domäne, und die im Names-Parameter zurückgegebene Zeichenfolge ist eine Unicode-Darstellung des relativen Bezeichners (RID) des Kontos aus der SID.
- Wenn die Domäne der SID nicht bekannt ist, ist die im Names-Parameter zurückgegebene Zeichenfolge eine Unicode-Darstellung der gesamten SID, und es gibt keinen Domäneneintrag für diese SID im Puffer ReferencedDomains .
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | ntsecapi.h |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |