使用 WDAC 和 Windows PowerShell 允许或阻止 Microsoft Intune 的 HoloLens 2 设备上的应用

Microsoft HoloLens 2 设备支持 Windows Defender 应用程序控制 (WDAC) CSP,它将替换 AppLocker CSP

通过 Windows PowerShell 和 Microsoft Intune,可以使用 WDAC CSP 来允许或阻止特定应用在 Microsoft HoloLens 2 设备上打开。 例如,你可能希望允许或阻止应用在组织中的 HoloLens 2 设备上打开。

此功能适用于:

  • 运行了 Windows Holographic for Business 的 HoloLens 2 设备
  • Windows 10/11

WDAC CSP 基于 Windows Defender 应用程序控制 (WDAC) 功能。 还可以使用多个 WDAC 策略

本文介绍如何:

  1. 使用 Windows PowerShell 创建 WDAC 策略。
  2. 使用 Windows PowerShell 将 WDAC 策略规则转换为 XML,更新 XML,然后将 XML 转换为二进制文件。
  3. 在 Microsoft Intune 中,创建自定义设备配置文件,添加此 WDAC 策略二进制文件,然后将该策略应用于 HoloLens 2 设备。

在 Intune 中,必须创建自定义配置文件才能使用 Windows Defender 应用程序控制 (WDAC) CSP。

使用本文中的步骤作为模板,以允许或拒绝特定应用在 HoloLens 2 设备上打开。

先决条件

步骤 1 - 使用 Windows PowerShell 创建 WDAC 策略

此示例使用 Windows PowerShell 创建 Windows Defender 应用程序控制 (WDAC) 策略。 该策略可阻止特定应用打开。

  1. 在台式计算机上,打开 Windows PowerShell 应用。

  2. 在台式计算机和 HoloLens 上获取有关已安装应用程序包的信息:

    $package1 = Get-AppxPackage -name *<applicationname>*
    

    例如,输入:

    $package1 = Get-AppxPackage -name Microsoft.MicrosoftEdge
    

    接下来,确认包具有应用程序属性:

    $package1
    

    显示类似于以下属性的应用详细信息:

    Name              : Microsoft.MicrosoftEdge
    Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
    Architecture      : Neutral
    ResourceId        :
    Version           : 44.20190.1000.0
    PackageFullName   : Microsoft.MicrosoftEdge_44.20190.1000.0_neutral__8wekyb3d8bbwe
    InstallLocation   : C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe
    IsFramework       : False
    PackageFamilyName : Microsoft.MicrosoftEdge_8wekyb3d8bbwe
    PublisherId       : 8wekyb3d8bbwe
    IsResourcePackage : False
    IsBundle          : False
    IsDevelopmentMode : False
    NonRemovable      : True
    IsPartiallyStaged : False
    SignatureKind     : System
    Status            : Ok
    
  3. 创建一个 WDAC 策略,并将应用包添加到 DENY 规则:

    $rule = New-CIPolicyRule -Package $package1 -Deny
    
  4. 对于任何其他想要 DENY 的应用程序,请重复步骤 2 和 3:

    $rule += New-CIPolicyRule -Package $package<2..n> -Deny
    

    例如,输入:

    $package2 = Get-AppxPackage -name *windowsstore*
    $rule += New-CIPolicyRule -Package $package<2..n>  -Deny
    
  5. 将 WDAC 策略转换为 newPolicy.xml

    注意

    可以阻止只安装在 HoloLens 设备上的应用。 有关详细信息,请转到 HoloLens 上应用的包系列名称

    New-CIPolicy -rules $rule -f .\newPolicy.xml -UserPEs
    

    若要面向应用的所有版本,请在 newPolicy.xml 中确保 PackageVersion="65535.65535.65535.65535" 位于 Deny 节点中:

    <Deny ID="ID_DENY_D_1" FriendlyName="Microsoft.WindowsStore_8wekyb3d8bbwe FileRule" PackageFamilyName="Microsoft.WindowsStore_8wekyb3d8bbwe" PackageVersion="65535.65535.65535.65535" />
    

    对于 PackageFamilyNameRules,可以使用以下版本:

    • 允许:输入 PackageVersion, 0.0.0.0,这意味着“允许此版本及更高版本”。
    • 拒绝:输入 PackageVersion, 65535.65535.65535.65535,这意味着“拒绝此版本及更低版本”。
  6. 如果你计划部署和运行任何不是源自 Microsoft Store 的应用,例如业务线应用(请参阅应用管理),则通过将其签名者添加到 WDAC 策略来显式允许这些应用。

    注意

    目前只有适用于 HoloLens 的 Windows Insiders 功能中提供使用 WDAC 和 LOB 应用的功能。

    例如,你计划部署 ATestApp.msixATestApp.msix 已由 TestCert.cer 证书签名。 使用以下 Windows PowerShell 脚本将签名者添加到 WDAC 策略:

    Add-SignerRule -FilePath .\newPolicy.xml -CertificatePath .\TestCert.cer -User
    
  7. newPolicy.xml 与台式计算机上的默认策略合并。 此步骤会创建 mergedPolicy.xml。 例如,允许运行 Windows、WHQL 签名的驱动程序和存储签名的应用:

    Merge-CIPolicy -PolicyPaths .\newPolicy.xml,C:\Windows\Schemas\codeintegrity\examplepolicies\DefaultWindows_Audit.xml -o mergedPolicy.xml
    
  8. 在 mergedPolicy.xml 中禁用“审核模式”规则。 合并时,自动启用审核模式:

    Set-RuleOption -o 3 -Delete .\mergedPolicy.xml
    
  9. 在 mergedPolicy.xml 中启用“重新启动时使 EA 无效”规则

    Set-RuleOption -o 15 .\mergedPolicy.xml
    

    有关这些规则的信息,请转到 了解 WDAC 策略规则和文件规则

  10. 将 mergedPolicy.xml 转换为二进制格式。 此步骤会创建 compiledPolicy.bin。 在 步骤 2 - 创建 Intune 策略并将策略部署到 HoloLens 2 设备中,将此 compiledPolicy.bin 二进制文件添加到 Intune 策略。

    ConvertFrom-CIPolicy .\mergedPolicy.xml .\compiledPolicy.bin
    

