LsaOpenPolicy 函数 (ntsecapi.h)

LsaOpenPolicy 函数打开本地或远程系统上 Policy 对象的句柄。

必须以管理员身份运行进程,以便调用不会因ERROR_ACCESS_DENIED而失败。

语法

NTSTATUS LsaOpenPolicy(
  [in]      PLSA_UNICODE_STRING    SystemName,
  [in]      PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
  [in]      ACCESS_MASK            DesiredAccess,
  [in, out] PLSA_HANDLE            PolicyHandle
);

参数

[in] SystemName

指向包含目标系统名称 的LSA_UNICODE_STRING 结构的指针。 名称的格式可以是“ComputerName”或“\\ComputerName”。 如果此参数为 NULL,则该函数将打开本地系统上的 Policy 对象。

[in] ObjectAttributes

指向指定连接属性 的LSA_OBJECT_ATTRIBUTES 结构的指针。 不使用结构成员;将其初始化为 NULL 或零。

[in] DesiredAccess

指定所请求的访问权限 的ACCESS_MASK 。 如果目标系统的 DACL 不允许调用方访问所请求的访问,则函数失败。 若要确定所需的访问权限,请参阅要使用策略句柄的 LSA 函数的文档。

[in, out] PolicyHandle

指向接收 Policy 对象的句柄的LSA_HANDLE变量的指针。

如果不再需要此句柄,请将其传递给 LsaClose 函数以将其关闭。

返回值

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

如果函数失败,它将返回 NTSTATUS 代码。 有关详细信息,请参阅 LSA 策略函数返回值

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

注解

若要管理本地或远程系统的本地安全策略,必须调用 LsaOpenPolicy 函数以与该系统的 LSA 子系统建立会话。 LsaOpenPolicy 连接到目标系统的 LSA,并将句柄返回到该系统的 Policy 对象。 可以在后续 LSA 函数调用中使用此句柄来管理目标系统的 本地安全策略 信息。

有关演示如何调用此函数的示例,请参阅 打开策略对象句柄

要求

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

另请参阅

LSA_HANDLE

LSA_OBJECT_ATTRIBUTES

LSA_UNICODE_STRING

LsaClose

LsaNtStatusToWinError