mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-05-12 05:17:22 +00:00
updates
This commit is contained in:
parent
63455642ae
commit
d14d4d8349
@ -2,9 +2,9 @@ items:
|
||||
- name: Overview
|
||||
href: index.md
|
||||
- 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)
|
||||
href: multi-app-kiosk.md
|
||||
href: configure-multi-app-kiosk.md
|
||||
- name: Create a configuration file
|
||||
href: configuration-file.md
|
||||
- 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
|
||||
- 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:
|
||||
- name: Overview
|
||||
href: index.md
|
||||
- name: Configure a kiosk with Shell Launcher
|
||||
href: configure.md
|
||||
- name: "Quickstart: Configure a kiosk with Shell Launcher"
|
||||
href: quickstart-kiosk.md
|
||||
- name: Create a configuration file
|
||||
|
Loading…
x
Reference in New Issue
Block a user