LookupAccountNameA 函式 (winbase.h)
LookupAccountName 函式接受系統名稱和帳戶作為輸入。 它會擷取帳戶 的安全性標識碼 (SID) ,以及找到帳戶的功能變數名稱。
LsaLookupNames 函式也可以擷取計算機帳戶。
語法
BOOL LookupAccountNameA(
[in, optional] LPCSTR lpSystemName,
[in] LPCSTR lpAccountName,
[out, optional] PSID Sid,
[in, out] LPDWORD cbSid,
[out, optional] LPSTR ReferencedDomainName,
[in, out] LPDWORD cchReferencedDomainName,
[out] PSID_NAME_USE peUse
);
參數
[in, optional] lpSystemName
指定系統名稱之 Null 終止字元字串的指標。 此字串可以是遠端電腦的名稱。 如果此字串為 NULL,帳戶名稱翻譯會從本機系統開始。 如果無法在本機系統上解析名稱,此函式會嘗試使用本機系統信任的域控制器解析名稱。 一般而言,只有在帳戶位於不受信任的網域且該網域中計算機的名稱已知時,才指定 lpSystemName 的值。
[in] lpAccountName
指定帳戶名稱之 Null 終止字串的指標。
使用domain_name\user_name格式的完整字串,以確保 LookupAccountName 會在所需的網域中尋找帳戶。
[out, optional] Sid
緩衝區的指標,接收對應至 lpAccountName 參數所指向之帳戶名稱的 SID 結構。 如果此參數為 NULL,cbSid 必須是零。
[in, out] cbSid
變數的指標。 在輸入時,這個值會指定 Sid 緩衝區的大小,以位元組為單位。 如果函式因為緩衝區太小或 cbSid 為零而失敗,則此變數會收到所需的緩衝區大小。
[out, optional] ReferencedDomainName
緩衝區的指標,接收找到帳戶名稱的功能變數名稱。 對於未加入網域的計算機,此緩衝區會收到計算機名稱。 如果此參數為 NULL,函式會傳回所需的緩衝區大小。
[in, out] cchReferencedDomainName
變數的指標。 在輸入時,這個值會指定 ReferencedDomainName 緩衝區的大小,以 TCHARs 為單位。 如果函式因為緩衝區太小而失敗,此變數會收到必要的緩衝區大小,包括終止 Null 字元。 如果 ReferencedDomainName 參數為 NULL,此參數必須為零。
[out] peUse
SID_NAME_USE列舉型別的指標,指出函式傳回時帳戶的類型。
傳回值
如果函式成功,函式會傳回非零。
如果函式失敗,它會傳回零。 如需擴充錯誤資訊,請呼叫 GetLastError。
備註
LookupAccountName 函式會先檢查已知 SD 的清單,嘗試尋找指定名稱的 SID。 如果名稱未對應至已知的 SID,函式會檢查內建和管理定義的本機帳戶。 接下來,函式會檢查主要網域。 如果找不到該處的名稱,則會檢查受信任的網域。
例如, (使用完整帳戶名稱,例如,domain_name\user_name) 而不是隔离名称 (,例如user_name) 。 完整名稱明確,並在執行查閱時提供更佳的效能。 此函式也支援 (的完整 DNS 名稱,例如,example.example.com\user_name) 和用户 主體名稱 (UPN) (例如 someone@example.com) 。
除了查閱本機帳戶、本機網域帳戶和明確信任的網域帳戶之外, LookupAccountName 還可以查詢樹系中任何網域中任何帳戶的名稱。
注意
winbase.h 標頭會根據 UNICODE 預處理器常數的定義,將 LookupAccountName 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |