Тестирование приложения для Windows 10 в S-режимеTest your Windows app for Windows 10 in S mode

Можно протестировать приложение Windows, чтобы убедиться, что оно будет работать правильно на устройствах под управлением Windows 10 S.You can test your Windows app to ensure that it will operate correctly on devices that run Windows 10 in S mode. На самом деле, если вы планируете опубликовать приложение в Microsoft Store, это необходимо, поскольку таковы обязательные требования Store.In fact, if you plan to publish your app to the Microsoft Store, you must do this because it is a store requirement. Чтобы протестировать приложение, можно применить политику управления приложениями в Microsoft Defender на устройстве под управлением Windows 10 Pro.To test your app, you can apply a Windows Defender Application Control (WDAC) policy on a device that is running Windows 10 Pro.

Эта политика применяет правила, которым должны соответствовать приложения для работы в Windows 10 в S-режиме.The WDAC policy enforces the rules that apps must conform to in order to run on Windows 10 S.

Важно!

Мы рекомендуем применять эти политики к виртуальной машине, однако если вы хотите применить их к локальному компьютеру, предварительно ознакомьтесь с рекомендациями, приведенными в разделе "Установка политики и перезапуск компьютера" этой статьи.We recommend that you apply these policies to a virtual machine, but if you want to apply them to your local machine, make sure to review our best practice guidance in the "Next, install the policy and restart your system" section of this topic before you apply a policy.

Скачивание политик и выбор одной из нихFirst, download the policies and then choose one

Скачайте политики управления приложениями в Microsoft Defender здесь.Download the WDAC policies here.

Затем выберите наиболее подходящую политику.Then, choose the one that makes the most sense to you. Вот краткая информация по каждой из них.Here's summary of each policy.

ПолитикаPolicy Принудительное применениеEnforcement Сертификат для подписиSigning certificate Имя файлаFile name
Политика режима аудитаAudit mode policy Ведет журнал ошибок / не блокируетLogs issues / does not block МагазинStore SiPolicy_Audit.p7bSiPolicy_Audit.p7b
Политика режима производстваProduction mode policy ДаYes МагазинStore SiPolicy_Enforced.p7bSiPolicy_Enforced.p7b
Политика режима производства с самозаверяющимися приложениямиProduct mode policy with self-signed apps ДаYes Тестовый сертификат AppXAppX Test Cert SiPolicy_DevModeEx_Enforced.p7bSiPolicy_DevModeEx_Enforced.p7b

Мы рекомендуем начать с политики режима аудита.We recommend that you start with audit mode policy. Просмотрите журналы событий целостности кода и используйте эти сведения, чтобы внести изменения в ваше приложение.You can review the Code Integrity Event Logs and use that information to help you make adjustments to your app. Затем, когда будете готовы провести финальное тестирование, примените политику режима производства.Then, apply the Production mode policy when you're ready for final testing.

Ниже представлена дополнительная информация о каждой политике.Here’s a bit more information about each policy.

Политика режима аудитаAudit mode policy

В этом режиме ваше приложение работает, даже если оно выполняет задачи, не поддерживаемые в Windows 10 S. Windows регистрирует все исполняемые файлы, которые были бы заблокированы в журналах событий целостности кода.With this mode, your app runs even if it performs tasks that aren’t supported on Windows 10 S. Windows logs any executables that would have been blocked into the Code Integrity Event Logs.

Эти журналы можно найти, открыв Просмотр событий, а затем перейдя к этому расположению: Журналы приложений и служб Logs->Microsoft->Windows->CodeIntegrity->Operational.You can find those logs by opening the Event Viewer, and then browsing to this location: Application and Services Logs->Microsoft->Windows->CodeIntegrity->Operational.

журналы событий целостности кода

Этот режим безопасен и не помешает запуску системы.This mode is safe and it won't prevent your system from starting.

(Необязательно) Поиск конкретных точек сбоя в стеке вызовов(Optional) Find specific failure points in the call stack

Чтобы найти в стеке вызовов конкретные точки, в которых возникают блокирующие проблемы, добавьте этот раздел реестра, а затем настройте среду отладки в режиме ядра.To find specific points in the call stack where blocking issues occur, add this registry key, and then set up a kernel-mode debugging environment.

КлавишиKey НазваниеName TypeType ПрименениеValue
HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\CIHKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\CI DebugFlagsDebugFlags REG_DWORDREG_DWORD 11

