LsaLookupNames 函式 (ntsecapi.h)
LsaLookupNames 函式會擷取對應至使用者、群組或本地組名稱陣列 (S) ID 的安全性識別碼。
LsaLookupNames 函式會由 LsaLookupNames2 函式取代。 應用程式應該使用 LsaLookupNames2 函式來確保未來的相容性。
LsaLookupNames 函式也可以擷取計算機帳戶。
語法
NTSTATUS LsaLookupNames(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Count,
[in] PLSA_UNICODE_STRING Names,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_SID *Sids
);
參數
[in] PolicyHandle
Policy 物件的句柄。 句柄必須具有POLICY_LOOKUP_NAMES訪問許可權。 如需詳細資訊,請參閱 開啟原則物件句柄。
[in] Count
指定 Names 陣列中的名稱數目。 這也是 Sids 陣列中傳回的項目數。 此值必須小於或等於 1000。
[in] Names
包含要查閱之名稱之 LSA_UNICODE_STRING 結構的陣列指標。 這些結構中的字串可以是使用者、群組或本地組帳戶的名稱,或功能變數名稱。 功能變數名稱可以是 DNS 功能變數名稱或 NetBIOS 功能變數名稱。
如需名稱字串格式的詳細資訊,請參閱。
[out] ReferencedDomains
接收 LSA_REFERENCED_DOMAIN_LIST 結構的指標。 這個結構的 Domains 成員是一個數位列,其中包含找到名稱的每個定義域的專案。 Sids 陣列中每個專案的 DomainIndex 成員是找到名稱之網域的 Domains 陣列專案索引。
當您完成使用傳回的指標時,請呼叫 來釋放記憶體
LsaFreeMemory 函式 。 即使函式因錯誤碼STATUS_NONE_MAPPED或STATUS_SOME_NOT_MAPPED而失敗,仍必須釋放此記憶體
[out] Sids
接收 LSA_TRANSLATED_SID 結構的陣列指標。 Sids 陣列中的每個專案都包含 Names 陣列中對應專案的 SID 資訊。
當您完成使用傳回的指標時,請呼叫 來釋放記憶體
LsaFreeMemory 函式 。 即使函式因錯誤碼STATUS_NONE_MAPPED或STATUS_SOME_NOT_MAPPED而失敗,仍必須釋放此記憶體
傳回值
如果函式成功,函式會傳回下列其中一個 NTSTATUS 值。
值 | Description |
---|---|
|
某些名稱無法翻譯。 這是參考層級傳回值。 |
|
找到並成功翻譯所有名稱。 |
如果函式失敗,則傳回值是下列 NTSTATUS 值或其中一個 LSA 原則函式傳回值。
值 | Description |
---|---|
|
未翻譯任何名稱。 |
|
Names 陣列參數太大。 |
使用 LsaNtStatusToWinError 函式,將 NTSTATUS 程式代碼轉換成 Windows 錯誤碼。
備註
警告
例如, (使用完整帳戶名稱,例如,domain_name\user_name) 而不是隔离名称 (,例如user_name) 。 完整名稱明確,並在執行查閱時提供更佳的效能。 此函式也支援 (的完整 DNS 名稱,例如,example.example.com\user_name) 和用户 主體名稱 (UPN) (例如 someone@example.com) 。
警告
如需隔離名稱限制的詳細資訊,請參閱 LsaLookupNames2 檔。
LsaLookupNames 函式會使用下列演算法來轉譯帳戶名稱。
轉譯名稱
- 如果名稱是已知名稱,例如 Local 或 Interactive,則函式會傳回對應的已知 安全性標識碼 (SID) 。
- 如果名稱是內建網域的名稱,函式會傳回該網域的 SID。
- 如果名稱是帳戶網域的名稱,函式會傳回該網域的 SID。
- 如果名稱是主要網域的名稱,函式會傳回該網域的SID。
- 如果名稱是受信任網域的其中一個名稱,函式會傳回該網域的 SID。
- 如果名稱是內建網域中的使用者、群組或本機群組帳戶,函式會傳回該帳戶的 SID。
- 如果名稱是本機系統上帳戶網域中的使用者、群組或本地組帳戶,則函式會傳回該帳戶的 SID。
- 如果在快取中找到名稱,函式會傳回該帳戶的SID。
- 如果名稱是主要網域中的使用者、群組或本機群組,則函式會傳回該帳戶的 SID。
- 在主要網域中尋找之後,主要網域會尋找其每個信任的網域。
- 否則,不會翻譯名稱。
除了查閱本機帳戶、本機網域帳戶和明確信任的網域帳戶之外, LsaLookupNames 還可以查閱 Windows 樹系中任何網域中任何帳戶的名稱。
範例
如需呼叫此函式的範例,請參閱 在名稱與 SID 之間翻譯。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ntsecapi.h |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |