셸 시작 관리자 구성 파일 만들기
셸 시작 관리자를 구성하려면 구성 XML 파일을 만들어 디바이스에 적용해야 합니다. 구성 파일은 셸 시작 관리자 XML 스키마 정의(XSD)에 정의된 대로 스키마를 따라야 합니다.
이 문서에서는 실제 예제를 포함하여 셸 시작 관리자 구성 파일을 구성하는 방법을 설명합니다.
먼저 XML 파일의 기본 구조를 살펴보겠습니다. 셸 시작 관리자 구성 파일에는 다음이 포함됩니다.
- 하나 이상의
profiles
입니다. 각각profile
은 다음을 정의합니다.- 사용자가 로그인할 때 실행되는 표준 Windows 셸(
Explorer.exe
)을 대체하는 애플리케이션 - 애플리케이션이 종료되면 수행할 기본 작업과 특정 반환 코드로 애플리케이션이 종료되는 경우의 작업
- 사용자가 로그인할 때 실행되는 표준 Windows 셸(
- 하나 이상의
configs
입니다. 각config
사용자는 사용자 계정을 에 연결합니다.profile
참고
프로필이 사용자 계정에 연결되지 않은 경우 아무런 효과가 없습니다.
다음은 하나의 프로필과 하나의 구성이 있는 셸 시작 관리자 구성 파일의 기본 예입니다.
<?xml version="1.0" encoding="utf-8" ?>
<ShellLauncherConfiguration
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
<Profiles>
<Profile Id="{GUID}">
<!-- Add configuration here as needed -->
</Profile>
</Profiles>
<Configs>
<Config>
<!-- Add configuration here as needed -->
</Config>
</Configs>
</ShellLauncherConfiguration>
버전 관리
셸 시작 관리자 구성 XML의 버전이 지정됩니다. 버전은 XML 루트 요소에 정의되며 XML 파일의 유효성을 검사하는 데 사용할 스키마를 결정하는 데 사용됩니다. 이 버전은 구성에 사용할 수 있는 기능을 결정하는 데도 사용됩니다. 다음은 설명서 예제에 사용된 버전, 별칭 및 네임스페이스의 테이블입니다.
버전 | 별칭 | 네임스페이스 |
---|---|---|
Windows 10 | V2 |
http://schemas.microsoft.com/ShellLauncher/2019/Configuration |
Windows 10 | default | http://schemas.microsoft.com/ShellLauncher/2018/Configuration |
버전별 요소 및 특성을 포함하는 호환되는 구성 XML에 권한을 부여하려면 항상 추가 기능 스키마의 네임스페이스를 포함하고 그에 따라 특성과 요소를 네임스페이스 별칭으로 데코레이트합니다. 예를 들어 전체 화면에서 실행되도록 키오스크 애플리케이션을 구성하려면 아래 예제를 사용합니다. 네임스페이스에 V2
연결된 http://schemas.microsoft.com/ShellLauncher/2019/Configuration
별칭과 별칭은 및 AllAppsFullScreen
속성 인라인에 태그가 AppType
지정됩니다.
<?xml version="1.0" encoding="utf-8" ?>
<ShellLauncherConfiguration
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
<Profiles>
<Profile Id="{GUID}">
<!-- Add configuration here as needed -->
<Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" V2:AppType="Desktop" V2:AllAppsFullScreen="true">
</Profile>
</Profiles>
<Configs>
<Config>
<!-- Add configuration here as needed -->
</Config>
</Configs>
</ShellLauncherConfiguration>
여기에서 셸 시작 관리자 XML 스키마 정의(XSD)를 찾을 수 있습니다.
프로필
구성 파일에는 하나 이상의 프로필이 포함될 수 있습니다. 각 프로필에는 고유 식별자와 Profile Id
선택적으로 가 있습니다 Name
. 예시:
<Profiles>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" Name="Microsoft Learn example">
<!-- Add configuration here as needed -->
</Profile>
</Profiles>
팁
는 Profile Id
XML 파일 내에서 고유해야 합니다. PowerShell cmdlet New-Guid
을 사용하여 GUID를 생성할 수 있습니다.
다른 프로필이 사용자 계정에 연결되지 않은 경우 사용되는 을 정의 Defaultprofile
할 수 있습니다. 이렇게 하면 디바이스를 사용하는 모든 사용자가 동일한 애플리케이션을 사용합니다. 예제:
<Profiles>
<DefaultProfile>
<!-- Add configuration here as needed -->
</DefaultProfile>
</Profiles>
셸
각 프로필은 Shell
실행할 애플리케이션에 대한 세부 정보를 포함하는 요소를 정의합니다.
Shell
요소에는 다음과 같은 속성이 있습니다.
속성 | 설명 | 세부 정보 |
---|---|---|
Shell |
Windows 셸로 사용되는 애플리케이션입니다. | - UWP(유니버설 Windows 플랫폼) 앱의 경우 AUMID(앱 사용자 모델 ID)를 제공해야 합니다.
설치된 앱의 애플리케이션 사용자 모델 ID를 찾는 방법을 알아봅니다. - 데스크톱 앱의 경우 시스템 환경 변수를 형식으로 포함할 수 있는 실행 파일의 %variableName% 전체 경로를 지정합니다. 앱에 필요할 수 있는 매개 변수를 지정할 수도 있습니다. |
V2:AppType |
애플리케이션 유형을 정의합니다. | 허용되는 값은 및 UWP 입니다Desktop . |
V2:AllAppsFullScreen |
모든 애플리케이션이 전체 화면에서 실행되는지 여부를 정의하는 부울 값입니다. | - 로 true 설정하면 셸 시작 관리자가 모든 앱을 전체 화면으로 실행하거나 데스크톱 앱에 대해 최대화됩니다.- 로 설정 false 하거나 설정하지 않으면 사용자 지정 셸 앱만 전체 화면으로 실행됩니다. 사용자가 시작한 다른 앱은 창 모드로 실행됩니다. |
예제:
<Profile Id="{GUID}">
<Shell Shell="" V2:AppType="" V2:AllAppsFullScreen="">
<!-- Add configuration here as needed -->
</Shell>
</Profile>
다음 예제에서는 날씨 앱이 전체 화면에서 실행됩니다.
<?xml version="1.0" encoding="utf-8"?>
<ShellLauncherConfiguration xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
<Profiles>
<DefaultProfile>
<Shell Shell="Microsoft.BingWeather_8wekyb3d8bbwe!App" V2:AppType="UWP">
<DefaultAction Action="RestartShell"/>
</Shell>
</DefaultProfile>
</Profiles>
<Configs/>
</ShellLauncherConfiguration>
다음 예제에서는 Microsoft Edge가 전체 화면으로 실행되어 웹 사이트를 엽니다. 비활성 상태인 2분 후에 웹 사이트가 다시 로드됩니다.
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
<Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe --kiosk https://www.contoso.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" V2:AppType="Desktop" V2:AllAppsFullScreen="true">
<DefaultAction Action="RestartShell"/>
</Shell>
</Profile>
ReturnCodeActions
셸 시작 관리자가 앱 종료를 처리하는 네 가지 작업을 정의합니다. 셸 시작 관리자를 사용자 지정하고 다른 종료 코드에 따라 작업을 사용할 수 있습니다. 열거형은 ReturnCodeActions
다음과 같습니다.
RestartShell
RestartDevice
ShutdownDevice
DoNothing
작업을 기본 작업으로 사용하거나 특정 종료 코드에 매핑할 수 있습니다. 셸 시작 관리자 WMI에서 종료 코드를 사용하는 방법을 알아보려면 셸 시작 관리자를 참조하세요.
4개의 종료 코드에 매핑되는 최대 4개의 사용자 지정 작업과 다른 모든 종료 코드에 대해 하나의 기본 작업을 지정할 수 있습니다. 앱이 종료되고 사용자 지정 작업 매핑에서 종료 코드를 찾을 수 없거나 정의된 기본 작업이 없으면 아무 일도 발생하지 않습니다. 이러한 이유로 적어도 를 정의 DefaultAction
해야 합니다.
예제:
<Profile Id="{GUID}">
<Shell Shell="" V2:AppType="" V2:AllAppsFullScreen="">
<ReturnCodeActions>
<ReturnCodeAction ReturnCode="0" Action="RestartShell"/>
<ReturnCodeAction ReturnCode="-1" Action="RestartDevice"/>
<ReturnCodeAction ReturnCode="255" Action="ShutdownDevice"/>
<ReturnCodeAction ReturnCode="1" Action="DoNothing"/>
</ReturnCodeActions>
<DefaultAction Action="RestartDevice"/>
</Shell>
</Profile>
구성
에서 Configs
하나 이상의 사용자 계정 및 프로필과의 연결을 정의합니다.
개별 계정은 를 사용하여 <Account Name=""/>
지정됩니다.
중요
셸 시작 관리자 구성을 적용하기 전에 디바이스에서 지정된 사용자 계정을 사용할 수 있는지 확인합니다. 그렇지 않으면 실패합니다.
도메인 및 Microsoft Entra 계정 모두에 대해 디바이스가 Active Directory에 가입되거나 Microsoft Entra가 조인된 경우 디바이스가 조인된 도메인 포리스트 또는 테넌트에서 계정을 검색할 수 있습니다. 로컬 계정의 경우 셸 시작 관리자에 대한 계정을 구성하기 전에 계정이 있어야 합니다.
로컬 사용자
로컬 계정은 , 또는 로 devicename\user
입력할 수 있습니다user
. .\user
<Config>
<Account Name="Learn Example"/>
<Profile Id="{GUID}"/>
</Config>
Active Directory 사용자
도메인 계정은 형식 domain\samAccountName
을 사용하여 입력해야 합니다.
<Config>
<Account Name="contoso\user"/>
<Profile Id="{GUID}"/>
</Config>
Microsoft Entra 사용자
Microsoft Entra 계정은 형식 AzureAD\{UPN}
으로 지정해야 합니다.
AzureAD
를 있는 그대로 제공한 다음, Microsoft Entra UPN(사용자 계정 이름)을 따라야 합니다.
<Config>
<Account Name="azuread\user@contoso.onmicrosoft.com"/>
<Profile Id="{GUID}"/>
</Config>
사용자 계정이 로그인하면 연결된 셸 시작 관리자 프로필이 적용되어 프로필에 지정된 애플리케이션이 로드됩니다.
Autologon 계정
를 사용하면 <AutoLogonAccount>
셸 시작 관리자가 디바이스를 다시 시작한 후 자동으로 로그인할 사용자 계정을 만들고 관리합니다. 계정은 라는 Kiosk
로컬 표준 사용자입니다.
예제:
<Configs>
<Config>
<!--account managed by Shell Launcher-->
<AutoLogonAccount/>
<Profile Id="{GUID}"/>
</Config>
<Configs>
<!--local account-->
<Account Name="Learn Example"/>
<Profile ID="{GUID}"/>
</Configs>
<Configs>
<!--Microsoft Entra account-->
<Account Name="azuread\kiosk@contoso.com"/>
<Profile ID="{GUID}"/>
</Configs>
</Configs>
예제
다음은 두 개의 프로필과 3개의 구성이 있는 셸 시작 관리자 구성 파일의 전체 예제입니다.
<?xml version="1.0" encoding="utf-8"?>
<ShellLauncherConfiguration xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration" xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
<Profiles>
<DefaultProfile>
<Shell Shell="%SystemRoot%\explorer.exe" />
</DefaultProfile>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F79}" Name="Weather">
<Shell Shell="Microsoft.BingWeather_8wekyb3d8bbwe!App" V2:AppType="UWP">
<DefaultAction Action="RestartShell" />
</Shell>
</Profile>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" Name="Edge">
<Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe --kiosk https://www.contoso.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" V2:AppType="Desktop" V2:AllAppsFullScreen="true">
<ReturnCodeActions>
<ReturnCodeAction ReturnCode="0" Action="RestartShell" />
<ReturnCodeAction ReturnCode="-1" Action="RestartDevice" />
<ReturnCodeAction ReturnCode="255" Action="ShutdownDevice" />
</ReturnCodeActions>
<DefaultAction Action="RestartShell" />
</Shell>
</Profile>
</Profiles>
<Configs>
<Config>
<AutoLogonAccount />
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
</Config>
<Config>
<Account Name="azuread\kiosk1@contoso.onmicrosoft.com" />
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F79}" />
</Config>
<Config>
<Account Name="azuread\kiosk2@contoso.onmicrosoft.com" />
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
</Config>
</Configs>
</ShellLauncherConfiguration>