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,則帳戶名稱轉譯會在本機系統上開始。 如果無法在本機系統上解析名稱,此函式會嘗試使用本機系統信任的域控制器來解析名稱。 一般而言,只有當帳戶位於不受信任的網域中,且該網域中計算機的名稱已知時,才會指定 lpSystem Name 的值。
[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 緩衝區 TCHAR秒的大小。 如果函式因為緩衝區太小而失敗,則此變數會收到所需的緩衝區大小,包括終止 null 字元。 如果 ReferencedDomainName 參數 NULL,此參數必須是零。
[out] peUse
SID_NAME_USE 列舉型別的指標,指出函式傳回時帳戶的類型。
傳回值
如果函式成功,函式會傳回非零。
如果函式失敗,則會傳回零。 如需擴充錯誤資訊,請呼叫 getLastError
言論
LookupAccountName 函式會先檢查已知 SID 清單,嘗試尋找指定名稱的 SID。 如果名稱未對應至已知的 SID,函式會檢查內建和系統管理定義的本機帳戶。 接下來,函式會檢查主要網域。 如果找不到該名稱,則會檢查信任的網域。
使用完整帳戶名稱(例如,domain_name\user_name),而不是隔離名稱(例如,user_name)。 完整名稱明確,而且在執行查閱時提供更好的效能。 此函式也支援完整 DNS 名稱(例如,example.example.com\user_name)和 用戶主體名稱(例如,someone@example.com)。
除了查閱本機帳戶、本機網域帳戶和明確信任的網域帳戶之外,LookupAccountName 可以查閱樹系中任何網域中任何帳戶的名稱。
注意
winbase.h 標頭會將LookupAccountName定義為別名,根據UNICODE預處理器常數的定義,自動選取此函式的ANSI或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
支援的最低伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平臺 | 窗戶 |
標頭 | winbase.h (包括 Windows.h) |
連結庫 | Advapi32.lib |
DLL | Advapi32.dll |