reg-setting

Политика режима производстваProduction mode policy

Данная политика применяет правила целостности кода, согласующиеся с Windows 10 S, поэтому вы можете имитировать работу под управлением этой операционной системы. Это самая строгая политика, и она отлично подходит для проведения финального тестирования производства.This policy enforces code integrity rules that match Windows 10 S so that you can simulate running on Windows 10 S. This is the strictest policy, and it is great for final production testing. В этом режиме на ваше приложение распространяются такие же ограничения, какие на него были бы наложены на устройстве пользователя.In this mode, your app is subject to the same restrictions as it would be subject to on a user's device. Чтобы использовать этот режим, ваше приложение должно быть подписано Microsoft Store.To use this mode, your app must be signed by the Microsoft Store.

Политика режима производства с самозаверяющимися приложениямиProduction mode policy with self-signed apps

Эта политика аналогична политике режима производства, но она также позволяет запускать продукты, подписанные с помощью тестового сертификата, который входит в этот ZIP-файл.This mode is similar to the Production mode policy, but it also allows things to run that are signed with the test certificate that is included in the zip file. Установите PFX-файл, находящийся в папке AppxTestRootAgency этого ZIP-файла.Install the PFX file that is included in the AppxTestRootAgency folder of this zip file. Затем подпишите приложение с его помощью.Then, sign your app with it. Так вы сможете быстро выполнить итерацию, не подписывая приложение через Магазин.That way, you can quickly iterate without requiring Store signing.

Поскольку имя издателя сертификата должно соответствовать имени издателя приложения, вам придется временно изменить значение атрибута Publisher элемента Identity на "CN=Appx Test Root Agency Ex".Because the publisher name of your certificate must match the publisher name of your app, you'll have to temporarily change the value of the Identity element's Publisher attribute to "CN=Appx Test Root Agency Ex". После выполнения тестов этому атрибуту можно вернуть исходное значение.You can change that attribute back to it's original value after you've completed your tests.

Установка политики и перезапуск компьютераNext, install the policy and restart your system

Мы рекомендуем применять эти политики к виртуальной машине, поскольку они могут привести к ошибкам при загрузке.We recommend that you apply these policies to a virtual machine because these policies might lead to boot failures. Это связано с тем, что эти политики блокируют выполнение кода, не подписанного Microsoft Store, включая драйверы.That's because these policies block the execution of code that isn't signed by the Microsoft Store, including drivers.

Если вы хотите применить эти политики на локальном компьютере, лучше всего начать с политики режима аудита.If you want to apply these policies to your local machine, it's best to start with the Audit mode policy. С ней вы сможете просмотреть журналы событий целостности кода, чтобы убедиться, что при ее принудительном применении не будут заблокированы никакие критичные функции.With this policy, you can review the Code Integrity Event Logs to ensure that nothing critical would be blocked in an enforced policy.

Когда будете готовы применить политику, найдите P7B-файл выбранной вами политики, переименуйте его в SIPolicy.P7B и сохраните в вашей системе в этом расположении: C:\Windows\System32\CodeIntegrity\ .When you're ready to apply a policy, find the .P7B file for the policy that you chose, rename it to SIPolicy.P7B, and then save that file to this location on your system: C:\Windows\System32\CodeIntegrity\.

Затем перезапустите компьютер.Then, restart your system.

Примечание

Чтобы удалить политику из системы, удалите файл P7B и перезапустите систему.To remove a policy from your system, delete the .P7B file and then restart your system.

Дальнейшие действияNext steps

Получение ответов на вопросыFind answers to your questions

Есть вопросы?Have questions? Задайте их на Stack Overflow.Ask us on Stack Overflow. Наша команда следит за этими тегами.Our team monitors these tags. Вы также можете задать нам вопросы здесь.You can also ask us here.

Просмотрите подробную запись в блоге, размещенную нашей группой консультантов по приложениямReview a detailed blog article that was posted by our App Consult Team

См. Перенос и тестирование классических приложений на Windows 10 S с помощью моста для классических приложений.See Porting and testing your classic desktop applications on Windows 10 S with the Desktop Bridge.

Узнайте о средствах, которые упрощают тестирование для Windows в режиме SLearn about tools that make it easier to test for Windows in S Mode

См. Распаковка, изменение, перепаковка и подписание APPX.See Unpackage, modify, repackage, sign an APPX.