使用适用于企业的 App Control 管理打包的应用

注意

适用于企业的 App Control 的某些功能仅适用于特定 Windows 版本。 详细了解 应用控制功能可用性

本文面向 IT 专业人员介绍概念和过程,以帮助你在整体应用控制策略中使用适用于企业的 App Control 管理打包的应用。

比较经典 Windows 应用和打包应用

采用应用控制的最大挑战是经典 Windows 应用(也称为 win32 应用)缺乏强大的应用标识。 典型的 win32 应用由多个组件组成,包括用于安装应用的安装程序,以及一个或多个 exe、dll 或脚本。 应用可以包含数百个甚至数千个单独的二进制文件,这些二进制文件协同工作,以提供用户理解为应用的功能。 其中一些代码可能由软件发布者签名,有些代码可能由其他公司签名,其中一些代码可能根本不签名。 大部分代码可能由一组常见的安装程序写入磁盘,但有些代码可能已安装,有些已按需下载。 某些二进制文件具有常见的资源标头元数据,例如产品名称和产品版本,但其他文件不会共享该信息。 因此,虽然你希望能够表达“允许应用 Foo”等规则,但这不是 Windows 对经典 Windows 应用本身所理解的。 相反,你可能必须创建许多应用控制规则,以允许构成应用的所有文件。

另一方面,打包的应用也称为 MSIX,可确保构成应用的所有文件共享相同的标识并具有通用签名。 因此,对于打包的应用,可以使用单个应用控制规则控制整个应用。

使用应用控件管理打包的应用

重要提示

控制打包的应用时,必须在签名者规则或包系列名称 (PFN) 规则之间进行选择。 如果在应用控制基础策略或其补充策略之一中使用 了任何 包系列名称 (PFN) 规则,则必须使用 PFN 规则以独占方式控制 所有 打包的应用。 在给定的基本策略范围内,不能将 PFN 规则与基于签名的规则混合和匹配。 这将影响许多收件箱系统应用,例如“开始”菜单。 可以在Windows 11上的 PFN 规则中使用通配符来简化规则创建。

为打包应用创建基于签名的规则

构成 MSIX 应用的所有文件都使用通用目录签名进行签名。 可以使用 New-CIPolicyRule PowerShell cmdlet,从 MSIX 应用的安装程序文件 (.msix 或 .msixbundle) 或 AppxSignature.p7x 文件中的 AppxSignature.p7x 文件创建签名者规则。 例如:

从 MSIX/MSIXBUNDLE 创建签名者规则

$FilePath = $env:USERPROFILE+'\Downloads\WDACWizard_2.1.0.1_x64_8wekyb3d8bbwe.MSIX'
$Rules = New-CIPolicyRule -DriverFilePath $FilePath -Level Publisher

然后使用 Merge-CIPolicy PowerShell cmdlet 将新规则合并到现有应用控制策略 XML 中。

从 AppxSignature.p7x 创建签名者规则

$FilePath = $env:ProgramFiles+'\WindowsApps\Microsoft.App Control.WDACWizard_2.1.0.1_x64__8wekyb3d8bbwe\AppxSignature.p7x'
$Rules = New-CIPolicyRule -DriverFilePath $FilePath -Level Publisher

然后使用 Merge-CIPolicy PowerShell cmdlet 将新规则合并到现有应用控制策略 XML 中。

为打包的应用创建 PackageFamilyName 规则

从 PowerShell 创建 PFN 规则

可以直接使用 Get-AppXPackageNew-CIPolicyRule PowerShell cmdlet 从当前安装的打包应用创建 PFN 规则。 例如:

# Query for the packaged apps. This example looks for all packages from Microsoft.
$Packages = Get-AppXPackage -Name Microsoft.*
foreach ($Package in $Packages)
{
   $Rules += New-CIPolicyRule -Package $Package
}

然后使用 Merge-CIPolicy PowerShell cmdlet 将新规则 () 合并到现有应用控制策略 XML 中。

使用应用控件向导创建 PFN 规则

从已安装的 MSIX 应用创建 PFN 规则

使用以下步骤为系统上安装的应用创建应用控制 PFN 规则:

  1. “应用控件向导”的“策略签名规则”页中,选择“添加自定义规则”。
  2. 如果未选中,请选中 “用户模式规则 ”作为“规则范围”。
  3. 为规则操作选择 “允许 ”或 “拒绝 ”。
  4. 为规则类型选择 “打包的应用 ”。
  5. 在“ 包名称” 字段中,输入要搜索的字符串值。 可以在搜索字符串中使用 ?* 通配符。 然后选择“ 搜索”。
  6. 在结果框中,检查要为其创建规则的一个或多个应用。
  7. 选择“ 创建规则”。
  8. 创建所需的任何其他规则,然后完成向导。

从应用控件向导创建 PFN 规则

使用自定义字符串创建 PFN 规则

使用以下步骤创建具有自定义字符串值的 PFN 规则:

  1. 重复上一示例中的步骤 1-4。
  2. 选中标有 “使用自定义包系列”的框。 “ 搜索 ”按钮标签更改为 “创建”。
  3. “包名称” 字段中,输入 PFN 规则的字符串值。 如果面向Windows 11设备,则可以使用 ?* 通配符。 然后选择“创建
  4. 在结果框中,检查要为其创建规则的一个或多个应用。
  5. 选择“ 创建规则”。
  6. 创建所需的任何其他规则,然后完成向导。

使用应用控件向导中的自定义字符串创建 PFN 规则