了解 WDAC 策略设置

Windows Defender应用程序控制 (WDAC) 策略公开了“设置”部分,策略作者可在其中定义任意安全设置。 安全设置为已启用安全启动的系统提供本地管理员无篡改设置,并启用了策略签名。 设置包括提供程序、密钥、ValueName 和设置值。 设置值可以是 boolean、ulong、binary 和 string 类型。 应用程序可以使用 WldpQuerySecurityPolicy 查询策略设置。

Windows Defender应用程序控制策略的示例设置部分:

<Settings>
  <Setting Provider="Contoso" Key="FooApplication" ValueName="DisableMacroExecution">
    <Value>
      <Boolean>true</Boolean>
    </Value>
  </Setting>
</Settings>

示例方案

在具有活动Windows Defender应用程序控制策略的系统上使用时,可能需要限制其功能的应用程序。 应用程序作者可以定义 WDAC 策略,设置其应用程序查询,以禁用某些功能。 例如,如果 Contoso 的 Foo 应用程序想要禁用有风险的功能(如宏执行),他们可以定义 WDAC 策略设置,并在运行时查询它。 然后,如果 Contoso 不希望 Foo Application 在具有 WDAC 策略的系统上执行宏,则 Contoso 可以指示 IT 管理员在其 WDAC 策略中配置设置。

WldpQuerySecurityPolicy

查询Windows Defender应用程序控制策略的安全设置的 API。

语法

HRESULT WINAPI WldpQuerySecurityPolicy(
    _In_ const UNICODE_STRING * Provider,
    _In_ const UNICODE_STRING * Key,
    _In_ const UNICODE_STRING * ValueName,
    _Out_ PWLDP_SECURE_SETTING_VALUE_TYPE ValueType,
    _Out_writes_bytes_opt_(*ValueSize) PVOID Value,
    _Inout_ PULONG ValueSize)

参数

提供程序 [in] 设置提供程序名称。

键 [in]

设置提供程序“提供程序”下 Key-Value 对的键名称。

ValueName [in]

“键值”对的值名称。

ValueType [in, out]

用于接收值类型的指针。

值 [in, out]

指向用于接收值的缓冲区的指针。 缓冲区的大小应为“ValueSize”。 如果此值为 NULL,则此函数返回 Value 所需的缓冲区大小。

ValueSize [in, out]

输入时,它指示“Value”的缓冲区大小。 成功返回时,它指示写入值缓冲区的数据大小。

返回值

如果成功,此方法返回S_OK,否则返回失败代码。