Fungsi LsaLookupSids2 (ntsecapi.h)

Fungsi LsaLookupSids2 mencari nama yang sesuai dengan array pengidentifikasi keamanan (SID) dan mendukung identitas penyedia Internet. Jika LsaLookupSids2 tidak dapat menemukan nama yang sesuai dengan SID, fungsi mengembalikan SID dalam bentuk karakter. Anda harus menggunakan fungsi ini alih-alih fungsi LsaLookupSids .

Sintaks

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
);

Parameter

[in] PolicyHandle

Handel ke objek Policy . Handel ini harus memiliki hak akses POLICY_LOOKUP_NAMES. Untuk informasi selengkapnya, lihat Membuka Penanganan Objek Kebijakan.

[in] LookupOptions

Bendera yang mengubah perilaku pencarian.

Nilai Makna
LSA_LOOKUP_DISALLOW_CONNECTED_ACCOUNT_INTERNET_SID
SID Internet dari penyedia identitas untuk akun yang terhubung tidak diizinkan. Akun yang terhubung adalah akun yang memiliki akun bayangan terkait di database SAM lokal yang terhubung ke penyedia identitas online. Misalnya, MicrosoftAccount adalah akun tersambung.
LSA_LOOKUP_PREFER_INTERNET_NAMES
Mengembalikan nama internet. Jika tidak, nama gaya NT4 (domain\nama pengguna) dikembalikan. Pengecualiannya adalah jika SID internet Akun Microsoft ditentukan, dalam hal ini nama internet dikembalikan kecuali LSA_LOOKUP_DISALLOW_NON_WINDOWS_INTERNET_SID ditentukan.
LSA_LOOKUP_RETURN_LOCAL_NAMES
Selalu mengembalikan nama akun SAM lokal bahkan untuk identitas penyedia Internet.

[in] Count

Menentukan jumlah SID dalam array Sids . Ini juga merupakan jumlah entri yang dikembalikan dalam array Nama . Nilai ini harus kurang dari atau sama dengan 20480.

[in] Sids

Arahkan ke array penunjuk SID untuk mencari. SID dapat menjadi SID terkenal, pengguna, grup, atau SID akun grup lokal, atau SID domain.

[out] ReferencedDomains

Menerima penunjuk ke penunjuk ke struktur LSA_REFERENCED_DOMAIN_LIST . Anggota Domain dari struktur ini adalah array yang berisi entri untuk setiap domain tempat SID ditemukan. Entri untuk setiap domain berisi SID dan nama datar domain. Untuk domain Windows, nama datarnya adalah nama NetBIOS. Untuk tautan dengan domain non-Windows, nama datar adalah nama pengidentifikasi domain tersebut, atau null.

Ketika Anda tidak lagi memerlukan informasi, teruskan pointer yang dikembalikan ke LsaFreeMemory. Memori ini harus dibebaskan bahkan ketika fungsi gagal dengan salah satu kode kesalahan STATUS_NONE_MAPPED atau STATUS_SOME_NOT_MAPPED

[out] Names

Menerima penunjuk ke array struktur LSA_TRANSLATED_NAME . Setiap entri dalam array Nama berisi informasi nama untuk entri terkait dalam array Sids . Untuk SID akun, anggota Nama dari setiap struktur berisi nama akun yang terisolasi. Untuk SID domain, anggota Nama tidak valid.

Anggota DomainIndex dari setiap entri dalam array Nama adalah indeks entri dalam array Domain yang dikembalikan dalam parameter ReferencedDomains . Indeks mengidentifikasi array Domain untuk domain tempat SID ditemukan.

Ketika Anda tidak lagi memerlukan informasi, teruskan pointer yang dikembalikan ke LsaFreeMemory. Memori ini harus dibebaskan bahkan ketika fungsi gagal dengan salah satu kode kesalahan STATUS_NONE_MAPPED atau STATUS_SOME_NOT_MAPPED

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah salah satu nilai NTSTATUS berikut.

Menampilkan kode Deskripsi
STATUS_SOME_NOT_MAPPED
Beberapa SID tidak dapat diterjemahkan. Ini adalah nilai pengembalian tingkat informasi.
STATUS_SUCCESS
Semua SID ditemukan dan berhasil diterjemahkan.
 

Jika fungsi gagal, nilai yang dikembalikan adalah kode NTSTATUS , yang dapat menjadi salah satu nilai berikut atau salah satu Nilai Pengembalian Fungsi Kebijakan LSA.

Menampilkan kode Deskripsi
STATUS_NONE_MAPPED
Tidak ada SID yang diterjemahkan. Ini adalah nilai pengembalian tingkat kesalahan.
STATUS_TOO_MANY_SIDS
Parameter array Sids terlalu besar.
 

Anda dapat menggunakan fungsi LsaNtStatusToWinError untuk mengonversi kode NTSTATUS ke kode kesalahan Windows.

Keterangan

Bendera LSA_LOOKUP_PREFER_INTERNET_NAMES harus digunakan untuk akun internet seperti akun MicrosoftAccount dan Azure Active Directory. Ketika bendera ini ditentukan, maka pencarian SID-Name mengembalikan UPN akun dalam bentuk MicrosoftAccount\foo@outlook.com atau AzureAD\foo@contoso.com. Untuk Akun Microsoft, SID SAM lokal dan SID internet mengakibatkan UPN dikembalikan jika bendera ini ditentukan. Jika LSA_LOOKUP_PREFER_INTERNET_NAMES tidak ditentukan maka untuk akun AAD, nama gaya NT4 dari formulir AzureAD\foo dikembalikan. Nama gaya NT4 spesifik untuk mesin dan penggunaannya harus dievaluasi dengan hati-hati dan jika memungkinkan harus dihindari. Untuk MicrosoftAccounts jika LSA_LOOKUP_PREFER_INTERNET_NAMES tidak ditentukan maka SID lokal akun diterjemahkan ke nama SAM lokal, dan SID internet diterjemahkan ke nama UPN.

Untuk SID akun, string yang dikembalikan di anggota Nama adalah nama akun yang terisolasi (misalnya, user_name). Jika Anda memerlukan nama komposit akun (misalnya, Acctg\user_name), dapatkan nama domain dari buffer ReferencedDomains dan tambahkan garis miring terbalik dan nama yang terisolasi.

Jika fungsi LsaLookupSids2 tidak dapat menerjemahkan SID, fungsi menggunakan algoritma berikut:

  1. Jika domain SID diketahui, buffer ReferencedDomains berisi entri untuk domain, dan string yang dikembalikan dalam parameter Nama adalah representasi Unicode dari pengidentifikasi relatif akun (RID) dari SID.
  2. Jika domain SID tidak diketahui, string yang dikembalikan dalam parameter Nama adalah representasi Unicode dari seluruh SID, dan tidak ada catatan domain untuk SID ini di buffer ReferencedDomains .
Selain mencari SID untuk akun lokal, akun domain lokal, dan akun domain tepercaya secara eksplisit, LsaLookupSids2 dapat mencari SID untuk akun apa pun di domain apa pun di hutan Windows, termasuk SID yang hanya muncul di bidang SIDhistory akun di forest. Bidang SIDhistory menyimpan SID sebelumnya dari akun yang telah dipindahkan dari domain lain. Untuk melakukan pencarian ini, fungsi meminta katalog global forest.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header ntsecapi.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

LSA_REFERENCED_DOMAIN_LIST

LSA_TRANSLATED_NAME

LsaOpenPolicy