测试 Windows 应用是否适用于 S 模式下的 Windows 10

可以对 Windows 应用进行测试,以确保其在以 S 模式运行 Windows 10 的设备上正常运行。 事实上,如果准备将应用发布到 Microsoft Store,则必须这样做,因为这是 Microsoft Store 的一项要求。 若要测试应用,可以在运行 Windows 10 专业版的设备上应用 Windows Defender 应用程序控制 (WDAC) 策略。

此 WDAC 策略强制执行一些规则,应用必须遵守这些规则才能在 Windows 10 S 上运行。

重要

我们建议你将这些策略应用于虚拟机,但如果你想要将它们应用于本地计算机,则请确保在应用策略之前,先查看本主题“下一步,安装策略并重启系统”部分中的最佳实践指南。

首先,下载这些策略,然后从中选择一个

请在此处下载 WDAC 策略。

然后,选择对你最有意义的一个策略。 以下是每个策略的摘要。

策略 实施 签名证书 文件名
审核模式策略 日志问题/不阻止 商店 SiPolicy_Audit.p7b
生产模式策略 商店 SiPolicy_Enforced.p7b
具有自签名应用的生产模式策略 AppX 测试证书 SiPolicy_DevModeEx_Enforced.p7b

建议从审核模式策略开始。 可以查看代码完整性事件日志,并使用该信息帮助你对应用进行调整。 然后,当你准备好进行最终测试时,请应用生产模式策略。

以下是有关每个策略的更多信息。

审核模式策略

在此模式下,即使你的应用执行 Windows 10 S 上不支持的任务,应用也会运行。Windows 将任何可能已被阻止的可执行文件记录到代码完整性事件日志中。

你可以打开事件查看器,然后浏览到此位置:应用程序和服务日志 -> Microsoft -> Windows -> CodeIntegrity -> 运营,从而找到这些日志

code-integrity-event-logs

此模式为安全模式,不会阻止你的系统启动。

(可选)查找调用堆栈中的特定故障点

若要在调用堆栈中找到阻止问题发生的特定点,请添加此注册表项,然后设置内核模式调试环境

客户 类型
HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\CI DebugFlags REG_DWORD 1

reg-setting

生产模式策略

此策略强制执行与 Windows 10 S 匹配的代码完整性规则,使你可以模拟在 Windows 10 S 上运行。这是最严格的策略,非常适合用于最终生产测试。 在此模式下,你的应用受到的限制与在用户设备上受到的限制相同。 若要使用此模式,你的应用必须由 Microsoft Store 签名。

具有自签名应用的生产模式策略

此模式类似于生产模式策略,但它也允许通过使用 zip 文件中包含的测试证书进行签名的应用运行。 安装此 zip 文件的 AppxTestRootAgency 文件夹中包含的 PFX 文件。 然后,使用它对你的应用进行签名。 如此一来,你便可以快速进行循环访问,而无需应用商店签名。

由于你的证书的发布者名称必须与你的应用的发布者名称匹配,你将需要暂时将 Identity 元素的 Publisher 属性更改为“CN = Appx Test Root Agency Ex”。 完成测试后,你可以将该属性更改回其原始值。

接下来,安装策略并重启系统

我们建议将这些策略应用于虚拟机,因为这些策略可能导致启动失败。 这是因为这些策略会阻止未经 Microsoft Store 签名的代码执行,包括驱动程序。

如果想要将这些策略应用于本地计算机,最好从审核模式策略开始。 使用此策略,你可以查看代码完整性事件日志,以确保在强制执行的策略中不会阻止任何关键操作。

准备好应用策略时,找到所选策略的 .P7B 文件,将其重命名为 SIPolicy.P7B,然后将该文件保存到系统上的此位置:C:\Windows\System32\CodeIntegrity\

然后,重启系统。

注意

若要从系统中删除策略,请先删除 .P7B 文件,然后重启系统。

后续步骤

查找问题的答案

有问题? 请在 Stack Overflow 上向我们提问。 我们的团队会监视这些标记

查看我们的应用咨询团队发布的详细博客文章

请参阅使用桌面桥移植和测试 Windows 10 S 上的桌面应用程序

解让测试以 S 模式运行的 Windows 变得更轻松的工具

请参阅对 APPX 进行解压缩、修改、重新打包、签名