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 缓冲区的大小(以 TCHAR为单位)。 如果函数因缓冲区太小或 cchName 为零而失败, cchName 将接收所需的缓冲区大小,包括终止 null 字符。

[out, optional] ReferencedDomainName

指向缓冲区的指针,该缓冲区接收以 null 结尾的字符串,该字符串包含在其中找到帐户名称的域的名称。

在服务器上,本地计算机安全数据库中大多数帐户返回的域名是服务器作为域控制器的域的名称。

在工作站上,本地计算机安全数据库中大多数帐户返回的域名是系统最后一次启动时的计算机名称, (反斜杠) 排除。 如果计算机名称发生更改,旧名称将继续作为域名返回,直到系统重启。

某些帐户由系统预定义。 为这些帐户返回的域名为 BUILTIN。

[in, out] cchReferencedDomainName

输入时,指定 lpReferencedDomainName 缓冲区的大小(以 TCHAR为单位)。 如果函数因缓冲区太小而失败,或者 cchReferencedDomainName 为零, cchReferencedDomainName 将接收所需的缓冲区大小,包括终止 null 字符。

[out] peUse

指向变量的指针,该变量接收指示帐户类型的 SID_NAME_USE 值。

返回值

如果函数成功,该函数将返回非零值。

如果函数失败,则返回零。 要获得更多的错误信息,请调用 GetLastError。

注解

LookupAccountSid 函数尝试通过首先检查已知 SID 列表来查找指定 SID 的名称。 如果提供的 SID 不对应于已知的 SID,则函数会检查内置和管理定义的本地帐户。 接下来,函数检查主域。 将对照与其 SID 前缀对应的受信任域检查主域无法识别的安全标识符

如果函数找不到 SID 的帐户名称, GetLastError 将返回ERROR_NONE_MAPPED。 如果网络超时阻止函数查找名称,则可能会发生这种情况。 对于没有相应帐户名称的 SID,例如标识登录会话登录 SID,也会发生这种情况。

除了查找本地帐户、本地域帐户和显式受信任的域帐户的 SID 外, LookupAccountSid 还可以查找林中任何域中任何帐户的 SID,包括仅在林中某个帐户的 SIDhistory 字段中显示的 SID。 SIDhistory 字段存储已从另一个域移动的帐户的前 SID。 若要查找 SID,LookupAccountSid 会查询林的全局编录。

示例

有关使用此函数的示例,请参阅 在访问令牌中搜索 SID

注意

winbase.h 标头将 LookupAccountSid 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

访问控制概述

基本访问控制函数

EqualPrefixSid

LookupAccountName

SID

SID_NAME_USE