LsaRemoveAccountRights 函数 (ntsecapi.h)

LsaRemoveAccountRights 函数从帐户中删除一个或多个特权。 可以指定要删除的特权,也可以设置标志以删除所有特权。 删除所有权限时, 函数会删除帐户。 如果指定不由帐户持有的特权,该函数将忽略这些权限。

语法

NTSTATUS LsaRemoveAccountRights(
  [in] LSA_HANDLE          PolicyHandle,
  [in] PSID                AccountSid,
  [in] BOOLEAN             AllRights,
  [in] PLSA_UNICODE_STRING UserRights,
  [in] ULONG               CountOfRights
);

参数

[in] PolicyHandle

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

[in] AccountSid

指向从中删除特权的帐户的 SID) (安全标识符 的指针。

[in] AllRights

如果 为 TRUE,则函数将删除所有特权并删除帐户。 在这种情况下, 函数将忽略 UserRights 参数。 如果 为 FALSE,则函数将删除 UserRights 参数指定的特权。

[in] UserRights

指向LSA_UNICODE_STRING结构的数组 指针。 每个结构都包含要从帐户中删除的特权的名称。 有关特权名称的列表,请参阅 特权常量

[in] CountOfRights

指定 UserRights 数组中的元素数。

返回值

如果函数成功,则返回值STATUS_SUCCESS。

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

说明
STATUS_NO_SUCH_PRIVILEGE
其中一个特权名称无效。
STATUS_INVALID_PARAMETER
指示 UserRights 参数为 NULL,AllRights 参数为 FALSE
 

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

要求

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

另请参阅

LSA_UNICODE_STRING

LsaAddAccountRights

LsaEnumerateAccountRights