使用 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 策略。
本文介绍如何:
- 使用 Windows PowerShell 创建 WDAC 策略。
- 使用 Windows PowerShell 将 WDAC 策略规则转换为 XML,更新 XML,然后将 XML 转换为二进制文件。
- 在 Microsoft Intune 中,创建自定义设备配置文件,添加此 WDAC 策略二进制文件,然后将该策略应用于 HoloLens 2 设备。
在 Intune 中,必须创建自定义配置文件才能使用 Windows Defender 应用程序控制 (WDAC) CSP。
使用本文中的步骤作为模板,以允许或拒绝特定应用在 HoloLens 2 设备上打开。
先决条件
熟悉 Windows PowerShell。 有关执行策略选项的信息,请转到 Windows PowerShell about_Execution_Policies。
若要配置 Intune 策略,请至少以 策略和配置文件管理器 内置 Intune 角色的成员身份登录到 Intune 管理中心。
有关 Intune 内置角色及其可执行的操作的信息,请转到:
使用 HoloLens 2 设备创建用户组或设备组。 有关组的信息,请转到 用户组与设备组。
步骤 1 - 使用 Windows PowerShell 创建 WDAC 策略
此示例使用 Windows PowerShell 创建 Windows Defender 应用程序控制 (WDAC) 策略。 该策略可阻止特定应用打开。
在台式计算机上,打开 Windows PowerShell 应用。
在台式计算机和 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
创建一个 WDAC 策略,并将应用包添加到 DENY 规则:
$rule = New-CIPolicyRule -Package $package1 -Deny
对于任何其他想要 DENY 的应用程序,请重复步骤 2 和 3:
$rule += New-CIPolicyRule -Package $package<2..n> -Deny
例如,输入:
$package2 = Get-AppxPackage -name *windowsstore* $rule += New-CIPolicyRule -Package $package<2..n> -Deny
将 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
,这意味着“拒绝此版本及更低版本”。
-
允许:输入
如果你计划部署和运行任何不是源自 Microsoft Store 的应用,例如业务线应用(请参阅应用管理),则通过将其签名者添加到 WDAC 策略来显式允许这些应用。
注意
目前只有适用于 HoloLens 的 Windows Insiders 功能中提供使用 WDAC 和 LOB 应用的功能。
例如,你计划部署
ATestApp.msix
。ATestApp.msix
已由TestCert.cer
证书签名。 使用以下 Windows PowerShell 脚本将签名者添加到 WDAC 策略:Add-SignerRule -FilePath .\newPolicy.xml -CertificatePath .\TestCert.cer -User
将 newPolicy.xml 与台式计算机上的默认策略合并。 此步骤会创建 mergedPolicy.xml。 例如,允许运行 Windows、WHQL 签名的驱动程序和存储签名的应用:
Merge-CIPolicy -PolicyPaths .\newPolicy.xml,C:\Windows\Schemas\codeintegrity\examplepolicies\DefaultWindows_Audit.xml -o mergedPolicy.xml
在 mergedPolicy.xml 中禁用“审核模式”规则。 合并时,自动启用审核模式:
Set-RuleOption -o 3 -Delete .\mergedPolicy.xml
在 mergedPolicy.xml 中启用“重新启动时使 EA 无效”规则:
Set-RuleOption -o 15 .\mergedPolicy.xml
有关这些规则的信息,请转到 了解 WDAC 策略规则和文件规则。
将 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 设备。
在 Microsoft Intune 管理中心,创建 Windows 自定义设备配置文件。
有关具体步骤,请转到 在 Intune 中使用 OMA-URI 创建自定义配置文件。
创建配置文件时,请输入以下设置:
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二进制文件。
设置如下所示:
分配配置文件给 HoloLens 2 组时,请检查配置文件状态。 成功应用配置文件后,请重新启动 HoloLens 2 设备。