Funzione LsaLookupSids2 (ntsecapi.h)
La funzione LsaLookupSids2 cerca i nomi corrispondenti a una matrice di identificatori di sicurezza (SID) e supporta le identità del provider Internet. Se LsaLookupSids2 non riesce a trovare un nome corrispondente a un SID, la funzione restituisce il SID in formato carattere. È consigliabile usare questa funzione anziché la funzione LsaLookupSids .
Sintassi
NTSTATUS LsaLookupSids2(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG LookupOptions,
[in] ULONG Count,
[in] PSID *Sids,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_NAME *Names
);
Parametri
[in] PolicyHandle
Handle a un oggetto Policy . Questo handle deve avere il diritto di accesso POLICY_LOOKUP_NAMES. Per altre informazioni, vedere Apertura di un handle oggetto Criteri.
[in] LookupOptions
Contrassegni che modificano il comportamento di ricerca.
[in] Count
Specifica il numero di SID nella matrice Sids . Si tratta anche del numero di voci restituite nella matrice Nomi . Questo valore deve essere minore o uguale a 20480.
[in] Sids
Puntatore a una matrice di puntatori SID da cercare. I SID possono essere SID noti, utente, gruppo o SID di gruppo locale o SID di dominio.
[out] ReferencedDomains
Riceve un puntatore a un puntatore a una struttura LSA_REFERENCED_DOMAIN_LIST . Il membro Domini di questa struttura è una matrice che contiene una voce per ogni dominio in cui è stato trovato un SID. La voce per ogni dominio contiene il SID e il nome flat del dominio. Per i domini Di Windows, il nome flat è il nome NetBIOS. Per i collegamenti con domini non Windows, il nome flat è il nome di identificazione di tale dominio o è NULL.
Quando non sono più necessarie le informazioni, passare il puntatore restituito a LsaFreeMemory. Questa memoria deve essere liberata anche quando la funzione ha esito negativo con i codici di errore STATUS_NONE_MAPPED o STATUS_SOME_NOT_MAPPED
[out] Names
Riceve un puntatore a una matrice di strutture LSA_TRANSLATED_NAME . Ogni voce nella matrice Nomi contiene le informazioni sul nome per la voce corrispondente nella matrice Sids . Per i SID dell'account, il membro Name di ogni struttura contiene il nome isolato dell'account. Per i SID di dominio, il membro Name non è valido.
Il membro DomainIndex di ogni voce della matrice Name è l'indice di una voce nella matrice Domini restituita nel parametro ReferencedDomains . L'indice identifica la matrice Domini per il dominio in cui è stato trovato il SID.
Quando non sono più necessarie le informazioni, passare il puntatore restituito a LsaFreeMemory. Questa memoria deve essere liberata anche quando la funzione ha esito negativo con i codici di errore STATUS_NONE_MAPPED o STATUS_SOME_NOT_MAPPED
Valore restituito
Se la funzione ha esito positivo, il valore restituito è uno dei valori NTSTATUS seguenti.
Codice restituito | Descrizione |
---|---|
|
Non è stato possibile tradurre alcuni DEI SID. Si tratta di un valore restituito a livello informativo. |
|
Tutti i SID sono stati trovati e tradotti correttamente. |
Se la funzione ha esito negativo, il valore restituito è un codice NTSTATUS , che può essere uno dei valori seguenti o uno dei valori restituiti della funzione Criteri LSA.
Codice restituito | Descrizione |
---|---|
|
Nessuno dei SID è stato tradotto. Si tratta di un valore restituito a livello di errore. |
|
Il parametro della matrice Sids era troppo grande. |
È possibile usare la funzione LsaNtStatusToWinError per convertire il codice NTSTATUS in un codice di errore di Windows.
Commenti
Il flag LSA_LOOKUP_PREFER_INTERNET_NAMES deve essere usato per gli account Internet, ad esempio Gli account MicrosoftAccount e Azure Active Directory. Quando questo flag viene specificato, SID-Name ricerca restituisce l'UPN dell'account nel formato MicrosoftAccount\foo@outlook.com o AzureAD\foo@contoso.com. Per gli account Microsoft sia il SID SAM locale che il SID Internet generano la restituzione dell'UPN se questo flag è specificato. Se LSA_LOOKUP_PREFER_INTERNET_NAMES non viene specificato, per gli account AAD viene restituito il nome dello stile NT4 del modulo AzureAD\foo. Il nome dello stile NT4 è specifico del computer e il relativo utilizzo deve essere valutato attentamente e, se possibile, deve essere evitato. Per MicrosoftAccounts se LSA_LOOKUP_PREFER_INTERNET_NAMES non viene specificato, il SID locale dell'account viene convertito nel nome SAM locale e il SID Internet si traduce nel nome UPN.
Per i SID dell'account, la stringa restituita nel membro Name è il nome isolato dell'account, ad esempio user_name. Se è necessario il nome composito dell'account, ad esempio Acctg\user_name, ottenere il nome di dominio dal buffer ReferencedDomains e aggiungere una barra rovesciata e il nome isolato.
Se la funzione LsaLookupSids2 non può tradurre un SID, la funzione usa l'algoritmo seguente:
- Se il dominio SID è noto, il buffer ReferencedDomains contiene una voce per il dominio e la stringa restituita nel parametro Name è una rappresentazione Unicode dell'identificatore relativo dell'account dal SID.
- Se il dominio SID non è noto, la stringa restituita nel parametro Name è una rappresentazione Unicode dell'intero SID e non esiste alcun record di dominio per questo SID nel buffer ReferencedDomains .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | ntsecapi.h |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |