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
指向缓冲区的指针,该缓冲区接收 SID 结构,该结构对应于 lpAccountName 参数指向的帐户名称。 如果此参数为 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) 和 用户主体名称 (UPN) (例如 someone@example.com ,) 。
除了查找本地帐户、本地域帐户和显式受信任的域帐户外, LookupAccountName 还可以查找林中任何域中任何帐户的名称。
注意
winbase.h 标头将 LookupAccountName 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |