共用方式為


LookupAccountSidA 函式 (winbase.h)

LookupAccountSid 函式接受安全性標識碼 (SID) 作為輸入。 它會擷取此 SID 的帳戶名稱,以及找到此 SID 的第一個功能變數名稱。

語法

BOOL LookupAccountSidA(
  [in, optional]  LPCSTR        lpSystemName,
  [in]            PSID          Sid,
  [out, optional] LPSTR         Name,
  [in, out]       LPDWORD       cchName,
  [out, optional] LPSTR         ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

參數

[in, optional] lpSystemName

指定目標電腦的 Null 終止字元字串指標。 此字串可以是遠端電腦的名稱。 如果此參數為 NULL,帳戶名稱轉譯會從本機系統開始。 如果無法在本機系統上解析名稱,此函式會嘗試使用本機系統信任的域控制器解析名稱。 一般而言,只有在帳戶位於不受信任的網域且該網域中計算機的名稱已知時,才指定 lpSystemName 的值。

[in] Sid

要查閱 之 SID 的指標。

[out, optional] Name

緩衝區的指標,接收 以 Null 終止的字串,其中包含對應至 lpSid 參數的帳戶名稱。

[in, out] cchName

在輸入上,指定 lpName 緩衝區的 TCHARs 大小。 如果函式因為緩衝區太小或 cchName 為零而失敗, cchName 會收到必要的緩衝區大小,包括終止 的 Null 字元。

[out, optional] ReferencedDomainName

緩衝區的指標,接收 以 Null 結尾的字串,其中包含找到帳戶名稱的功能變數名稱。

在伺服器上,本機計算機安全性資料庫中大部分帳戶所傳回的功能變數名稱是伺服器為域控制器的網域名稱。

在工作站上,本機計算機安全性資料庫中大部分帳戶所傳回的功能變數名稱是計算機的名稱,從系統最後一個開始開始 (反斜杠會排除) 。 如果計算機名稱變更,舊名稱會繼續以功能變數名稱的形式傳回,直到系統重新啟動為止。

某些帳戶是由系統預先定義。 針對這些帳戶傳回的功能變數名稱是 BUILTIN。

[in, out] cchReferencedDomainName

在輸入上,指定 lpReferencedDomainName 緩衝區的大小,以 TCHARs 為單位。 如果函式因為緩衝區太小或 cchReferencedDomainName 為零而失敗, cchReferencedDomainName 會收到必要的緩衝區大小,包括終止 的 Null 字元。

[out] peUse

變數的指標,可接收表示帳戶類型的 SID_NAME_USE 值。

傳回值

如果函式成功,函式會傳回非零。

如果函式失敗,它會傳回零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

LookupAccountSid 函式會先檢查已知 SID 的清單,嘗試尋找指定 SID 的名稱。 如果提供的 SID 未對應至已知的 SID,則函式會檢查內建和管理定義的本機帳戶。 接下來,函式會檢查主要網域。 主要網域無法辨識的安全性標識符會根據對應至其 SID 前置詞的信任網域進行檢查。

如果函式找不到 SID 的帳戶名稱, GetLastError 會傳回ERROR_NONE_MAPPED。 如果網路逾時會防止函式尋找名稱,就會發生這種情況。 它也會發生在沒有對應帳戶名稱的 SID,例如識別登入工作階段登入 SID

除了查閱本機帳戶、本機網域帳戶和明確信任的網域帳戶以外, LookupAccountSid 還可以查詢樹系中任何網域中任何帳戶的 SID,包括只出現在樹系中帳戶 SIDhistory 字段中的 SID。 SIDhistory 字段會儲存已從另一個網域移動之帳戶的先前 SID。 若要查閱 SID,LookupAccountSid 會查詢樹系的全域編錄。

範例

如需使用此函式的範例,請參閱 在存取令牌中搜尋 SID

注意

winbase.h 標頭會根據 UNICODE 預處理器常數的定義,將 LookupAccountSid 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

存取控制 概觀

基本 存取控制 函式

EqualPrefixSid

LookupAccountName

SID

SID_NAME_USE