共用方式為


LsaLookupSids 函式 (ntsecapi.h)

[LsaLookupSids 可用於需求一節中指定的作業系統。 它在後續版本中可能會變更或無法使用。 請改用 LsaLookupSids2。]

LsaLookupSids 函式會查閱對應至安全性標識符陣列的名稱, (SID) 。 如果 LsaLookupSids 找不到對應至 SID 的名稱,則函式會以字元形式傳回 SID。

語法

NTSTATUS LsaLookupSids(
  [in]  LSA_HANDLE                  PolicyHandle,
  [in]  ULONG                       Count,
  [in]  PSID                        *Sids,
  [out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  [out] PLSA_TRANSLATED_NAME        *Names
);

參數

[in] PolicyHandle

Policy 物件的句柄。 此句柄必須具有POLICY_LOOKUP_NAMES訪問許可權。 如需詳細資訊,請參閱 開啟原則物件句柄

[in] Count

指定 Sids 陣列中的 SID 數目。 這也是 Names 陣列中傳回的項目數。 此值必須小於或等於 20480。

[in] Sids

要查閱之 SID 指標陣列的指標。 SID 可以是已知的 SID、使用者、群組或本機群組帳戶 SID 或網域 SID。

[out] ReferencedDomains

接收指向 LSA_REFERENCED_DOMAIN_LIST 結構的指標。 這個結構的 Domains 成員是數位,其中包含找到 SID 的每個定義域的專案。 每個網域的專案都包含網域的 SID 和一般名稱。 針對 Windows 網域,一般名稱是 NetBIOS 名稱。 對於具有非 Windows 網域的連結,一般名稱是該網域的識別名稱,或為 NULL

當您不再需要資訊時,請將傳回的指標傳遞至 LsaFreeMemory。 即使函式因錯誤碼STATUS_NONE_MAPPEDSTATUS_SOME_NOT_MAPPED而失敗,仍必須釋放此記憶體

[out] Names

接收 LSA_TRANSLATED_NAME 結構的陣列指標。 Names 陣列中的每個專案都包含 Sids 陣列中對應項目的名稱資訊。 針對帳戶 SID,每個結構的 Name 成員都包含帳戶的隔離名稱。 對於網域 SID,Name 成員無效。

Names 陣列中每個專案的 DomainIndex 成員是 ReferencedDomains 參數所傳回之 Domains 陣列中專案的索引。 索引會識別找到 SID 之網域的 Domains 陣列。

當您不再需要資訊時,請將傳回的指標傳遞至 LsaFreeMemory。 即使函式因錯誤碼STATUS_NONE_MAPPEDSTATUS_SOME_NOT_MAPPED而失敗,仍必須釋放此記憶體

傳回值

如果函式成功,傳回值就是下列其中一個 NTSTATUS 值。

傳回碼 Description
STATUS_SOME_NOT_MAPPED
無法翻譯部分 SID。 這是參考層級傳回值。
STATUS_SUCCESS
找到並成功轉譯所有 SID。
 

如果函式失敗,則傳回值是 NTSTATUS 程式碼,可以是下列其中一個值或其中一個 LSA原則函式傳回值

傳回碼 Description
STATUS_NONE_MAPPED
未翻譯任何 SID。 這是錯誤層級傳回值。
STATUS_TOO_MANY_SIDS
Sids 陣列參數太大。
 

您可以使用 LsaNtStatusToWinError 函式,將 NTSTATUS 程式代碼轉換成 Windows 錯誤碼。

備註

對於帳戶 SID,Name 成員中傳回的字串是帳戶的隔離名稱 (,例如,user_name) 。 如果您需要帳戶的複合名稱 (例如 Acctg\user_name) ,請從 ReferencedDomains 緩衝區取得功能變數名稱,並附加反斜杠和隔離的名稱。

如果 LsaLookupSids 函式無法轉譯 SID,函式會使用下列演算法:

  1. 如果已知 SID 的網域, ReferencedDomains 緩衝區會包含網域的專案,且 Names 參數中傳回的字串是帳戶相對標識符的 Unicode 表示法, (RID) 。
  2. 如果不知道 SID 的網域, 則 Names 參數中傳回的字串是整個 SID 的 Unicode 表示法,而且 ReferencedDomains 緩衝區中沒有此 SID 的網域記錄。
除了查閱本機帳戶、本機網域帳戶和明確信任的網域帳戶以外, LsaLookupSids 還可以查詢 Windows 樹系中任何網域中任何帳戶的 SID,包括只出現在樹系中帳戶 SIDhistory 字段中的 SIDSIDhistory 字段會儲存已從另一個網域移動之帳戶的先前 SID。 若要執行這些搜尋,函式會查詢樹系的全域編錄。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 ntsecapi.h
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

LSA_REFERENCED_DOMAIN_LIST

LSA_TRANSLATED_NAME

LsaOpenPolicy