mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-05-12 13:27:23 +00:00
updates
This commit is contained in:
parent
63455642ae
commit
d14d4d8349
@ -2,9 +2,9 @@ items:
|
|||||||
- name: Overview
|
- name: Overview
|
||||||
href: index.md
|
href: index.md
|
||||||
- name: Configure a kiosk experience (single app)
|
- name: Configure a kiosk experience (single app)
|
||||||
href: single-app-kiosk.md
|
href: configure-single-app-kiosk.md
|
||||||
- name: Configure a restricted user experience (multi-app)
|
- name: Configure a restricted user experience (multi-app)
|
||||||
href: multi-app-kiosk.md
|
href: configure-multi-app-kiosk.md
|
||||||
- name: Create a configuration file
|
- name: Create a configuration file
|
||||||
href: configuration-file.md
|
href: configuration-file.md
|
||||||
- name: Quickstarts
|
- name: Quickstarts
|
||||||
|
102
windows/configuration/shell-launcher/configure.md
Normal file
102
windows/configuration/shell-launcher/configure.md
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
---
|
||||||
|
title: Configure a kiosk with Shell Launcher
|
||||||
|
description: Learn how to configure a Windows kiosk with Shell Launcher.
|
||||||
|
ms.date: 10/31/2024
|
||||||
|
ms.topic: overview
|
||||||
|
---
|
||||||
|
|
||||||
|
# Configure a kiosk with Shell Launcher
|
||||||
|
|
||||||
|
The configuration of Shell Launcher is done using an XML file. The XML file is applied to the device via the [Assigned Access CSP](/windows/client-management/mdm/assignedaccess-csp#shelllauncher), using one of the following options:
|
||||||
|
|
||||||
|
- A Mobile Device Management (MDM) solution, like Microsoft Intune
|
||||||
|
- Provisioning packages
|
||||||
|
- The MDM Bridge WMI Provider
|
||||||
|
|
||||||
|
To learn how to configure the Shell Launcher XML file, see [Create a Shell Launcher configuration file](configuration-file.md).
|
||||||
|
|
||||||
|
[!INCLUDE [tab-intro](../../../includes/configure/tab-intro.md)]
|
||||||
|
|
||||||
|
#### [:::image type="icon" source="../../images/icons/intune.svg"::: **Intune/CSP**](#tab/intune)
|
||||||
|
|
||||||
|
You can configure devices using a [custom policy][MEM-1] with the [AssignedAccess CSP][WIN-3].
|
||||||
|
|
||||||
|
- **Setting:** `./Vendor/MSFT/AssignedAccess/ShellLauncher`
|
||||||
|
- **Value:** content of the XML configuration file
|
||||||
|
|
||||||
|
Assign the policy to a group that contains as members the devices that you want to configure.
|
||||||
|
|
||||||
|
#### [:::image type="icon" source="../../images/icons/provisioning-package.svg"::: **PPKG**](#tab/ppkg)
|
||||||
|
|
||||||
|
[!INCLUDE [provisioning-package-1](../../../includes/configure/provisioning-package-1.md)]
|
||||||
|
|
||||||
|
- **Path:** `SMISettings/ShellLauncher`
|
||||||
|
- **Value:** depends on specific settings
|
||||||
|
|
||||||
|
[!INCLUDE [provisioning-package-2](../../../includes/configure/provisioning-package-2.md)]
|
||||||
|
|
||||||
|
#### [:::image type="icon" source="../images/icons/powershell.svg"::: **PowerShell**](#tab/ps)
|
||||||
|
|
||||||
|
[!INCLUDE [powershell-wmi-bridge-1](../../../includes/configure/powershell-wmi-bridge-1.md)]
|
||||||
|
|
||||||
|
```PowerShell
|
||||||
|
$shellLauncherConfiguration = @"
|
||||||
|
|
||||||
|
# content of the XML configuration file
|
||||||
|
|
||||||
|
"@
|
||||||
|
|
||||||
|
$namespaceName="root\cimv2\mdm\dmmap"
|
||||||
|
$className="MDM_AssignedAccess"
|
||||||
|
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
|
||||||
|
$obj.ShellLauncher = [System.Net.WebUtility]::HtmlEncode($shellLauncherConfiguration)
|
||||||
|
$obj = Set-CimInstance -CimInstance $obj -ErrorVariable cimSetError -ErrorAction SilentlyContinue
|
||||||
|
if($cimSetError) {
|
||||||
|
Write-Output "An ERROR occurred. Displaying error record and attempting to retrieve error logs...`n"
|
||||||
|
Write-Error -ErrorRecord $cimSetError[0]
|
||||||
|
|
||||||
|
$timeout = New-TimeSpan -Seconds 30
|
||||||
|
$stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
|
||||||
|
$eventLogFilterHashTable = @{ LogName='Microsoft-Windows-AssignedAccess/Admin' }
|
||||||
|
do{
|
||||||
|
$events = Get-WinEvent -FilterHashtable $eventLogFilterHashTable -ErrorAction Ignore
|
||||||
|
} until ($events.Count -or $stopwatch.Elapsed -gt $timeout) # wait for the log to be available
|
||||||
|
|
||||||
|
if($events.Count) {
|
||||||
|
$events | ForEach-Object {
|
||||||
|
Write-Output "$($_.TimeCreated) [$($_.LevelDisplayName.ToUpper())] $($_.Message -replace "`n|`r")"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Warning "Timed-out attempting to retrieve event logs..."
|
||||||
|
}
|
||||||
|
|
||||||
|
Exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output "Successfully applied Shell Launcher configuration"
|
||||||
|
```
|
||||||
|
|
||||||
|
[!INCLUDE [powershell-wmi-bridge-2](../../../includes/configure/powershell-wmi-bridge-2.md)]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> For practical examples, see the [Quickstart: configure a kiosk experience with Shell Launcher](quickstart-kiosk.md).
|
||||||
|
|
||||||
|
## User experience
|
||||||
|
|
||||||
|
After the settings are applied, the users that are configured to use Shell Launcher will execute the custom shell after sign-in.
|
||||||
|
|
||||||
|
Depending on your configuration, you can have a user to automatically sign in to the device.
|
||||||
|
|
||||||
|
## Next steps
|
||||||
|
|
||||||
|
> [!div class="nextstepaction"]
|
||||||
|
> Learn how to configure the Shell Launcher XML file:
|
||||||
|
>
|
||||||
|
> [Create a Shell Launcher configuration file](configuration-file.md)
|
||||||
|
|
||||||
|
<!--links-->
|
||||||
|
|
||||||
|
[MEM-1]: /mem/intune/configuration/custom-settings-windows-10
|
||||||
|
[WIN-3]: /windows/client-management/mdm/assignedaccess-csp
|
@ -33,99 +33,3 @@ Here are some limitations to consider when using Shell Launcher:
|
|||||||
|
|
||||||
- Windows doesn't support setting a custom shell before the out-of-box experience (OOBE). If you do, you can't deploy the resulting image
|
- Windows doesn't support setting a custom shell before the out-of-box experience (OOBE). If you do, you can't deploy the resulting image
|
||||||
- Shell Launcher doesn't support a custom shell with an application that launches a different process and exits. For example, you can't specify `write.exe` in Shell Launcher. Shell Launcher launches a custom shell and monitors the process to identify when the custom shell exits. `Write.exe` creates a 32-bit `wordpad.exe` process and exits. Since Shell Launcher isn't aware of the newly created `wordpad.exe` process, Shell Launcher takes action based on the exit code of `Write.exe`, such as restarting the custom shell
|
- Shell Launcher doesn't support a custom shell with an application that launches a different process and exits. For example, you can't specify `write.exe` in Shell Launcher. Shell Launcher launches a custom shell and monitors the process to identify when the custom shell exits. `Write.exe` creates a 32-bit `wordpad.exe` process and exits. Since Shell Launcher isn't aware of the newly created `wordpad.exe` process, Shell Launcher takes action based on the exit code of `Write.exe`, such as restarting the custom shell
|
||||||
|
|
||||||
## Configure a device with Shell Launcher
|
|
||||||
|
|
||||||
The configuration of Shell Launcher is done using an XML file. The XML file is applied to the device via the [Assigned Access CSP](/windows/client-management/mdm/assignedaccess-csp#shelllauncher), using one of the following options:
|
|
||||||
|
|
||||||
- A Mobile Device Management (MDM) solution, like Microsoft Intune
|
|
||||||
- Provisioning packages
|
|
||||||
- The MDM Bridge WMI Provider
|
|
||||||
|
|
||||||
To learn how to configure the Shell Launcher XML file, see [Create a Shell Launcher configuration file](configuration-file.md).
|
|
||||||
|
|
||||||
[!INCLUDE [tab-intro](../../../includes/configure/tab-intro.md)]
|
|
||||||
|
|
||||||
#### [:::image type="icon" source="../../images/icons/intune.svg"::: **Intune/CSP**](#tab/intune)
|
|
||||||
|
|
||||||
You can configure devices using a [custom policy][MEM-1] with the [AssignedAccess CSP][WIN-3].
|
|
||||||
|
|
||||||
- **Setting:** `./Vendor/MSFT/AssignedAccess/ShellLauncher`
|
|
||||||
- **Value:** content of the XML configuration file
|
|
||||||
|
|
||||||
Assign the policy to a group that contains as members the devices that you want to configure.
|
|
||||||
|
|
||||||
#### [:::image type="icon" source="../../images/icons/provisioning-package.svg"::: **PPKG**](#tab/ppkg)
|
|
||||||
|
|
||||||
[!INCLUDE [provisioning-package-1](../../../includes/configure/provisioning-package-1.md)]
|
|
||||||
|
|
||||||
- **Path:** `SMISettings/ShellLauncher`
|
|
||||||
- **Value:** depends on specific settings
|
|
||||||
|
|
||||||
[!INCLUDE [provisioning-package-2](../../../includes/configure/provisioning-package-2.md)]
|
|
||||||
|
|
||||||
#### [:::image type="icon" source="../images/icons/powershell.svg"::: **PowerShell**](#tab/ps)
|
|
||||||
|
|
||||||
[!INCLUDE [powershell-wmi-bridge-1](../../../includes/configure/powershell-wmi-bridge-1.md)]
|
|
||||||
|
|
||||||
```PowerShell
|
|
||||||
$shellLauncherConfiguration = @"
|
|
||||||
|
|
||||||
# content of the XML configuration file
|
|
||||||
|
|
||||||
"@
|
|
||||||
|
|
||||||
$namespaceName="root\cimv2\mdm\dmmap"
|
|
||||||
$className="MDM_AssignedAccess"
|
|
||||||
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
|
|
||||||
$obj.ShellLauncher = [System.Net.WebUtility]::HtmlEncode($shellLauncherConfiguration)
|
|
||||||
$obj = Set-CimInstance -CimInstance $obj -ErrorVariable cimSetError -ErrorAction SilentlyContinue
|
|
||||||
if($cimSetError) {
|
|
||||||
Write-Output "An ERROR occurred. Displaying error record and attempting to retrieve error logs...`n"
|
|
||||||
Write-Error -ErrorRecord $cimSetError[0]
|
|
||||||
|
|
||||||
$timeout = New-TimeSpan -Seconds 30
|
|
||||||
$stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
|
|
||||||
$eventLogFilterHashTable = @{ LogName='Microsoft-Windows-AssignedAccess/Admin' }
|
|
||||||
do{
|
|
||||||
$events = Get-WinEvent -FilterHashtable $eventLogFilterHashTable -ErrorAction Ignore
|
|
||||||
} until ($events.Count -or $stopwatch.Elapsed -gt $timeout) # wait for the log to be available
|
|
||||||
|
|
||||||
if($events.Count) {
|
|
||||||
$events | ForEach-Object {
|
|
||||||
Write-Output "$($_.TimeCreated) [$($_.LevelDisplayName.ToUpper())] $($_.Message -replace "`n|`r")"
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Write-Warning "Timed-out attempting to retrieve event logs..."
|
|
||||||
}
|
|
||||||
|
|
||||||
Exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Output "Successfully applied Shell Launcher configuration"
|
|
||||||
```
|
|
||||||
|
|
||||||
[!INCLUDE [powershell-wmi-bridge-2](../../../includes/configure/powershell-wmi-bridge-2.md)]
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> For practical examples, see the [Quickstart: configure a kiosk experience with Shell Launcher](quickstart-kiosk.md).
|
|
||||||
|
|
||||||
## User experience
|
|
||||||
|
|
||||||
After the settings are applied, the users that are configured to use Shell Launcher will execute the custom shell after sign-in.
|
|
||||||
|
|
||||||
Depending on your configuration, you can have a user to automatically sign in to the device.
|
|
||||||
|
|
||||||
## Next steps
|
|
||||||
|
|
||||||
> [!div class="nextstepaction"]
|
|
||||||
> Learn how to configure the Shell Launcher XML file:
|
|
||||||
>
|
|
||||||
> [Create a Shell Launcher configuration file](configuration-file.md)
|
|
||||||
|
|
||||||
<!--links-->
|
|
||||||
|
|
||||||
[MEM-1]: /mem/intune/configuration/custom-settings-windows-10
|
|
||||||
[WIN-3]: /windows/client-management/mdm/assignedaccess-csp
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
items:
|
items:
|
||||||
- name: Overview
|
- name: Overview
|
||||||
href: index.md
|
href: index.md
|
||||||
|
- name: Configure a kiosk with Shell Launcher
|
||||||
|
href: configure.md
|
||||||
- name: "Quickstart: Configure a kiosk with Shell Launcher"
|
- name: "Quickstart: Configure a kiosk with Shell Launcher"
|
||||||
href: quickstart-kiosk.md
|
href: quickstart-kiosk.md
|
||||||
- name: Create a configuration file
|
- name: Create a configuration file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user