S 모드에서 Windows 10용 Windows 앱 테스트Test your Windows app for Windows 10 in S mode

S 모드에서 Windows 10을 실행하는 디바이스에서 Windows 앱이 제대로 작동하는지 테스트할 수 있습니다.You can test your Windows app to ensure that it will operate correctly on devices that run Windows 10 in S mode. 실제로 앱을 Microsoft Store에 게시하려는 경우 Microsoft Store 요구 사항이므로 이를 수행해야 합니다.In fact, if you plan to publish your app to the Microsoft Store, you must do this because it is a store requirement. 앱을 테스트하기 위해 Windows 10 Pro를 실행하는 디바이스에 Windows Defender 애플리케이션 제어(WDAC) 정책을 적용할 수 있습니다.To test your app, you can apply a Windows Defender Application Control (WDAC) policy on a device that is running Windows 10 Pro.

WDAC 정책은 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

여기에서 WDAC 정책을 다운로드하세요.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 AppX 테스트 인증서AppX 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.

이러한 로그는 이벤트 뷰어를 열고 애플리케이션 및 서비스 로그 -> 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.

code-integrity-event-logs

이 모드는 안전하며 시스템이 시작되지 않도록 차단하지 않습니다.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 유형Type ValueValue
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에서의 실행을 시뮬레이션할 수 있도록 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. 이 zip 파일의 AppxTestRootAgency 폴더에 포함된 PFX 파일을 설치합니다.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.

인증서의 게시자 이름이 앱 게시자 이름과 일치해야 하므로 ID 요소의 게시자 특성 값을 "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.

App Consult 팀에서 게시한 자세한 블로그 문서 참조Review a detailed blog article that was posted by our App Consult Team

데스크톱 브리지를 사용하여 Windows 10에서 클래식 데스크톱 애플리케이션 포팅 및 테스트See Porting and testing your classic desktop applications on Windows 10 S with the Desktop Bridge.

S 모드에서 Windows를 쉽게 테스트할 수 있는 도구에 대해 알아보기Learn about tools that make it easier to test for Windows in S Mode

APPX 패키지 해제, 수정, 다시 패키징, 서명을 참조하세요.See Unpackage, modify, repackage, sign an APPX.