Windows Defender 应用程序控制(WDAC)可以通过限制允许用户运行的应用程序以及系统核心(内核)中运行的代码来帮助缓解许多安全威胁。 应用程序控制策略还可以阻止未签名的脚本和 MSI 文件,并限制 Windows PowerShell 在 ConstrainedLanguage
模式下运行。
详细了解 Windows的应用程序控制。
Windows Admin Center 需要额外的配置才能安装和管理 WDAC 强制实施的环境。 本文介绍管理 WDAC 强制环境时出现的这些要求和已知问题。
要求
以下部分提供了使用 Windows Admin Center 管理 WDAC 强制基础结构(服务器、客户端计算机或群集)的要求。
策略要求
根据用例,需要将一个或多个证书作为基本策略或补充策略的一部分添加到允许列表。 详细了解如何部署基本策略或补充策略。
- 案例 1:只有您管理的节点实施了 WDAC。
- 案例 2:托管节点和部署 Windows Admin Center 的计算机都强制实施 WDAC。
对于案例 1,只需在托管节点上的 WDAC 策略中将以下签名者规则列入允许列表。
<Signer ID="ID_SIGNER_S_XXXXX" Name="Microsoft Code Signing PCA 2011">
<CertRoot Type="TBS" Value="F6F717A43AD9ABDDC8CEFDDE1C505462535E7D1307E630F9544A2D14FE8BF26E" />
<CertPublisher Value="Microsoft Corporation" />
</Signer>
对于案例 2,必须将前置签名者规则添加到 您的托管节点和部署 Windows Admin Center 的计算机的 允许列表中。 此外,必须将以下签名者规则添加到允许列表 ,仅在您部署 Windows Admin Center 的计算机上才需实行。
<Signer ID="ID_SIGNER_S_XXXXX" Name="Microsoft Code Signing PCA 2011">
<CertRoot Type="TBS" Value="F6F717A43AD9ABDDC8CEFDDE1C505462535E7D1307E630F9544A2D14FE8BF26E" />
<CertPublisher Value="Microsoft 3rd Party Application Component" />
</Signer>
<Signer ID="ID_SIGNER_S_XXXXX" Name="Microsoft Code Signing PCA 2011">
<CertRoot Type="TBS" Value="F6F717A43AD9ABDDC8CEFDDE1C505462535E7D1307E630F9544A2D14FE8BF26E" />
<CertPublisher Value=".NET" />
</Signer>
如果使用的是低于 2410 的 Windows Admin Center 版本,则不需要具有 CertPublisher Value=".NET"
的签名者规则。 但是,这些较旧版本要求将以下文件/哈希规则列入允许列表,仅在部署 Windows Admin Center 的计算机上:
<FileRules>
<!--Requirement from WAC to allow files from WiX-->
<Allow ID="ID_ALLOW_E_X_XXXX_X" FriendlyName="WiX wixca.dll" Hash="9DE61721326D8E88636F9633AA37FCB885A4BABE" />
<Allow ID="ID_ALLOW_E_X_XXXX_XXXX_X" FriendlyName="WiX wixca.dll" Hash="B216DFA814FC856FA7078381291C78036CEF0A05" />
<Allow ID="ID_ALLOW_E_X_XXXX_X" FriendlyName="WiX wixca.dll" Hash="233F5E43325615710CA1AA580250530E06339DEF861811073912E8A16B058C69" />
<Allow ID="ID_ALLOW_E_X_XXXX_XXXX_X" FriendlyName="WiX wixca.dll" Hash="B216DFA814FC856FA7078381291C78036CEF0A05" />
<Allow ID="ID_ALLOW_E_X_XXXX_X" FriendlyName="WiX wixca.dll 2" Hash="EB4CB5FF520717038ADADCC5E1EF8F7C24B27A90" />
<Allow ID="ID_ALLOW_E_X_XXXX_XXXX_X" FriendlyName="WiX wixca.dll 2" Hash="6C65DD86130241850B2D808C24EC740A4C509D9C" />
<Allow ID="ID_ALLOW_E_X_XXXX_X" FriendlyName="WiX wixca.dll 2" Hash="C8D190D5BE1EFD2D52F72A72AE9DFA3940AB3FACEB626405959349654FE18B74" />
<Allow ID="ID_ALLOW_E_X_XXXX_XXXX_X" FriendlyName="WiX wixca.dll 2" Hash="6C65DD86130241850B2D808C24EC740A4C509D9C" />
<Allow ID="ID_ALLOW_E_X_XXXX_X" FriendlyName="WiX firewall.dll" Hash="2F0903D4B21A0231ADD1B4CD02E25C7C4974DA84" />
<Allow ID="ID_ALLOW_E_X_XXXX_XXXX_X" FriendlyName="WiX firewall.dll" Hash="868635E434C14B65AD7D7A9AE1F4047965740786" />
<Allow ID="ID_ALLOW_E_X_XXXX_X" FriendlyName="WiX firewall.dll" Hash="5C29B8255ACE0CD94C066C528C8AD04F0F45EBA12FCF94DA7B9CA1B64AD4288B" />
<Allow ID="ID_ALLOW_E_X_XXXX_XXXX_X" FriendlyName="WiX firewall.dll" Hash="868635E434C14B65AD7D7A9AE1F4047965740786" />
</FileRules>
策略创建工具/脚本应自动生成 Signer ID
和 Allow ID
(即 Signer ID="ID_SIGNER_S_XXXXX"
)。 有关详细信息,请参阅 WDAC 文档。
提示
适用于企业的 应用控制向导 有助于创建和编辑 WDAC 策略。 请记住,在创建新策略时,无论是使用向导还是 PowerShell 命令,都使用二进制文件上的 Publisher
规则来生成规则。 例如,使用向导时,可以根据 Windows Admin Center .msi 文件为 Case 1 生成 WDAC 策略。 对于案例 2,仍可使用向导,但需要手动编辑 WDAC 策略以包含列出的签名者和哈希规则。
网络要求
默认情况下,Windows Admin Center 通过 WinRM 通过 HTTP(端口 5985)或 HTTPS(端口 5986)与服务器通信。 对于实施 WDAC 的架构,Windows 管理中心还需要 SMB 访问托管节点(TCP 端口 445)。
权限
要使 Windows Admin Center 能够管理这些环境,必须通过 SMB 端口 445 基于 UNC 路径进行文件传输。 请确保你是托管服务器或群集上的管理员。 此外,请确保安全策略不会阻止文件传输。
PowerShell 执行策略
默认 PowerShell 执行策略 足以让 Windows Admin Center 管理 WDAC 强制执行的计算机。 但是,如果计算机上的默认执行策略发生更改,则需要确保将 LocalMachine
范围设置为 RemoteSigned
以允许加载和执行已签名的脚本。 这是一项 PowerShell 安全功能,仅当它们合适且必要时,才应进行更改。
安装
像平时一样,在 WDAC 强制服务器或客户端计算机上安装 Windows Admin Center。 如果满足上述要求,Windows Admin Center 应按正常方式安装和运行。
正在连接
像平时一样连接到 WDAC 强制实施的服务器、客户端或群集计算机。 连接到服务器后,可以通过“概述” 页上的“PowerShell 语言模式” 字段跟踪强制状态。 如果此字段的值为 约束,那么就会执行 WDAC。
首次连接到 WDAC 强制群集时,Windows Admin Center 可能需要几分钟时间才能设置与群集的连接。 后续连接不会出现延迟。
注意
如果更改托管节点的 WDAC 强制状态,请在至少 30 秒内不要使用 Windows Admin Center,以确保更改得到反映。
已知问题
目前,WDAC 强制的环境中不支持通过 Windows Admin Center 在 Azure 本地和 Azure Arc 资源桥上部署 Azure Kubernetes 服务。
目前不支持在单个服务器上使用基于角色的访问控制(RBAC)。
证书工具中的某些操作目前不受支持。
故障排除
如果收到“找不到模块”或“无法连接”错误:
若要确认 Windows Admin Center 是否已成功将文件传输到托管节点,请转到托管节点上的
%PROGRAMFILES%\WindowsPowerShell\Modules
文件夹,并验证该文件夹中是否存在名称Microsoft.SME.*
的模块。如果模块不存在,请从 Windows Admin Center 重新连接到服务器或群集。
确保安装了 Windows Admin Center 的计算机有权访问托管节点上的 TCP 端口 445。