步骤 2 - 创建 Intune 策略并将策略部署到 HoloLens 2 设备

在此步骤中,将在 Intune 中创建自定义设备配置文件。 在自定义策略中,添加在步骤 1 - 使用 Windows PowerShell 创建 WDAC 策略中创建的compiledPolicy.bin二进制文件。 然后,使用 Intune 将策略部署到 HoloLens 2 设备。

  1. Microsoft Intune 管理中心,创建 Windows 自定义设备配置文件。

    有关具体步骤,请转到 在 Intune 中使用 OMA-URI 创建自定义配置文件

  2. 创建配置文件时,请输入以下设置:

    • OMA-URI:输入 ./Vendor/MSFT/ApplicationControl/Policies/<PolicyGUID>/Policy。 将 <PolicyGUID> 替换为在步骤 6 中创建的 mergedPolicy.xml 文件中的 PolicyTypeID 节点。

      使用我们的示例,输入 ./Vendor/MSFT/ApplicationControl/Policies/A244370E-44C9-4C06-B551-F6016E563076/Policy

      策略 GUID 必须mergedPolicy.xml 文件中的 PolicyTypeID 节点匹配(在步骤 6 中创建)。

      OMA-URI 使用 ApplicationControl CSP。 有关此 CSP 中的节点的信息,请转到 ApplicationControl CSP

    • 数据类型:设置为 Base64 文件。 它自动将文件从 bin 转换为 base64。

    • 证书文件:上传步骤 10 ) 中创建 (compiledPolicy.bin二进制文件。

    设置如下所示:

    添加自定义 OMA-URI 以便在 Microsoft Intune 中配置 ApplicationControl CSP。

  3. 分配配置文件给 HoloLens 2 组时,请检查配置文件状态。 成功应用配置文件后,请重新启动 HoloLens 2 设备。