LsaEnumerateAccountsWithUserRight 函数 (ntsecapi.h)

LsaEnumerateAccountsWithUserRight 函数返回本地安全机构数据库中的帐户, (LSA) Policy 对象具有指定特权。 此函数返回的帐户直接通过用户帐户持有指定的权限,而不是作为组成员身份的一部分。

语法

NTSTATUS LsaEnumerateAccountsWithUserRight(
  [in]  LSA_HANDLE          PolicyHandle,
  [in]  PLSA_UNICODE_STRING UserRight,
  [out] PVOID               *Buffer,
  [out] PULONG              CountReturned
);

参数

[in] PolicyHandle

Policy 对象的句柄。 句柄必须具有POLICY_LOOKUP_NAMES和POLICY_VIEW_LOCAL_INFORMATION用户权限。 有关详细信息,请参阅 打开策略对象句柄

[in] UserRight

指向指定特权名称 的LSA_UNICODE_STRING 结构的指针。 有关特权列表,请参阅 特权常量 和帐户权限常量。

如果此参数为 NULL,则该函数枚举与 Policy 对象关联的系统的 LSA 数据库中的所有帐户。

[out] Buffer

指向变量的指针,该变量接收指向 LSA_ENUMERATION_INFORMATION 结构的数组的指针。 每个结构的 Sid 成员都是指向拥有指定特权的帐户 的安全标识符 (SID) 的指针。

如果不再需要这些信息,请通过将返回的指针传递到 LsaFreeMemory 函数来释放内存。

[out] CountReturned

指向一个变量的指针,该变量接收 EnumerationBuffer 参数中返回的条目数。

返回值

如果函数成功,该函数将返回STATUS_SUCCESS。

如果函数失败,它将返回 NTSTATUS 代码,可以是以下值之一或 LSA 策略函数返回值之一。

说明
STATUS_NO_SUCH_PRIVILEGE
指定的特权字符串不是有效的特权。
STATUS_NO_MORE_ENTRIES
没有具有指定权限的帐户。
 

可以使用 LsaNtStatusToWinError 函数将 NTSTATUS 代码转换为 Windows 错误代码。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 ntsecapi.h
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

LSA_ENUMERATION_INFORMATION

LSA_UNICODE_STRING

LsaFreeMemory

LsaOpenPolicy