updates
@ -1,289 +0,0 @@
|
||||
---
|
||||
title: Set up a single-app kiosk on Windows
|
||||
description: A single-use device is easy to set up in Windows Pro, Enterprise, and Education editions.
|
||||
ms.topic: article
|
||||
ms.date: 07/12/2023
|
||||
---
|
||||
|
||||
# Set up a single-app kiosk
|
||||
|
||||
A single-app kiosk uses the Assigned Access feature to run a single app above the lock screen. When the kiosk account signs in, the app is launched automatically. The person using the kiosk cannot do anything on the device outside of the kiosk app.
|
||||
|
||||

|
||||
|
||||
>[!IMPORTANT]
|
||||
>[User account control (UAC)](/windows/security/identity-protection/user-account-control/user-account-control-overview) must be turned on to enable kiosk mode.
|
||||
>
|
||||
>Kiosk mode is not supported over a remote desktop connection. Your kiosk users must sign in on the physical device that is set up as a kiosk. Apps that run in kiosk mode cannot use copy and paste.
|
||||
|
||||
You have several options for configuring your single-app kiosk.
|
||||
|
||||
- Locally, in Settings: The **Set up a kiosk** (previously named **Set up assigned access**) option in **Settings** is a quick and easy method to set up a single device as a kiosk for a local standard user account.
|
||||
|
||||
This option supports:
|
||||
|
||||
- Windows 10 Pro, Enterprise, and Education
|
||||
- Windows 11
|
||||
|
||||
- PowerShell: You can use Windows PowerShell cmdlets to set up a single-app kiosk. First, you need to [create the user account](https://support.microsoft.com/help/4026923/windows-create-a-local-user-or-administrator-account-in-windows-10) on the device and install the kiosk app for that account.
|
||||
|
||||
This option supports:
|
||||
|
||||
- Windows 10 Pro, Enterprise, and Education
|
||||
- Windows 11
|
||||
|
||||
- The kiosk wizard in Windows Configuration Designer: Windows Configuration Designer is a tool that produces a *provisioning package*. A provisioning package includes configuration settings that can be applied to one or more devices during the first-run experience (OOBE), or after OOBE is done (runtime). Using the kiosk wizard, you can also create the kiosk user account, install the kiosk app, and configure more useful settings.
|
||||
|
||||
This option supports:
|
||||
|
||||
- Windows 10 Pro version 1709+, Enterprise, and Education
|
||||
- Windows 11
|
||||
|
||||
- Microsoft Intune or other mobile device management (MDM) provider: For devices managed by your organization, you can use MDM to set up a kiosk configuration.
|
||||
|
||||
This option supports:
|
||||
|
||||
- Windows 10 Pro version 1709+, Enterprise, and Education
|
||||
- Windows 11
|
||||
|
||||
> [!TIP]
|
||||
> You can also configure a kiosk account and app for single-app kiosk within [XML in a provisioning package](lock-down-windows-10-to-specific-apps.md) by using a [kiosk profile](lock-down-windows-10-to-specific-apps.md#profile).
|
||||
|
||||
>
|
||||
> Be sure to check the [configuration recommendations](kiosk-prepare.md) before you set up your kiosk.
|
||||
|
||||
## Set up a kiosk in local Settings
|
||||
|
||||
App type:
|
||||
|
||||
- UWP
|
||||
|
||||
OS:
|
||||
|
||||
- Windows 10 Pro, Ent, Edu
|
||||
- Windows 11
|
||||
|
||||
Account type:
|
||||
|
||||
- Local standard user
|
||||
|
||||
You can use **Settings** to quickly configure one or a few devices as a kiosk.
|
||||
|
||||
When your kiosk is a local device that isn't managed by Active Directory or Microsoft Entra ID, there is a default setting that enables automatic sign-in after a restart. That means that when the device restarts, the last signed-in user will be signed in automatically. If the last signed-in user is the kiosk account, the kiosk app will be launched automatically after the device restarts.
|
||||
|
||||
- If you want the kiosk account to sign in automatically, and the kiosk app launched when the device restarts, then you don't need to do anything.
|
||||
|
||||
- If you don't want the kiosk account to sign in automatically when the device restarts, then you must change the default setting before you configure the device as a kiosk. Sign in with the account that you will assign as the kiosk account. Open the **Settings** app > **Accounts** > **Sign-in options**. Set the **Use my sign-in info to automatically finish setting up my device after an update or restart** setting to **Off**. After you change the setting, you can apply the kiosk configuration to the device.
|
||||
|
||||

|
||||
|
||||
## Set up a kiosk using Windows PowerShell
|
||||
|
||||
App type:
|
||||
|
||||
- UWP
|
||||
|
||||
OS:
|
||||
|
||||
- Windows 10 Pro, Ent, Edu
|
||||
- Windows 11
|
||||
|
||||
Account type:
|
||||
|
||||
- Local standard user
|
||||
|
||||

|
||||
|
||||
You can use any of the following PowerShell cmdlets to set up assigned access on multiple devices.
|
||||
|
||||
Before you run the cmdlet:
|
||||
|
||||
1. Sign in as administrator.
|
||||
1. [Create the user account](https://support.microsoft.com/help/4026923/windows-create-a-local-user-or-administrator-account-in-windows-10) for Assigned Access.
|
||||
1. Sign in as the Assigned Access user account.
|
||||
1. Install the Universal Windows app that follows the assigned access/above the lock guidelines.
|
||||
1. Sign out as the Assigned Access user account.
|
||||
1. Sign in as administrator.
|
||||
|
||||
To open PowerShell on Windows client, search for PowerShell, and find **Windows PowerShell Desktop app** in the results. Run PowerShell as administrator.
|
||||
|
||||
- **Configure assigned access by AppUserModelID and user name**: `Set-AssignedAccess -AppUserModelId <AUMID> -UserName <username>`
|
||||
- **Configure assigned access by AppUserModelID and user SID**: `Set-AssignedAccess -AppUserModelId <AUMID> -UserSID <usersid>`
|
||||
- **Configure assigned access by app name and user name**: `Set-AssignedAccess -AppName <CustomApp> -UserName <username>`
|
||||
- **Configure assigned access by app name and user SID**: `Set-AssignedAccess -AppName <CustomApp> -UserSID <usersid>`
|
||||
|
||||
> [!NOTE]
|
||||
> To set up assigned access using `-AppName`, the user account that you enter for assigned access must have signed in at least once.
|
||||
|
||||
[Learn how to get the AUMID](./find-the-application-user-model-id-of-an-installed-app.md).
|
||||
|
||||
[Learn how to get the AppName](/powershell/module/assignedaccess/set-assignedaccess) (see **Parameters**).
|
||||
|
||||
To remove assigned access, using PowerShell, run the following cmdlet:
|
||||
|
||||
```powershell
|
||||
Clear-AssignedAccess
|
||||
```
|
||||
|
||||
## Set up a kiosk using the kiosk wizard in Windows Configuration Designer
|
||||
|
||||
App type:
|
||||
|
||||
- UWP
|
||||
- Windows desktop application
|
||||
|
||||
OS:
|
||||
|
||||
- Windows 10 Pro version 1709+ for UWP only
|
||||
- Windows 10 Ent, Edu for UWP and Windows desktop applications
|
||||
- Windows 11
|
||||
|
||||
Account type:
|
||||
|
||||
- Local standard user
|
||||
- Active Directory
|
||||
|
||||

|
||||
|
||||
>[!IMPORTANT]
|
||||
>When Exchange Active Sync (EAS) password restrictions are active on the device, the autologon feature does not work. This behavior is by design. For more informations, see [How to turn on automatic logon in Windows](/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon).
|
||||
|
||||
When you use the **Provision kiosk devices** wizard in Windows Configuration Designer, you can configure the kiosk to run either a Universal Windows app or a Windows desktop application.
|
||||
|
||||
[Install Windows Configuration Designer](../provisioning-packages/provisioning-install-icd.md), then open Windows Configuration Designer and select **Provision kiosk devices**. After you name your project, and select **Next**, configure the following settings:
|
||||
|
||||
1. Enable device setup:
|
||||
|
||||
:::image type="content" source="images/set-up-device-details.png" alt-text="In Windows Configuration Designer, enable device setup, enter the device name, the product key to upgrade, turn off shared use, and remove preinstalled software.":::
|
||||
|
||||
If you want to enable device setup, select **Set up device**, and configure the following settings:
|
||||
|
||||
- **Device name**: Required. Enter a unique 15-character name for the device. You can use variables to add unique characters to the name, such as `Contoso-%SERIAL%` and `Contoso-%RAND:5%`.
|
||||
- **Enter product key**: Optional. Select a license file to upgrade Windows client to a different edition. For more information, see [the permitted upgrades](/windows/deployment/upgrade/windows-10-edition-upgrades).
|
||||
- **Configure devices for shared use**: This setting optimizes Windows client for shared use scenarios, and isn't necessary for a kiosk scenario. Set this value to **No**, which may be the default.
|
||||
- **Remove pre-installed software**: Optional. Select **Yes** if you want to remove preinstalled software.
|
||||
|
||||
1. Set up the network:
|
||||
|
||||
:::image type="content" source="images/set-up-network-details.png" alt-text="In Windows Configuration Designer, turn on wireless connectivity, enter the network SSID, and network type.":::
|
||||
|
||||
If you want to enable network setup, select **Set up network**, and configure the following settings:
|
||||
|
||||
- **Set up network**: To enable wireless connectivity, select **On**.
|
||||
- **Network SSID**: Enter the Service Set Identifier (SSID) of the network.
|
||||
- **Network type**: Select **Open** or **WPA2-Personal**. If you select **WPA2-Personal**, enter the password for the wireless network.
|
||||
|
||||
1. Enable account management:
|
||||
|
||||
:::image type="content" source="images/account-management-details.png" alt-text="In Windows Configuration Designer, join Active Directory, Microsoft Entra ID, or create a local admin account.":::
|
||||
|
||||
If you want to enable account management, select **Account Management**, and configure the following settings:
|
||||
|
||||
- **Manage organization/school accounts**: Choose how devices are enrolled. Your options:
|
||||
- **Active Directory**: Enter the credentials for a least-privileged user account to join the device to the domain.
|
||||
- **Microsoft Entra ID**: Before you use a Windows Configuration Designer wizard to configure bulk Microsoft Entra enrollment, [set up Microsoft Entra join in your organization](/azure/active-directory/active-directory-azureadjoin-setup). In your Microsoft Entra tenant, the **maximum number of devices per user** setting determines how many times the bulk token in the wizard can be used.
|
||||
|
||||
If you select this option, enter a friendly name for the bulk token you get using the wizard. Set an expiration date for the token. The maximum is 180 days from the date you get the token. Select **Get bulk token**. In **Let's get you signed in**, enter an account that has permissions to join a device to Microsoft Entra ID, and then the password. Select **Accept** to give Windows Configuration Designer the necessary permissions.
|
||||
|
||||
You must run Windows Configuration Designer on Windows client to configure Microsoft Entra enrollment using any of the wizards.
|
||||
|
||||
- **Local administrator**: If you select this option, enter a user name and password. If you create a local account in the provisioning package, you must change the password using the **Settings** app every 42 days. If the password isn't changed during that period, the account might be locked out, and unable to sign in.
|
||||
|
||||
1. Add applications:
|
||||
|
||||
:::image type="content" source="images/add-applications-details.png" alt-text="In Windows Configuration Designer, add an application that will run in kiosk mode.":::
|
||||
|
||||
To add applications to the devices, select **Add applications**. You can install multiple applications in a provisioning package, including Windows desktop applications (Win32) and Universal Windows Platform (UWP) apps. The settings in this step vary depending on the application you select. For help with the settings, see [Provision PCs with apps](../provisioning-packages/provision-pcs-with-apps.md).
|
||||
|
||||
> [!WARNING]
|
||||
> If you select the plus button to add an application, you must enter an application for the provisioning package to validate. If you select the plus button by mistake, then:
|
||||
>
|
||||
> 1. In **Installer Path**, select any executable file.
|
||||
> 1. When the **Cancel** button shows, select it.
|
||||
>
|
||||
> These steps let you complete the provisioning package without adding an application.
|
||||
|
||||
1. Add certificates:
|
||||
|
||||
:::image type="content" source="images/add-certificates-details.png" alt-text="In Windows Configuration Designer, add a certificate.":::
|
||||
|
||||
To add a certificate to the devices, select **Add certificates**, and configure the following settings:
|
||||
|
||||
- **Certificate name**: Enter a name for the certificate.
|
||||
- **Certificate path**: Browse and select the certificate you want to add.
|
||||
|
||||
1. Configure the kiosk account, and the kiosk mode app:
|
||||
|
||||
:::image type="content" source="images/kiosk-account-details.png" alt-text="In Windows Configuration Designer, the Configure kiosk common settings button is shown when provisioning a kiosk device.":::
|
||||
|
||||
To add the account that runs the app and choose the app type, select **Configure kiosk account and app**, and configure the following settings:
|
||||
|
||||
- **Create a local standard user account to run the kiosk mode app**: Select **Yes** to create a local standard user account, and enter the **User name** and **Password**. This user account runs the app. If you select **No**, make sure you have an existing user account to run the kiosk app.
|
||||
- **Auto sign-in**: Select **Yes** to automatically sign in the account when the device starts. **No** doesn't automatically sign in the account. If there are issues with auto sign-in after you apply the provisioning package, then check the Event Viewer logs for auto logon issues (`Applications and Services Logs\Microsoft\Windows\Authentication User Interface\Operational`).
|
||||
- **Configure the kiosk mode app**: Enter the **User name** of the account that will run the kiosk mode app. In **App type**, select the type of app to run. Your options:
|
||||
- **Windows desktop application**: Enter the path or filename. If the file path is in the PATH environment variable, then you can use the filename. Otherwise, the full path is required.
|
||||
- **Universal Windows app**: Enter the AUMID.
|
||||
|
||||
1. Configure kiosk common settings:
|
||||
|
||||
:::image type="content" source="images/kiosk-common-details.png" alt-text="In Windows Configuration Designer, set tablet mode, configure the welcome and shutdown screens, and turn off the power timeout settings.":::
|
||||
|
||||
To configure the tablet mode, configure welcome and shutdown screens, and set the power settings, select **Configure kiosk common settings**, and configure the following settings:
|
||||
|
||||
- **Set tablet mode**
|
||||
- **Customize user experience**
|
||||
- **Configure power settings**
|
||||
|
||||
1. Finish:
|
||||
|
||||
:::image type="content" source="images/finish-details.png" alt-text="In Windows Configuration Designer, protect your package with a password.":::
|
||||
|
||||
To complete the wizard, select **Finish**, and configure the following setting:
|
||||
|
||||
- **Protect your package**: Select **Yes** to password protect your provisioning package. When you apply the provisioning package to a device, you must enter this password.
|
||||
|
||||
>[!NOTE]
|
||||
>If you want to use [the advanced editor in Windows Configuration Designer](../provisioning-packages/provisioning-create-package.md#configure-settings), specify the user account and app (by AUMID) in **Runtime settings** > **AssignedAccess** > **AssignedAccessSettings**
|
||||
|
||||
>[!IMPORTANT]
|
||||
>When you build a provisioning package, you may include sensitive information in the project files and in the provisioning package (.ppkg) file. Although you have the option to encrypt the .ppkg file, project files are not encrypted. You should store the project files in a secure location and delete the project files when they are no longer needed.
|
||||
|
||||
[Learn how to apply a provisioning package.](../provisioning-packages/provisioning-apply-package.md)
|
||||
|
||||
## Set up a kiosk or digital sign using Microsoft Intune or other MDM service
|
||||
|
||||
App type:
|
||||
|
||||
- UWP
|
||||
|
||||
OS:
|
||||
|
||||
- Windows 10 Pro version 1709+, Ent, Edu
|
||||
- Windows 11
|
||||
|
||||
Account type:
|
||||
|
||||
- Local standard user
|
||||
- Microsoft Entra ID
|
||||
|
||||
Microsoft Intune and other MDM services enable kiosk configuration through the [AssignedAccess configuration service provider (CSP)](/windows/client-management/mdm/assignedaccess-csp). Assigned Access has a `KioskModeApp` setting. In the `KioskModeApp` setting, you enter the user account name and the [AUMID](/windows-hardware/customize/enterprise/find-the-application-user-model-id-of-an-installed-app) for the app to run in kiosk mode.
|
||||
|
||||
>[!TIP]
|
||||
>A ShellLauncher node has been added to the [AssignedAccess CSP](/windows/client-management/mdm/assignedaccess-csp).
|
||||
|
||||
To configure a kiosk in Microsoft Intune, see [Windows client and Windows Holographic for Business device settings to run as a dedicated kiosk using Intune](/intune/kiosk-settings). For other MDM services, see the documentation for your provider.
|
||||
|
||||
## Sign out of assigned access
|
||||
|
||||
To exit the assigned access (kiosk) app, press **Ctrl + Alt + Del**, and then sign in using another account. When you press **Ctrl + Alt + Del** to sign out of assigned access, the kiosk app will exit automatically. If you sign in again as the assigned access account or wait for the sign in screen timeout, the kiosk app relaunches. The assigned access user will remain signed in until an admin account opens **Task Manager** > **Users** and signs out the user account.
|
||||
|
||||
If you press **Ctrl + Alt + Del** and do not sign in to another account, after a set time, assigned access will resume. The default time is 30 seconds, but you can change that in the following registry key:
|
||||
|
||||
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI`
|
||||
|
||||
To change the default time for assigned access to resume, add *IdleTimeOut* (DWORD) and enter the value data as milliseconds in hexadecimal.
|
||||
|
||||
> [!NOTE]
|
||||
> **IdleTimeOut** doesn't apply to the new Microsoft Edge kiosk mode.
|
||||
|
||||
The Breakout Sequence of **Ctrl + Alt + Del** is the default, but this sequence can be configured to be a different sequence of keys. The breakout sequence uses the format **modifiers + keys**. An example breakout sequence would look something like **Shift + Alt + a**, where **Shift** and **Alt** are the modifiers and **a** is the key value. For more information, see [Microsoft Edge kiosk XML sample](/windows/configuration/kiosk-xml#microsoft-edge-kiosk-xml-sample).
|
@ -1,524 +0,0 @@
|
||||
---
|
||||
title: Set up a multi-app kiosk on Windows 10
|
||||
description: Learn how to configure a kiosk device running Windows 10 so that users can only run a few specific apps.
|
||||
ms.topic: how-to
|
||||
ms.date: 11/08/2023
|
||||
---
|
||||
|
||||
# Set up a multi-app kiosk on Windows 10 devices
|
||||
|
||||
A kiosk device typically runs a single application, and users are prevented from accessing any features or functions on the device outside of the app.
|
||||
|
||||
The assigned access feature is intended for dedicated devices, like kiosks. When the multi-app assigned access configuration is applied on the device, [certain policies](kiosk-policies.md) are enforced system-wide, impacting other users on the device. Deleting the kiosk configuration removes the assigned access lockdown profiles associated with the users, but it can't revert all the enforced policies (for example, the Start layout). To clear all the policy settings enforced by Assigned Access, you must reset Windows.
|
||||
|
||||
## Configure a kiosk in Microsoft Intune
|
||||
|
||||
To configure a kiosk in Microsoft Intune, see:
|
||||
|
||||
- [Windows client and Windows Holographic for Business device settings to run as a dedicated kiosk using Intune](/intune/kiosk-settings)
|
||||
- [Windows client device settings to run as a kiosk in Intune](/intune/kiosk-settings-windows)
|
||||
|
||||
## Configure a kiosk using a provisioning package
|
||||
|
||||
Process:
|
||||
|
||||
1. [Create XML file](#create-xml-file)
|
||||
1. [Add XML file to provisioning package](#add-xml)
|
||||
1. [Apply provisioning package to device](#apply-ppkg)
|
||||
|
||||
Watch how to use a provisioning package to configure a multi-app kiosk.
|
||||
|
||||
> [!VIDEO https://www.microsoft.com/videoplayer/embed/fa125d0f-77e4-4f64-b03e-d634a4926884?autoplay=false]
|
||||
|
||||
### Create XML file
|
||||
|
||||
#### Profile
|
||||
|
||||
There are two types of profiles that you can specify in the XML:
|
||||
|
||||
- **Lockdown profile**: Users assigned a lockdown profile will see the desktop in tablet mode with the specific apps on the Start screen.
|
||||
- **Kiosk profile**: Starting with Windows 10 version 1803, this profile replaces the KioskModeApp node of the [AssignedAccess CSP](/windows/client-management/mdm/assignedaccess-csp). Users assigned a kiosk profile won't see the desktop, but only the kiosk app running in full-screen mode.
|
||||
|
||||
A lockdown profile section in the XML has the following entries:
|
||||
|
||||
- [**Id**](#id)
|
||||
- [**AllowedApps**](#allowedapps)
|
||||
- [**FileExplorerNamespaceRestrictions**](#fileexplorernamespacerestrictions)
|
||||
- [**StartLayout**](#startlayout)
|
||||
- [**Taskbar**](#taskbar)
|
||||
|
||||
A kiosk profile in the XML has the following entries:
|
||||
|
||||
- [**Id**](#id)
|
||||
- [**KioskModeApp**](#kioskmodeapp)
|
||||
|
||||
##### Id
|
||||
|
||||
The profile **Id** is a GUID attribute to uniquely identify the profile. You can create a GUID using a GUID generator. The GUID just needs to be unique within this XML file.
|
||||
|
||||
```xml
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">…</Profile>
|
||||
</Profiles>
|
||||
```
|
||||
|
||||
##### AllowedApps
|
||||
|
||||
**AllowedApps** is a list of applications that are allowed to run. Apps can be Universal Windows Platform (UWP) apps or Windows desktop applications. Starting with Windows 10 version 1809, you can configure a single app in the **AllowedApps** list to run automatically when the assigned access user account signs in.
|
||||
|
||||
- For UWP apps, you need to provide the App User Model ID (AUMID). [Learn how to get the AUMID](./find-the-application-user-model-id-of-an-installed-app.md), or [get the AUMID from the Start Layout XML](#startlayout).
|
||||
- For desktop apps, you need to specify the full path of the executable, which can contain one or more system environment variables in the form of `%variableName%`. For example, `%systemroot%` or `%windir%`.
|
||||
- If an app has a dependency on another app, both must be included in the allowed apps list. For example, Internet Explorer 64-bit has a dependency on Internet Explorer 32-bit, so you must allow both `"C:\Program Files\internet explorer\iexplore.exe"` and `"C:\Program Files (x86)\Internet Explorer\iexplore.exe"`.
|
||||
- To configure a single app to launch automatically when the user signs in, include `rs5:AutoLaunch="true"` after the AUMID or path. You can also include arguments to be passed to the app. For an example, see [the AllowedApps sample XML](#apps-sample).
|
||||
|
||||
When the multi-app kiosk configuration is applied to a device, AppLocker rules will be generated to allow the apps that are listed in the configuration. Here are the predefined assigned access AppLocker rules for **UWP apps**:
|
||||
|
||||
1. Default rule is to allow all users to launch the signed package apps.
|
||||
1. The package app blocklist is generated at runtime when the assigned access user signs in. Based on the installed/provisioned package apps available for the user account, assigned access generates the blocklist. This list will exclude the default allowed inbox package apps, which are critical for the system to function. It then excludes the allowed packages that enterprises defined in the assigned access configuration. If there are multiple apps within the same package, all these apps will be excluded. This blocklist will be used to prevent the user from accessing the apps that are currently available for the user but not in the allowed list.
|
||||
|
||||
> [!NOTE]
|
||||
> You can't manage AppLocker rules that are generated by the multi-app kiosk configuration in [MMC snap-ins](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh994629(v=ws.11)#BKMK_Using_Snapins). Avoid creating AppLocker rules that conflict with AppLocker rules that are generated by the multi-app kiosk configuration.
|
||||
>
|
||||
> Multi-app kiosk mode doesn't block the enterprise or the users from installing UWP apps. When a new UWP app is installed during the current assigned access user session, this app will not be in the deny list. When the user signs out and signs in again, the app will be included in the blocklist. If this is an enterprise-deployed line-of-business app and you want to allow it to run, update the assigned access configuration to include it in the allowed app list.
|
||||
|
||||
Here are the predefined assigned access AppLocker rules for **desktop apps**:
|
||||
|
||||
1. Default rule is to allow all users to launch the desktop programs signed with Microsoft Certificate in order for the system to boot and function. The rule also allows the admin user group to launch all desktop programs.
|
||||
1. There's a predefined inbox desktop app blocklist for the assigned access user account, and this blocklist is adjusted based on the desktop app allowlist that you defined in the multi-app configuration.
|
||||
1. Enterprise-defined allowed desktop apps are added in the AppLocker allowlist.
|
||||
|
||||
The following example allows Groove Music, Movies & TV, Photos, Weather, Calculator, Paint, and Notepad apps to run on the device, with Notepad configured to automatically launch and create a file called `123.text` when the user signs in.
|
||||
|
||||
```xml
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" />
|
||||
<App AppUserModelId="Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo" />
|
||||
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
<App DesktopAppPath="%windir%\system32\mspaint.exe" />
|
||||
<App DesktopAppPath="C:\Windows\System32\notepad.exe" rs5:AutoLaunch="true" rs5:AutoLaunchArguments="123.txt">
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
```
|
||||
|
||||
##### FileExplorerNamespaceRestrictions
|
||||
|
||||
Starting in Windows 10 version 1809, you can explicitly allow some known folders to be accessed when the user tries to open the file dialog box in multi-app assigned access by including **FileExplorerNamespaceRestrictions** in your XML file. Currently, **Downloads** is the only folder supported. This behavior can also be set using Microsoft Intune.
|
||||
|
||||
The following example shows how to allow user access to the Downloads folder in the common file dialog box.
|
||||
|
||||
> [!TIP]
|
||||
> To grant access to the Downloads folder through File Explorer, add "Explorer.exe" to the list of allowed apps, and pin a file explorer shortcut to the kiosk start menu.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="https://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="https://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
> <Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
...
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<StartLayout>
|
||||
...
|
||||
</StartLayout>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
`FileExplorerNamespaceRestriction` has been extended in current Windows 10 Prerelease for finer granularity and easier use. For more information and full samples, see [Assigned access XML reference](kiosk-xml.md). By using new elements, you can configure whether a user can access the Downloads folder or removable drives, or have no restrictions at all.
|
||||
|
||||
> [!NOTE]
|
||||
> - `FileExplorerNamespaceRestrictions` and `AllowedNamespace:Downloads` are available in namespace `https://schemas.microsoft.com/AssignedAccess/201810/config`.
|
||||
> - `AllowRemovableDrives` and `NoRestriction` are defined in a new namespace `https://schemas.microsoft.com/AssignedAccess/2020/config`.
|
||||
|
||||
- When `FileExplorerNamespaceRestrictions` node isn't used, or used but left empty, the user won't be able to access any folder in a common dialog. For example, **Save As** in the Microsoft Edge browser.
|
||||
- When Downloads is mentioned in allowed namespace, user will be able to access Downloads folder.
|
||||
- When `AllowRemovableDrives` is used, user will be to access removable drives.
|
||||
- When `NoRestriction` is used, no restriction will be applied to the dialog.
|
||||
- `AllowRemovableDrives` and `AllowedNamespace:Downloads` can be used at the same time.
|
||||
|
||||
##### StartLayout
|
||||
|
||||
After you define the list of allowed applications, you can customize the Start layout for your kiosk experience. You can choose to pin all the allowed apps on the Start screen or just a subset, depending on whether you want the end user to directly access them on the Start screen.
|
||||
|
||||
The easiest way to create a customized Start layout to apply to other Windows client devices is to set up the Start screen on a test device and then export the layout. For detailed steps, see [Customize and export Start layout](../start/customize-and-export-start-layout.md).
|
||||
|
||||
A few things to note here:
|
||||
|
||||
- The test device on which you customize the Start layout should have the same OS version that is installed on the device where you plan to deploy the multi-app assigned access configuration.
|
||||
- Since the multi-app assigned access experience is intended for fixed-purpose devices, to ensure the device experiences are consistent and predictable, use the *full* Start layout option instead of the *partial* Start layout.
|
||||
- There are no apps pinned on the taskbar in the multi-app mode, and it's not supported to configure Taskbar layout using the `<CustomTaskbarLayoutCollection>` tag in a layout modification XML as part of the assigned access configuration.
|
||||
- The following example uses `DesktopApplicationLinkPath` to pin the desktop app to start. When the desktop app doesn't have a shortcut link on the target device, [learn how to provision .lnk files using Windows Configuration Designer](#lnk-files).
|
||||
|
||||
The following example pins Groove Music, Movies & TV, Photos, Weather, Calculator, Paint, and Notepad apps on Start:
|
||||
|
||||
```xml
|
||||
<StartLayout>
|
||||
<![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="https://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="https://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="https://schemas.microsoft.com/Start/2014/LayoutModification">
|
||||
<LayoutOptions StartTileGroupCellWidth="6" />
|
||||
<DefaultLayoutOverride>
|
||||
<StartLayoutCollection>
|
||||
<defaultlayout:StartLayout GroupCellWidth="6">
|
||||
<start:Group Name="Group1">
|
||||
<start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" />
|
||||
<start:Tile Size="2x2" Column="4" Row="2" AppUserModelID="Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo" />
|
||||
<start:Tile Size="2x2" Column="4" Row="0" AppUserModelID="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<start:Tile Size="2x2" Column="4" Row="4" AppUserModelID="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<start:Tile Size="4x2" Column="0" Row="4" AppUserModelID="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
</start:Group>
|
||||
<start:Group Name="Group2">
|
||||
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" />
|
||||
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk" />
|
||||
</start:Group>
|
||||
</defaultlayout:StartLayout>
|
||||
</StartLayoutCollection>
|
||||
</DefaultLayoutOverride>
|
||||
</LayoutModificationTemplate>
|
||||
]]>
|
||||
</StartLayout>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If an app isn't installed for the user, but is included in the Start layout XML, the app isn't shown on the Start screen.
|
||||
|
||||

|
||||
|
||||
##### Taskbar
|
||||
|
||||
Define whether you want to have the taskbar present in the kiosk device. For tablet-based or touch-enabled all-in-one kiosks, when you don't attach a keyboard and mouse, you can hide the taskbar as part of the multi-app experience if you want.
|
||||
|
||||
The following example exposes the taskbar to the end user:
|
||||
|
||||
```xml
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
```
|
||||
|
||||
The following example hides the taskbar:
|
||||
|
||||
```xml
|
||||
<Taskbar ShowTaskbar="false"/>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> This is different from the **Automatically hide the taskbar** option in tablet mode, which shows the taskbar when swiping up from or moving the mouse pointer down to the bottom of the screen. Setting **ShowTaskbar** as **false** will always keep the taskbar hidden.
|
||||
|
||||
##### KioskModeApp
|
||||
|
||||
**KioskModeApp** is used for a [kiosk profile](#profile) only. Enter the AUMID for a single app. You can only specify one kiosk profile in the XML.
|
||||
|
||||
```xml
|
||||
<KioskModeApp AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"/>
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The kiosk profile is designed for public-facing kiosk devices. We recommend that you use a local, non-administrator account. If the device is connected to your company network, using a domain or Microsoft Entra account could potentially compromise confidential information.
|
||||
|
||||
#### Configs
|
||||
|
||||
Under **Configs**, define which user account will be associated with the profile. When this user account signs in on the device, the associated assigned access profile will be enforced. This behavior includes the allowed apps, Start layout, taskbar configuration, and other local group policies or mobile device management (MDM) policies set as part of the multi-app experience.
|
||||
|
||||
The full multi-app assigned access experience can only work for non-admin users. It's not supported to associate an admin user with the assigned access profile. Making this configuration in the XML file will result in unexpected or unsupported experiences when this admin user signs in.
|
||||
|
||||
You can assign:
|
||||
|
||||
- [A local standard user account that signs in automatically](#config-for-autologon-account) (Applies to Windows 10, version 1803 only)
|
||||
- [An individual account, which can be local, domain, or Microsoft Entra ID](#config-for-individual-accounts)
|
||||
- [A group account, which can be local, Active Directory (domain), or Microsoft Entra ID](#config-for-group-accounts) (Applies to Windows 10, version 1803 only).
|
||||
|
||||
> [!NOTE]
|
||||
> Configs that specify group accounts cannot use a kiosk profile, only a lockdown profile. If a group is configured to a kiosk profile, the CSP will reject the request.
|
||||
|
||||
##### Config for AutoLogon Account
|
||||
|
||||
When you use `<AutoLogonAccount>` and the configuration is applied to a device, the specified account (managed by Assigned Access) is created on the device as a local standard user account. The specified account is signed in automatically after restart.
|
||||
|
||||
The following example shows how to specify an account to sign in automatically.
|
||||
|
||||
```xml
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount/>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
```
|
||||
|
||||
Starting with Windows 10 version 1809, you can configure the display name that will be shown when the user signs in. The following example shows how to create an AutoLogon Account that shows the name "Hello World".
|
||||
|
||||
```xml
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Hello World"/>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
```
|
||||
|
||||
On domain-joined devices, local user accounts aren't shown on the sign-in screen by default. To show the **AutoLogonAccount** on the sign-in screen, enable the following Group Policy setting: **Computer Configuration > Administrative Templates > System > Logon > Enumerate local users on domain-joined computers**. (The corresponding MDM policy setting is [WindowsLogon/EnumerateLocalUsersOnDomainJoinedComputers in the Policy CSP](/windows/client-management/mdm/policy-csp-windowslogon#windowslogon-enumeratelocalusersondomainjoinedcomputers).)
|
||||
|
||||
> [!IMPORTANT]
|
||||
> When Exchange Active Sync (EAS) password restrictions are active on the device, the autologon feature does not work. This behavior is by design. For more informations, see [How to turn on automatic logon in Windows](/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon).
|
||||
|
||||
##### Config for individual accounts
|
||||
|
||||
Individual accounts are specified using `<Account>`.
|
||||
|
||||
- Local account can be entered as `machinename\account` or `.\account` or just `account`.
|
||||
- Domain account should be entered as `domain\account`.
|
||||
- Microsoft Entra account must be specified in this format: `AzureAD\{email address}`. **AzureAD** must be provided _as is_, and consider it's a fixed domain name. Then follow with the Microsoft Entra ID email address. For example, `AzureAD\someone@contoso.onmicrosoft.com`
|
||||
|
||||
> [!WARNING]
|
||||
> Assigned access can be configured via WMI or CSP to run its applications under a domain user or service account, rather than a local account. However, use of domain user or service accounts introduces risks that an attacker subverting the assigned access application might gain access to sensitive domain resources that have been inadvertently left accessible to any domain account. We recommend that customers proceed with caution when using domain accounts with assigned access, and consider the domain resources potentially exposed by the decision to do so.
|
||||
|
||||
Before applying the multi-app configuration, make sure the specified user account is available on the device, otherwise it will fail.
|
||||
|
||||
> [!NOTE]
|
||||
> For both domain and Microsoft Entra accounts, it's not required that target account is explicitly added to the device. As long as the device is AD-joined or Microsoft Entra joined, the account can be discovered in the domain forest or tenant that the device is joined to. For local accounts, it is required that the account exist before you configure the account for assigned access.
|
||||
|
||||
```xml
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>MultiAppKioskUser</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
```
|
||||
|
||||
##### Config for group accounts
|
||||
|
||||
Group accounts are specified using `<UserGroup>`. Nested groups aren't supported. For example, if user A is member of Group 1, Group 1 is member of Group 2, and Group 2 is used in `<Config/>`, user A won't have the kiosk experience.
|
||||
|
||||
- Local group: Specify the group type as **LocalGroup** and put the group name in Name attribute. Any Microsoft Entra accounts that are added to the local group won't have the kiosk settings applied.
|
||||
|
||||
```xml
|
||||
<Config>
|
||||
<UserGroup Type="LocalGroup" Name="mygroup" />
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
```
|
||||
|
||||
- Domain group: Both security and distribution groups are supported. Specify the group type as <strong>ActiveDirectoryGroup</strong>. Use the domain name as the prefix in the name attribute.
|
||||
|
||||
```xml
|
||||
<Config>
|
||||
<UserGroup Type="ActiveDirectoryGroup" Name="mydomain\mygroup" />
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
```
|
||||
|
||||
- Microsoft Entra group: Use the group object ID from the Azure portal to uniquely identify the group in the Name attribute. You can find the object ID on the overview page for the group in **Users and groups** > **All groups**. Specify the group type as **AzureActiveDirectoryGroup**. The kiosk device must have internet connectivity when users that belong to the group sign-in.
|
||||
|
||||
```xml
|
||||
<Config>
|
||||
<UserGroup Type="AzureActiveDirectoryGroup" Name="a8d36e43-4180-4ac5-a627-fb8149bba1ac" />
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If a Microsoft Entra group is configured with a lockdown profile on a device, a user in the Microsoft Entra group must change their password (after the account has been created with default password on the portal) before they can sign in to this device. If the user uses the default password to sign in to the device, the user will be immediately signed out.
|
||||
|
||||
<span id="add-xml" />
|
||||
|
||||
|
||||
|
||||
### Add XML file to provisioning package
|
||||
|
||||
Before you add the XML file to a provisioning package, you can [validate your configuration XML against the XSD](kiosk-xml.md#xsd-for-assignedaccess-configuration-xml).
|
||||
|
||||
Use the Windows Configuration Designer tool to create a provisioning package. [Learn how to install Windows Configuration Designer.](../provisioning-packages/provisioning-install-icd.md).
|
||||
|
||||
> [!IMPORTANT]
|
||||
> When you build a provisioning package, you may include sensitive information in the project files and in the provisioning package (.ppkg) file. Although you have the option to encrypt the .ppkg file, project files are not encrypted. You should store the project files in a secure location and delete the project files when they are no longer needed.
|
||||
|
||||
1. Open Windows Configuration Designer. By default: `%systemdrive%\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\ICD.exe`.
|
||||
|
||||
1. Choose **Advanced provisioning**.
|
||||
|
||||
1. Name your project, and select **Next**.
|
||||
|
||||
1. Choose **All Windows desktop editions** and select **Next**.
|
||||
|
||||
1. On **New project**, select **Finish**. The workspace for your package opens.
|
||||
|
||||
1. Expand **Runtime settings** > **AssignedAccess** > **MultiAppAssignedAccessSettings**.
|
||||
|
||||
1. In the center pane, select **Browse**. Locate and select the assigned access configuration XML file that you created.
|
||||
|
||||

|
||||
|
||||
1. _Optional: If you want to apply the provisioning package after device initial setup and there's an admin user already available on the kiosk device, skip this step._ Create an admin user account in **Runtime settings** > **Accounts** > **Users**. Provide a **UserName** and **Password**, and select **UserGroup** as **Administrators**. With this account, you can view the provisioning status and logs if needed.
|
||||
|
||||
1. _Optional: If you already have a non-admin account on the kiosk device, skip this step._ Create a local standard user account in **Runtime settings** > **Accounts** > **Users**. Make sure the **UserName** is the same as the account that you specify in the configuration XML. Select **UserGroup** as **Standard Users**.
|
||||
|
||||
1. On the **File** menu, select **Save.**
|
||||
|
||||
1. On the **Export** menu, select **Provisioning package**.
|
||||
|
||||
1. Change **Owner** to **IT Admin**, which will set the precedence of this provisioning package higher than provisioning packages applied to this device from other sources, and then select **Next.**
|
||||
|
||||
1. Optional. In the **Provisioning package security** window, you can choose to encrypt the package and enable package signing.
|
||||
|
||||
- **Enable package encryption** - If you select this option, an auto-generated password will be shown on the screen.
|
||||
|
||||
- **Enable package signing** - If you select this option, you must select a valid certificate to use for signing the package. You can specify the certificate by clicking **Browse** and choosing the certificate you want to use to sign the package.
|
||||
|
||||
1. Select **Next** to specify the output location where you want the provisioning package to go when it's built. By default, Windows Imaging and Configuration Designer (ICD) uses the project folder as the output location.
|
||||
|
||||
Optionally, you can select **Browse** to change the default output location.
|
||||
|
||||
1. Select **Next**.
|
||||
|
||||
1. Select **Build** to start building the package. The provisioning package doesn't take long to build. The project information is displayed in the build page and the progress bar indicates the build status.
|
||||
|
||||
If you need to cancel the build, select **Cancel**. This action cancels the current build process, closes the wizard, and takes you back to the **Customizations Page**.
|
||||
|
||||
1. If your build fails, an error message will show up that includes a link to the project folder. You can scan the logs to determine what caused the error. Once you fix the issue, try building the package again.
|
||||
|
||||
If your build is successful, the name of the provisioning package, output directory, and project directory will be shown.
|
||||
|
||||
- If you choose, you can build the provisioning package again and pick a different path for the output package. To do this action, select **Back** to change the output package name and path, and then select **Next** to start another build.
|
||||
- If you're done, select **Finish** to close the wizard and go back to the **Customizations Page**.
|
||||
|
||||
1. Copy the provisioning package to the root directory of a USB drive.
|
||||
|
||||
<span id="apply-ppkg" />
|
||||
|
||||
### Apply provisioning package to device
|
||||
|
||||
Provisioning packages can be applied to a device during initial setup (out-of-box experience or "OOBE") and after ("runtime"). For more information, see [Apply a provisioning package](../provisioning-packages/provisioning-apply-package.md).
|
||||
|
||||
> [!NOTE]
|
||||
> If your provisioning package doesn't include the assigned access user account creation, make sure the account you specified in the multi-app configuration XML exists on the device.
|
||||
|
||||
### Use MDM to deploy the multi-app configuration
|
||||
|
||||
Multi-app kiosk mode is enabled by the [AssignedAccess configuration service provider (CSP)](/windows/client-management/mdm/assignedaccess-csp). Your MDM policy can contain the assigned access configuration XML.
|
||||
|
||||
If your device is enrolled with an MDM service that supports applying the assigned access configuration, you can use it to apply the setting remotely.
|
||||
|
||||
The OMA-URI for multi-app policy is `./Device/Vendor/MSFT/AssignedAccess/Configuration`.
|
||||
|
||||
## Considerations for Windows Mixed Reality immersive headsets
|
||||
|
||||
With the advent of [mixed reality devices (video link)](https://www.youtube.com/watch?v=u0jqNioU2Lo), you might want to create a kiosk that can run mixed reality apps.
|
||||
|
||||
To create a multi-app kiosk that can run mixed reality apps, you must include the following apps in the [AllowedApps list](#allowedapps):
|
||||
|
||||
```xml
|
||||
<App AppUserModelId="MixedRealityLearning_cw5n1h2txyewy!MixedRealityLearning" />
|
||||
<App AppUserModelId="HoloShell_cw5n1h2txyewy!HoloShell" />
|
||||
<App AppUserModelId="Microsoft.Windows.HolographicFirstRun_cw5n1h2txyewy!App" />
|
||||
<App AppUserModelId="Microsoft.MixedReality.Portal_8wekyb3d8bbwe!App" />
|
||||
```
|
||||
|
||||
These apps are in addition to any mixed reality apps that you allow.
|
||||
|
||||
**Before your kiosk user signs in:** An admin user must sign in to the PC, connect a mixed reality device, and complete the guided setup for the Mixed Reality Portal. The first time that the Mixed Reality Portal is set up, some files and content are downloaded. A kiosk user wouldn't have permissions to download and so their setup of the Mixed Reality Portal would fail.
|
||||
|
||||
After the admin has completed setup, the kiosk account can sign in and repeat the setup. The admin user may want to complete the kiosk user setup before providing the PC to employees or customers.
|
||||
|
||||
There's a difference between the mixed reality experiences for a kiosk user and other users. Typically, when a user connects a mixed reality device, they begin in the [Mixed Reality home](/windows/mixed-reality/discover/navigating-the-windows-mixed-reality-home). The Mixed Reality home is a shell that runs in "silent" mode when the PC is configured as a kiosk. When a kiosk user connects a mixed reality device, they'll see only a blank display in the device, and won't have access to the features and functionality available in the home. To run a mixed reality app, the kiosk user must launch the app from the PC Start screen.
|
||||
|
||||
<!--
|
||||
## Policies set by multi-app kiosk configuration
|
||||
|
||||
It's not recommended to set policies enforced in assigned access multi-app mode to different values using other channels, as the multi-app mode has been optimized to provide a locked-down experience.
|
||||
|
||||
When the multi-app assigned access configuration is applied on the device, certain policies are enforced system-wide, and will affect other users on the device.
|
||||
|
||||
### Group policy
|
||||
|
||||
The following local policies affect all **non-administrator** users on the system, regardless whether the user is configured as an assigned access user or not. This list includes local users, domain users, and Microsoft Entra users.
|
||||
|
||||
| Setting | Value |
|
||||
|--|--|
|
||||
| Remove access to the context menus for the task bar | Enabled |
|
||||
| Clear history of recently opened documents on exit | Enabled |
|
||||
| Prevent users from customizing their Start Screen | Enabled |
|
||||
| Prevent users from uninstalling applications from Start | Enabled |
|
||||
| Remove Run menu from Start Menu | Enabled |
|
||||
| Disable showing balloon notifications as toast | Enabled |
|
||||
| Do not allow pinning items in Jump Lists | Enabled |
|
||||
| Do not allow pinning programs to the Taskbar | Enabled |
|
||||
| Do not display or track items in Jump Lists from remote locations | Enabled |
|
||||
| Remove Notifications and Action Center | Enabled |
|
||||
| Lock all taskbar settings | Enabled |
|
||||
| Lock the Taskbar | Enabled |
|
||||
| Prevent users from adding or removing toolbars | Enabled |
|
||||
| Prevent users from resizing the taskbar | Enabled |
|
||||
| Remove frequent programs list from the Start Menu | Enabled |
|
||||
| Remove Pinned programs from the taskbar | Enabled |
|
||||
| Remove the Security and Maintenance icon | Enabled |
|
||||
| Turn off all balloon notifications | Enabled |
|
||||
| Turn off feature advertisement balloon notifications | Enabled |
|
||||
| Turn off toast notifications | Enabled |
|
||||
| Remove Task Manager | Enabled |
|
||||
| Remove Change Password option in Security Options UI | Enabled |
|
||||
| Remove Sign Out option in Security Options UI | Enabled |
|
||||
| Remove All Programs list from the Start Menu | Enabled - Remove and disable setting |
|
||||
| Prevent access to drives from My Computer | Enabled - Restrict all drives |
|
||||
|
||||
> [!NOTE]
|
||||
> When **Prevent access to drives from My Computer** is enabled, users can browse the directory structure in File Explorer, but they cannot open folders and access the contents. Also, they cannot use the **Run** dialog box or the **Map Network Drive** dialog box to view the directories on these drives. The icons representing the specified drives still appear in File Explorer, but if users double-click the icons, a message appears explaining that a setting prevents the action. This setting does not prevent users from using programs to access local and network drives. It does not prevent users from using the Disk Management snap-in to view and change drive characteristics.
|
||||
|
||||
### MDM policy
|
||||
|
||||
Some of the MDM policies based on the [Policy configuration service provider (CSP)](/windows/client-management/mdm/policy-configuration-service-provider) affect all users on the system.
|
||||
|
||||
Setting | Value | System-wide
|
||||
--- | --- | ---
|
||||
[Experience/AllowCortana](/windows/client-management/mdm/policy-csp-experience#experience-allowcortana) | 0 - Not allowed | Yes
|
||||
[Start/AllowPinnedFolderDocuments](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderdocuments) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderDownloads](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderdownloads) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderFileExplorer](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderfileexplorer) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderHomeGroup](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderhomegroup) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderMusic](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldermusic) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderNetwork](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldernetwork) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderPersonalFolder](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderpersonalfolder) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderPictures](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderpictures) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderSettings](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldersettings) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
[Start/AllowPinnedFolderVideos](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldervideos) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes
|
||||
Start/DisableContextMenus | 1 - Context menus are hidden for Start apps | No
|
||||
[Start/HidePeopleBar](/windows/client-management/mdm/policy-csp-start#start-hidepeoplebar) | 1 - True (hide) | No
|
||||
[Start/HideChangeAccountSettings](/windows/client-management/mdm/policy-csp-start#start-hidechangeaccountsettings) | 1 - True (hide) | Yes
|
||||
[WindowsInkWorkspace/AllowWindowsInkWorkspace](/windows/client-management/mdm/policy-csp-windowsinkworkspace#windowsinkworkspace-allowwindowsinkworkspace) | 0 - Access to ink workspace is disabled and the feature is turned off | Yes
|
||||
[Start/StartLayout](/windows/client-management/mdm/policy-csp-start#start-startlayout) | Configuration dependent | No
|
||||
[WindowsLogon/DontDisplayNetworkSelectionUI](/windows/client-management/mdm/policy-csp-windowslogon#windowslogon-dontdisplaynetworkselectionui) | <Enabled/> | Yes
|
||||
|
||||
-->
|
||||
|
||||
## Provision .lnk files using Windows Configuration Designer
|
||||
|
||||
First, create your desktop app's shortcut file by installing the app on a test device, using the default installation location. Right-click the installed application, and choose **Send to** > **Desktop (create shortcut)**. Rename the shortcut to `<appName>.lnk`
|
||||
|
||||
Next, create a batch file with two commands. If the desktop app is already installed on the target device, skip the first command for MSI install.
|
||||
|
||||
```PowerShell
|
||||
msiexec /I "<appName>.msi" /qn /norestart
|
||||
copy <appName>.lnk "%AllUsersProfile%\Microsoft\Windows\Start Menu\Programs\<appName>.lnk"
|
||||
```
|
||||
|
||||
In Windows Configuration Designer, under **ProvisioningCommands** > **DeviceContext**:
|
||||
|
||||
- Under **CommandFiles**, upload your batch file, your .lnk file, and your desktop app installation file.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Paste the full file path to the .lnk file in the **CommandFiles** field. If you browse to and select the .lnk file, the file path will be changed to the path of the target of the .lnk.
|
||||
|
||||
- Under **CommandLine**, enter `cmd /c *FileName*.bat`.
|
||||
|
||||
## Other methods
|
||||
|
||||
Environments that use WMI can use the [MDM Bridge WMI Provider to configure a kiosk](kiosk-mdm-bridge.md).
|
@ -1,398 +0,0 @@
|
||||
---
|
||||
title: Set up a multi-app kiosk on Windows 11
|
||||
description: Learn how to configure a kiosk device running Windows 11 so that users can only run a few specific apps.
|
||||
ms.date: 05/12/2023
|
||||
appliesto:
|
||||
- ✅ <a href=/windows/release-health/supported-versions-windows-client target=_blank>Windows 11</a>
|
||||
|
||||
ms.topic: how-to
|
||||
---
|
||||
# Set up a multi-app kiosk on Windows 11 devices
|
||||
|
||||
> [!NOTE]
|
||||
> The use of multiple monitors is supported for multi-app kiosk mode in Windows 11.
|
||||
|
||||
An assigned access multi-app kiosk runs one or more apps from the desktop. People using the kiosk see a customized Start that shows only the apps that are allowed. With this approach, you can configure a locked-down experience for different account types. A multi-app kiosk is appropriate for devices that are shared by multiple people. Here's a guide on how to set up a multi-app kiosk.
|
||||
|
||||
> [!WARNING]
|
||||
> The assigned access feature is intended for corporate-owned fixed-purpose devices, like kiosks. When the multi-app assigned access configuration is applied on the device, [certain policies](kiosk-policies.md) are enforced system-wide, and will impact other users on the device. Deleting the kiosk configuration will remove the assigned access lockdown profiles associated with the users, but it cannot revert all the enforced policies (such as Start layout). A factory reset is needed to clear all the policies enforced via assigned access.
|
||||
|
||||
> [!TIP]
|
||||
> Be sure to check the [configuration recommendations](kiosk-prepare.md) before you set up your kiosk.
|
||||
|
||||
<!--
|
||||
## Create the XML file
|
||||
|
||||
Let's start by looking at the basic structure of the XML file.
|
||||
|
||||
- A configuration xml can define multiple *profiles*. Each profile has a unique **Id** and defines a set of applications that are allowed to run, whether the taskbar is visible, and can include a custom Start layout.
|
||||
|
||||
- A configuration xml can have multiple *config* sections. Each config section associates a non-admin user account to a default profile **Id**.
|
||||
|
||||
- Multiple config sections can be associated to the same profile.
|
||||
|
||||
- A profile has no effect if it's not associated to a config section.
|
||||
|
||||
You can start your file by pasting the following XML into an XML editor, and saving the file as *filename*.xml. Each section of this XML is explained in this article.
|
||||
|
||||
> [!NOTE]
|
||||
> If you want to write a configuration file to be applied to both Windows 10 and Windows 11 devices, follow the [Windows 10 instructions](lock-down-windows-10-to-specific-apps.md) to add the StartLayout tag to your XML file, just above the StartPins tag. Windows will automatically ignore the sections that don't apply to the version running.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config">
|
||||
<Profiles>
|
||||
<Profile Id="">
|
||||
<AllAppsList>
|
||||
<AllowedApps/>
|
||||
</AllAppsList>
|
||||
<v5:StartPins/>
|
||||
<Taskbar/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account/>
|
||||
<DefaultProfile Id=""/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
-->
|
||||
|
||||
#### Profile
|
||||
|
||||
There are two types of profiles that you can specify in the XML:
|
||||
|
||||
- **Lockdown profile**: Users assigned a lockdown profile will see the desktop in tablet mode with the specific apps on the Start screen.
|
||||
- **Kiosk profile**: Starting with Windows 10 version 1803, this profile replaces the KioskModeApp node of the [AssignedAccess CSP](/windows/client-management/mdm/assignedaccess-csp). Users assigned a kiosk profile won't see the desktop, but only the kiosk app running in full-screen mode.
|
||||
|
||||
A lockdown profile section in the XML has the following entries:
|
||||
|
||||
- [**Id**](#id)
|
||||
- [**AllowedApps**](#allowedapps)
|
||||
- [**StartPins**](#startpins)
|
||||
- [**Taskbar**](#taskbar)
|
||||
|
||||
A kiosk profile in the XML has the following entries:
|
||||
|
||||
- [**Id**](#id)
|
||||
- [**KioskModeApp**](#kioskmodeapp)
|
||||
|
||||
##### Id
|
||||
|
||||
The profile **Id** is a GUID attribute to uniquely identify the profile. You can create a GUID using a GUID generator. The GUID just needs to be unique within this XML file.
|
||||
|
||||
```xml
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">…</Profile>
|
||||
</Profiles>
|
||||
```
|
||||
|
||||
##### AllowedApps
|
||||
|
||||
**AllowedApps** is a list of applications that are allowed to run. Apps can be Universal Windows Platform (UWP) apps or Windows desktop applications. Starting with Windows 10 version 1809, you can configure a single app in the **AllowedApps** list to run automatically when the assigned access user account signs in.
|
||||
|
||||
- For UWP apps, you need to provide the App User Model ID (AUMID). [Learn how to get the AUMID](./find-the-application-user-model-id-of-an-installed-app.md), or [get the AUMID from the Start Layout XML](#create-the-xml-file).
|
||||
- For desktop apps, you need to specify the full path of the executable, which can contain one or more system environment variables in the form of `%variableName%`. For example, `%systemroot%` or `%windir%`.
|
||||
- If an app has a dependency on another app, both must be included in the allowed apps list. For example, Internet Explorer 64-bit has a dependency on Internet Explorer 32-bit, so you must allow both `"C:\Program Files\internet explorer\iexplore.exe"` and `"C:\Program Files (x86)\Internet Explorer\iexplore.exe"`.
|
||||
- To configure a single app to launch automatically when the user signs in, include `rs5:AutoLaunch="true"` after the AUMID or path. You can also include arguments to be passed to the app. For an example, see [the AllowedApps sample XML](#apps-sample).
|
||||
|
||||
When the multi-app kiosk configuration is applied to a device, AppLocker rules will be generated to allow the apps that are listed in the configuration. Here are the predefined assigned access AppLocker rules for **UWP apps**:
|
||||
|
||||
1. Default rule is to allow all users to launch the signed package apps.
|
||||
1. The package app blocklist is generated at runtime when the assigned access user signs in. Based on the installed/provisioned package apps available for the user account, assigned access generates the blocklist. This list will exclude the default allowed inbox package apps, which are critical for the system to function. It then excludes the allowed packages that enterprises defined in the assigned access configuration. If there are multiple apps within the same package, all these apps will be excluded. This blocklist will be used to prevent the user from accessing the apps that are currently available for the user but not in the allowed list.
|
||||
|
||||
> [!NOTE]
|
||||
> You can't manage AppLocker rules that are generated by the multi-app kiosk configuration in [MMC snap-ins](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh994629(v=ws.11)#BKMK_Using_Snapins). Avoid creating AppLocker rules that conflict with AppLocker rules that are generated by the multi-app kiosk configuration.
|
||||
> Multi-app kiosk mode doesn't block the enterprise or the users from installing UWP apps. When a new UWP app is installed during the current assigned access user session, this app will not be in the deny list. When the user signs out and signs in again, the app will be included in the blocklist. If this is an enterprise-deployed line-of-business app and you want to allow it to run, update the assigned access configuration to include it in the allowed app list.
|
||||
|
||||
Here are the predefined assigned access AppLocker rules for **desktop apps**:
|
||||
|
||||
1. Default rule is to allow all users to launch the desktop programs signed with Microsoft Certificate in order for the system to boot and function. The rule also allows the admin user group to launch all desktop programs.
|
||||
1. There's a predefined inbox desktop app blocklist for the assigned access user account, and this blocklist is adjusted based on the desktop app allowlist that you defined in the multi-app configuration.
|
||||
1. Enterprise-defined allowed desktop apps are added in the AppLocker allowlist.
|
||||
|
||||
The following example allows Photos, Weather, Calculator, Paint, and Notepad apps to run on the device, with Notepad configured to automatically launch and create a file called `123.text` when the user signs in.
|
||||
|
||||
```xml
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
<App DesktopAppPath="%windir%\system32\mspaint.exe" />
|
||||
<App DesktopAppPath="C:\Windows\System32\notepad.exe" rs5:AutoLaunch="true" rs5:AutoLaunchArguments="123.txt" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
```
|
||||
|
||||
<!--
|
||||
|
||||
##### StartPins
|
||||
|
||||
After you define the list of allowed applications, you can customize the Start layout for your kiosk experience. The easiest way to create a customized Start layout to apply to other Windows client devices is to set up the Start screen on a test device and then export the layout. Once you've decided, you can get the JSON needed for your kiosk configuration by following the steps to [Get the pinnedList JSON](../start/customize-and-export-start-layout.md). If you opt to do this using the PowerShell command, make sure that the system you run the command on has the same file structure as the device on which you will apply the kiosk (the path to the allowed apps must be the same). At the end of this step, you should have a JSON pinnedList that looks something like the below.
|
||||
|
||||
Add your pinnedList JSON into the StartPins tag in your XML file.
|
||||
|
||||
```xml
|
||||
<v5:StartPins>
|
||||
<![CDATA[
|
||||
|
||||
{ "pinnedList":[
|
||||
{"packagedAppId":"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.Windows.Photos_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.BingWeather_8wekyb3d8bbwe!App"},
|
||||
{"desktopAppLink":"%ALLUSERSPROFILE%\\Microsoft\\Windows\\StartMenu\\Programs\\Accessories\\Paint.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\StartMenu\\Programs\\Accessories\\Notepad.lnk"}
|
||||
] }
|
||||
]]>
|
||||
</v5:StartPins>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If an app isn't installed for the user, but is included in the Start layout XML, the app isn't shown on the Start screen.
|
||||
|
||||
|
||||
|
||||
##### Taskbar
|
||||
|
||||
Define whether you want to have the taskbar present in the kiosk device. For tablet-based or touch-enabled all-in-one kiosks, when you don't attach a keyboard and mouse, you can hide the taskbar as part of the multi-app experience if you want.
|
||||
|
||||
The following example exposes the taskbar to the end user:
|
||||
|
||||
```xml
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
```
|
||||
|
||||
The following example hides the taskbar:
|
||||
|
||||
```xml
|
||||
<Taskbar ShowTaskbar="false"/>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> This is different from the **Automatically hide the taskbar** option in tablet mode, which shows the taskbar when swiping up from or moving the mouse pointer down to the bottom of the screen. Setting **ShowTaskbar** as **false** will always keep the taskbar hidden.
|
||||
-->
|
||||
##### KioskModeApp
|
||||
|
||||
**KioskModeApp** is used for a [kiosk profile](#profile) only. Enter the AUMID for a single app. You can only specify one kiosk profile in the XML.
|
||||
|
||||
```xml
|
||||
<KioskModeApp AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"/>
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The kiosk profile is designed for public-facing kiosk devices. We recommend that you use a local, non-administrator account. If the device is connected to your company network, using a domain or Microsoft Entra account could potentially compromise confidential information.
|
||||
|
||||
#### Configs
|
||||
|
||||
Under **Configs**, define which user account will be associated with the profile. When this user account signs in on the device, the associated assigned access profile will be enforced. This behavior includes the allowed apps, Start layout, taskbar configuration, and other local group policies or mobile device management (MDM) policies set as part of the multi-app experience.
|
||||
|
||||
The full multi-app assigned access experience can only work for non-admin users. It's not supported to associate an admin user with the assigned access profile. Making this configuration in the XML file will result in unexpected or unsupported experiences when this admin user signs in.
|
||||
|
||||
You can assign:
|
||||
|
||||
- [A local standard user account that signs in automatically](#config-for-autologon-account) (Applies to Windows 10, version 1803 only)
|
||||
- [An individual account, which can be local, domain, or Microsoft Entra ID](#config-for-individual-accounts)
|
||||
- [A group account, which can be local, Active Directory (domain), or Microsoft Entra ID](#config-for-group-accounts) (Applies to Windows 10, version 1803 only).
|
||||
|
||||
> [!NOTE]
|
||||
> Configs that specify group accounts cannot use a kiosk profile, only a lockdown profile. If a group is configured to a kiosk profile, the CSP will reject the request.
|
||||
|
||||
##### Config for AutoLogon Account
|
||||
|
||||
When you use `<AutoLogonAccount>` and the configuration is applied to a device, the specified account (managed by Assigned Access) is created on the device as a local standard user account. The specified account is signed in automatically after restart.
|
||||
|
||||
The following example shows how to specify an account to sign in automatically.
|
||||
|
||||
```xml
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount/>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
```
|
||||
|
||||
Starting with Windows 10 version 1809, you can configure the display name that will be shown when the user signs in. The following example shows how to create an AutoLogon Account that shows the name "Hello World".
|
||||
|
||||
```xml
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Hello World"/>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
```
|
||||
|
||||
On domain-joined devices, local user accounts aren't shown on the sign-in screen by default. To show the **AutoLogonAccount** on the sign-in screen, enable the following Group Policy setting: **Computer Configuration > Administrative Templates > System > Logon > Enumerate local users on domain-joined computers**. (The corresponding MDM policy setting is [WindowsLogon/EnumerateLocalUsersOnDomainJoinedComputers in the Policy CSP](/windows/client-management/mdm/policy-csp-windowslogon#windowslogon-enumeratelocalusersondomainjoinedcomputers).)
|
||||
|
||||
>[!IMPORTANT]
|
||||
>When Exchange Active Sync (EAS) password restrictions are active on the device, the autologon feature does not work. This behavior is by design. For more informations, see [How to turn on automatic logon in Windows](/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon).
|
||||
|
||||
##### Config for individual accounts
|
||||
|
||||
Individual accounts are specified using `<Account>`.
|
||||
|
||||
- Local account can be entered as `machinename\account` or `.\account` or just `account`.
|
||||
- Domain account should be entered as `domain\account`.
|
||||
- Microsoft Entra account must be specified in this format: `AzureAD\{email address}`. **AzureAD** must be provided *as is*, and consider it's a fixed domain name. Then follow with the Microsoft Entra ID email address. For example, `AzureAD\someone@contoso.onmicrosoft.com`
|
||||
|
||||
> [!WARNING]
|
||||
> Assigned access can be configured via WMI or CSP to run its applications under a domain user or service account, rather than a local account. However, use of domain user or service accounts introduces risks that an attacker subverting the assigned access application might gain access to sensitive domain resources that have been inadvertently left accessible to any domain account. We recommend that customers proceed with caution when using domain accounts with assigned access, and consider the domain resources potentially exposed by the decision to do so.
|
||||
|
||||
Before applying the multi-app configuration, make sure the specified user account is available on the device, otherwise it will fail.
|
||||
|
||||
> [!NOTE]
|
||||
> For both domain and Microsoft Entra accounts, it's not required that target account is explicitly added to the device. As long as the device is AD-joined or Microsoft Entra joined, the account can be discovered in the domain forest or tenant that the device is joined to. For local accounts, it is required that the account exist before you configure the account for assigned access.
|
||||
|
||||
```xml
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>MultiAppKioskUser</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
```
|
||||
|
||||
##### Config for group accounts
|
||||
|
||||
Group accounts are specified using `<UserGroup>`. Nested groups aren't supported. For example, if user A is member of Group 1, Group 1 is member of Group 2, and Group 2 is used in `<Config/>`, user A won't have the kiosk experience.
|
||||
|
||||
- Local group: Specify the group type as **LocalGroup** and put the group name in Name attribute. Any Microsoft Entra accounts that are added to the local group won't have the kiosk settings applied.
|
||||
|
||||
```xml
|
||||
<Config>
|
||||
<UserGroup Type="LocalGroup" Name="mygroup" />
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
```
|
||||
|
||||
- Domain group: Both security and distribution groups are supported. Specify the group type as <strong>ActiveDirectoryGroup</strong>. Use the domain name as the prefix in the name attribute.
|
||||
|
||||
```xml
|
||||
<Config>
|
||||
<UserGroup Type="ActiveDirectoryGroup" Name="mydomain\mygroup" />
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
```
|
||||
|
||||
- Microsoft Entra group: Use the group object ID from the Azure portal to uniquely identify the group in the Name attribute. You can find the object ID on the overview page for the group in **Users and groups** > **All groups**. Specify the group type as **AzureActiveDirectoryGroup**. The kiosk device must have internet connectivity when users that belong to the group sign-in.
|
||||
|
||||
```xml
|
||||
<Config>
|
||||
<UserGroup Type="AzureActiveDirectoryGroup" Name="a8d36e43-4180-4ac5-a627-fb8149bba1ac" />
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If a Microsoft Entra group is configured with a lockdown profile on a device, a user in the Microsoft Entra group must change their password (after the account has been created with default password on the portal) before they can sign in to this device. If the user uses the default password to sign in to the device, the user will be immediately signed out.
|
||||
|
||||
<!--
|
||||
## Configure a kiosk using WMI Bridge
|
||||
|
||||
Environments that use [Windows Management Instrumentation (WMI)](/windows/win32/wmisdk/wmi-start-page) can use the [MDM Bridge WMI Provider](/windows/win32/dmwmibridgeprov/mdm-bridge-wmi-provider-portal) to configure the MDM_AssignedAccess class.
|
||||
|
||||
Here's an example of how to set AssignedAccess configuration:
|
||||
|
||||
1. Download the [psexec tool](/sysinternals/downloads/psexec).
|
||||
|
||||
1. Using an elevated command prompt, run `psexec.exe -i -s cmd.exe`.
|
||||
1. In the command prompt launched by psexec.exe, enter `powershell.exe` to open PowerShell.
|
||||
1. Save the following Powershell excerpt as a PowerShell script (.ps1), replacing the placeholder "your XML here" with the [Sample Assigned Access XML](#sample-assigned-access-xml) then run the script at the Powershell prompt from the previous step.
|
||||
|
||||
```powershell
|
||||
$eventLogFilterHashTable = @{
|
||||
ProviderName = "Microsoft-Windows-AssignedAccess";
|
||||
StartTime = Get-Date -Millisecond 0
|
||||
}
|
||||
|
||||
$namespaceName="root\cimv2\mdm\dmmap"
|
||||
$className="MDM_AssignedAccess"
|
||||
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
|
||||
$obj.Configuration = [System.Net.WebUtility]::HtmlEncode(@"
|
||||
|
||||
<your XML here>
|
||||
|
||||
"@)
|
||||
|
||||
$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()
|
||||
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 Assigned Access configuration"
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Sample Assigned Access XML
|
||||
|
||||
This section contains a predefined XML file which can be used as a quickstart to get familiar with the Assigned Access multi-app kiosk feature on Windows 11.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config">
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
<App DesktopAppPath="C:\Windows\system32\cmd.exe" />
|
||||
<App DesktopAppPath="%windir%\System32\WindowsPowerShell\v1.0\Powershell.exe" />
|
||||
<App DesktopAppPath="%windir%\explorer.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<v5:StartPins>
|
||||
<![CDATA[
|
||||
{ "pinnedList":[
|
||||
{"packagedAppId":"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.Windows.Photos_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.BingWeather_8wekyb3d8bbwe!App"},
|
||||
{"desktopAppLink":"C:\\Users\\MultiAppKioskUser\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\File Explorer.lnk"},
|
||||
{"desktopAppLink":"C:\\Users\\MultiAppKioskUser\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\System Tools\\Command Prompt.lnk"},
|
||||
{"desktopAppLink":"C:\\Users\\MultiAppKioskUser\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Windows PowerShell\\Windows PowerShell.lnk"}
|
||||
] }
|
||||
]]>
|
||||
</v5:StartPins>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>MultiAppKioskUser</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
-->
|
@ -1,65 +0,0 @@
|
||||
---
|
||||
title: Set up digital signs on Windows
|
||||
description: A single-use device such as a digital sign is easy to set up in Windows 10 and Windows 11 (Pro, Enterprise, and Education).
|
||||
ms.date: 09/20/2021
|
||||
ms.topic: article
|
||||
---
|
||||
|
||||
# Set up digital signs
|
||||
|
||||
Digital signage can be a useful and exciting business tool. Use digital signs to showcase your products and services, to display testimonials, or to advertise promotions and campaigns. A digital sign can be a static display, such as a building directory or menu, or it can be dynamic, such as repeating videos or a social media feed.
|
||||
|
||||
For digital signage, simply select a digital sign player as your kiosk app. You can also use [Microsoft Edge in kiosk mode](/DeployEdge/microsoft-edge-configure-kiosk-mode) or the Kiosk Browser app, and configure it to show your online content.
|
||||
|
||||
>[!TIP]
|
||||
>Kiosk Browser can also be used in [single-app kiosks](kiosk-single-app.md) and [multi-app kiosk](lock-down-windows-10-to-specific-apps.md) as a web browser. For more information, see [Guidelines for web browsers](guidelines-for-assigned-access-app.md#guidelines-for-web-browsers).
|
||||
|
||||
Kiosk Browser must be downloaded for offline licensing using Microsoft Store for Business. You can deploy Kiosk Browser to devices running Windows 11, and Windows 10 version 1803+.
|
||||
|
||||
>[!NOTE]
|
||||
>If you haven't set up your Microsoft Store for Business yet, check out [the prerequisites](/microsoft-store/prerequisites-microsoft-store-for-business) and then [sign up](/microsoft-store/sign-up-microsoft-store-for-business).
|
||||
|
||||
This procedure explains how to configure digital signage using Kiosk Browser on a device running Windows client that has already been set up (completed the first-run experience).
|
||||
|
||||
1. [Get **Kiosk Browser** in Microsoft Store for Business with offline, unencoded license type.](/microsoft-store/acquire-apps-microsoft-store-for-business#acquire-apps)
|
||||
1. [Download the **Kiosk Browser** package, license file, and all required frameworks.](/microsoft-store/distribute-offline-apps#download-an-offline-licensed-app)
|
||||
1. [Install Windows Configuration Designer.](~/provisioning-packages/provisioning-install-icd.md)
|
||||
1. Open Windows Configuration Designer and select **Provision kiosk devices**.
|
||||
1. Enter a friendly name for the project, and select **Finish**.
|
||||
1. On **Set up device**, select **Disabled**, and select **Next**.
|
||||
1. On **Set up network**, enable network setup:
|
||||
- Toggle **On** wireless network connectivity.
|
||||
- Enter the SSID, the network type (**Open** or **WPA2-Personal**), and (if **WPA2-Personal**) the password for the wireless network.
|
||||
1. On **Account management**, select **Disabled**, and select **Next**.
|
||||
1. On **Add applications**, select **Add an application**:
|
||||
- For **Application name**, enter `Kiosk Browser`.
|
||||
- For **Installer path**, browse to and select the AppxBundle that you downloaded from Microsoft Store for Business. After you select the package, additional fields are displayed.
|
||||
- For **License file path**, browse to and select the XML license file that you downloaded from Microsoft Store for Business.
|
||||
- The **Package family name** is populated automatically.
|
||||
- Select **Next**.
|
||||
1. On **Add certificates**, select **Next**.
|
||||
1. On **Configure kiosk account and app**, toggle **Yes** to create a local user account for your digital signage:
|
||||
- Enter a user name and password, and toggle **Auto sign-in** to **Yes**.
|
||||
- Under **Configure the kiosk mode app**, enter the user name for the account that you're creating.
|
||||
- For **App type**, select **Universal Windows App**.
|
||||
- In **Enter the AUMID for the app**, enter `Microsoft.KioskBrowser_8wekyb3d8bbwe!App`.
|
||||
1. In the bottom left corner of Windows Configuration Designer, select **Switch to advanced editor**.
|
||||
1. Go to **Runtime settings** > **Policies** > **KioskBrowser**. Let's assume that the URL for your digital signage content is contoso.com/menu:
|
||||
- In **BlockedUrlExceptions**, enter `https://www.contoso.com/menu`.
|
||||
- In **BlockedUrl**, enter `*`.
|
||||
- In **DefaultUrl**, enter `https://www.contoso.com/menu`.
|
||||
- Set **EnableEndSessionButton**, **EnableHomeButton**, and **EnableNavigationButtons** to **No**.
|
||||
|
||||
>[!TIP]
|
||||
>For more information on kiosk browser settings, see [Guidelines for web browsers](guidelines-for-assigned-access-app.md#guidelines-for-web-browsers).
|
||||
|
||||
1. On the **File** menu, select **Save**, and select **OK** in the **Keep your info secure** dialog box.
|
||||
1. On the **Export** menu, select **Provisioning package**.
|
||||
1. Change the **Owner** to **IT Admin**, and select **Next**.
|
||||
1. On **Select security details for the provisioning package**, select **Next**.
|
||||
1. On **Select where to save the provisioning package**, select **Next**.
|
||||
1. On **Build the provisioning package**, select **Build**.
|
||||
1. On the **All done!** screen, click the **Output location**.
|
||||
1. Copy the .ppkg file to a USB drive.
|
||||
1. Attach the USB drive to the device that you want to use for your digital sign.
|
||||
1. Go to **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** > **Add a package**, and select the package on the USB drive.
|
@ -1,106 +0,0 @@
|
||||
---
|
||||
title: "Quickstart: Configure a kiosk experience with Assigned Access"
|
||||
description: Learn how to configure a kiosk experience with Assigned Access, using Windows Configuration Designer, Microsoft Intune, PowerShell or GPO.
|
||||
ms.topic: quickstart
|
||||
ms.date: 02/05/2024
|
||||
appliesto:
|
||||
- ✅ <a href=/windows/release-health/supported-versions-windows-client target=_blank>Windows 11</a>
|
||||
---
|
||||
|
||||
# Quickstart: Configure a kiosk with Assigned Access
|
||||
|
||||
## Prerequisites
|
||||
|
||||
>[!div class="checklist"]
|
||||
>Here's a list of requirements to complete this quickstart:
|
||||
>
|
||||
>- A Windows 11 device
|
||||
>- Microsoft Intune, or a non-Microsoft MDM solution, if you want to configure the settings using MDM
|
||||
>- Windows Configuration Designer, if you want to configure the settings using a provisioning package
|
||||
>- Access to the [psexec tool](/sysinternals/downloads/psexec), if you want to test the configuration using Windows PowerShell
|
||||
|
||||
## Configure a kiosk
|
||||
|
||||
[!INCLUDE [tab-intro](../../../includes/configure/tab-intro.md)]
|
||||
|
||||
#### [:::image type="icon" source="../images/icons/settings.svg"::: **Settings**](#tab/settings)
|
||||
|
||||
Here are the steps to configure a kiosk using the Settings app:
|
||||
|
||||
1. Open the Settings app to view and configure a device as a kiosk. Go to **Settings > Accounts > Other Users**, or use the following shortcut:
|
||||
|
||||
> [!div class="nextstepaction"]
|
||||
>
|
||||
> [Other Users](ms-settings:otherusers)
|
||||
|
||||
1. Under **Set up a kiosk**, select **Get Started**
|
||||
1. In the **Create an account** dialog, enter the account name and select **Next**
|
||||
>[!NOTE]
|
||||
>If there are any local standard user accounts already, the **Create an account** dialog offers the option to **Choose an existing account**
|
||||
|
||||
1. Choose the application to run when the kiosk account signs in. Only apps that can run above the lock screen will be available in the list of apps to choose from. For more information, see [Guidelines for choosing an app for assigned access](guidelines-for-assigned-access-app.md). If you select **Microsoft Edge** as the kiosk app, you configure the following options:
|
||||
|
||||
- Whether Microsoft Edge should display your website full-screen (digital sign) or with some browser controls available (public browser)
|
||||
- Which URL should be open when the kiosk accounts signs in
|
||||
- When Microsoft Edge should restart after a period of inactivity (if you select to run as a public browser)
|
||||
|
||||
:::image type="content" source="images/settings-choose-app.png" alt-text="Screenshot of the dialog box asking to select an app.":::
|
||||
|
||||
1. Select **Close**
|
||||
|
||||
#### [:::image type="icon" source="../images/icons/intune.svg"::: **Intune/CSP**](#tab/intune)
|
||||
|
||||
> [!TIP]
|
||||
> Use the following Graph call to automatically create a custom policy in your Microsoft Intune tenant without assignments nor scope tags.
|
||||
>
|
||||
> When using this call, authenticate to your tenant in the Graph Explorer window. If it's the first time using Graph Explorer, you may need to authorize the application to access your tenant or to modify the existing permissions. This graph call requires *DeviceManagementConfiguration.ReadWrite.All* permissions.
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-kiosk-intune](includes/assigned-access-quickstart-kiosk-intune.md)]
|
||||
|
||||
[!INCLUDE [intune-custom-settings-2](../../../includes/configure/intune-custom-settings-2.md)]
|
||||
|
||||
Alternatively, you can configure devices using a [custom policy][MEM-1] with the [AssignedAccess CSP][WIN-3].
|
||||
|
||||
- **Setting:** `./Vendor/MSFT/AssignedAccess/Configuration`
|
||||
- **Value:**
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-kiosk-xml](includes/assigned-access-quickstart-kiosk-xml.md)]
|
||||
|
||||
#### [:::image type="icon" source="../images/icons/provisioning-package.svg"::: **PPKG**](#tab/ppkg)
|
||||
|
||||
[!INCLUDE [provisioning-package-1](../../../includes/configure/provisioning-package-1.md)]
|
||||
|
||||
- **Path:** `AssignedAccess/MultiAppAssignedAccessSettings`
|
||||
- **Value:**
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-kiosk-xmll](includes/assigned-access-quickstart-kiosk-xml.md)]
|
||||
|
||||
[!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)]
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-kiosk-ps](includes/assigned-access-quickstart-kiosk-ps.md)]
|
||||
|
||||
[!INCLUDE [powershell-wmi-bridge-2](../../../includes/configure/powershell-wmi-bridge-2.md)]
|
||||
|
||||
---
|
||||
|
||||
## User experience
|
||||
|
||||
If you used the Settings app to configure the kiosk, sign out and sign in with the account you chose to use as a kiosk. The kiosk application is automatically launched.
|
||||
|
||||
If you used the other options to configure the kiosk, reboot the device. A local user account named `Airport Kiosk` is automatically signed in, opening Microsoft Edge with an airport map.
|
||||
|
||||
## Next steps
|
||||
|
||||
> [!div class="nextstepaction"]
|
||||
> Learn more how to configure Windows to execute as a restricted user experience:
|
||||
>
|
||||
> [Configure a restricted user experience](lock-down-windows-11-to-specific-apps.md)
|
||||
|
||||
<!--links-->
|
||||
|
||||
[WIN-3]: /windows/client-management/mdm/assignedaccess-csp
|
||||
[MEM-1]: /mem/intune/configuration/custom-settings-windows-10
|
@ -1,87 +0,0 @@
|
||||
---
|
||||
title: "Quickstart: Configure a restricted user experience with Assigned Access"
|
||||
description: Learn how to configure a restricted user experience using Windows Configuration Designer, Microsoft Intune, PowerShell or GPO.
|
||||
ms.topic: quickstart
|
||||
ms.date: 02/05/2024
|
||||
appliesto:
|
||||
- ✅ <a href=/windows/release-health/supported-versions-windows-client target=_blank>Windows 11</a>
|
||||
---
|
||||
|
||||
# Quickstart: Configure a restricted user experience with Assigned Access
|
||||
|
||||
With a *restricted user experience*, you can control the applications allowed in a locked down Windows desktop.
|
||||
|
||||
This quickstart provides practical examples of how to configure a restricted user experience on Windows 11. The examples describe the steps using a mobile device management solution (MDM) like Microsoft Intune, provisioning packages (PPKG), and PowerShell. While different solutions are used, the configuration settings and results are the same.
|
||||
|
||||
The examples can be modified to fit your specific requirements. For example, you can add or remove applications from the list of allowed apps, or change the name of the user that automatically signs in to Windows.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
>[!div class="checklist"]
|
||||
>Here's a list of requirements to complete this quickstart:
|
||||
>
|
||||
>- A Windows 11 device
|
||||
>- Microsoft Intune, or a non-Microsoft MDM solution, if you want to configure the settings using MDM
|
||||
>- Windows Configuration Designer, if you want to configure the settings using a provisioning package
|
||||
>- Access to the [psexec tool](/sysinternals/downloads/psexec), if you want to test the configuration using Windows PowerShell
|
||||
|
||||
## Configure a restricted user experience
|
||||
|
||||
[!INCLUDE [tab-intro](../../../includes/configure/tab-intro.md)]
|
||||
|
||||
#### [:::image type="icon" source="../images/icons/intune.svg"::: **Intune/CSP**](#tab/intune)
|
||||
|
||||
> [!TIP]
|
||||
> Use the following Graph call to automatically create a custom policy in your Microsoft Intune tenant without assignments nor scope tags.
|
||||
>
|
||||
> When using this call, authenticate to your tenant in the Graph Explorer window. If it's the first time using Graph Explorer, you may need to authorize the application to access your tenant or to modify the existing permissions. This graph call requires *DeviceManagementConfiguration.ReadWrite.All* permissions.
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-restricted-experience-intune](includes/assigned-access-quickstart-restricted-experience-intune.md)]
|
||||
|
||||
[!INCLUDE [intune-custom-settings-2](../../../includes/configure/intune-custom-settings-2.md)]
|
||||
|
||||
Alternatively, you can configure devices using a [custom policy][MEM-1] with the [AssignedAccess CSP][WIN-3].
|
||||
|
||||
- **Setting:** `./Vendor/MSFT/AssignedAccess/Configuration`
|
||||
- **Value:**
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-restricted-experience-xml.md](includes/assigned-access-quickstart-restricted-experience-xml.md)]
|
||||
|
||||
#### [:::image type="icon" source="../images/icons/provisioning-package.svg"::: **PPKG**](#tab/ppkg)
|
||||
|
||||
[!INCLUDE [provisioning-package-1](../../../includes/configure/provisioning-package-1.md)]
|
||||
|
||||
- **Path:** `AssignedAccess/MultiAppAssignedAccessSettings`
|
||||
- **Value:**
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-restricted-experience-xml.md](includes/assigned-access-quickstart-restricted-experience-xml.md)]
|
||||
|
||||
[!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)]
|
||||
|
||||
[!INCLUDE [assigned-access-quickstart-restricted-experience-ps](includes/assigned-access-quickstart-restricted-experience-ps.md)]
|
||||
|
||||
[!INCLUDE [powershell-wmi-bridge-2](../../../includes/configure/powershell-wmi-bridge-2.md)]
|
||||
|
||||
---
|
||||
|
||||
## User experience
|
||||
|
||||
After the settings are applied, reboot the device. A user account named `Library Kiosk` is automatically signed in, with access to a limited set of applications, which are pinned to the Start menu.
|
||||
|
||||
:::image type="content" source="images/quickstart-restricted-experience.png" alt-text="Screenshot of the Windows desktop used for the quickstart." border="false":::
|
||||
|
||||
## Next steps
|
||||
|
||||
> [!div class="nextstepaction"]
|
||||
> Learn more how to configure Windows to execute as a restricted user experience:
|
||||
>
|
||||
> [Configure a restricted user experience](lock-down-windows-11-to-specific-apps.md)
|
||||
|
||||
<!--links-->
|
||||
|
||||
[WIN-3]: /windows/client-management/mdm/assignedaccess-csp
|
||||
[MEM-1]: /mem/intune/configuration/custom-settings-windows-10
|
@ -1,332 +0,0 @@
|
||||
---
|
||||
title: Assigned Access XML Schema Definition (XSD)
|
||||
description: Assigned Access XSD reference article.
|
||||
ms.topic: reference
|
||||
ms.date: 02/15/2024
|
||||
---
|
||||
|
||||
# Assigned Access XML Schema Definition (XSD)
|
||||
|
||||
This reference article contains the latest Assigned Access XML schema definition (XSD) and the XSD additions for each version of Windows.
|
||||
|
||||
## Windows 11
|
||||
|
||||
The following is the XSD for Assigned Access in Windows 11:
|
||||
|
||||
```xml
|
||||
<xs:schema elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:default="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config"
|
||||
targetNamespace="http://schemas.microsoft.com/AssignedAccess/2017/config">
|
||||
|
||||
<xs:import namespace="http://schemas.microsoft.com/AssignedAccess/201810/config"/>
|
||||
<xs:import namespace="http://schemas.microsoft.com/AssignedAccess/2020/config"/>
|
||||
<xs:import namespace="http://schemas.microsoft.com/AssignedAccess/2021/config"/>
|
||||
<xs:import namespace="http://schemas.microsoft.com/AssignedAccess/2022/config"/>
|
||||
|
||||
<xs:complexType name="profile_list_t">
|
||||
<xs:sequence minOccurs="1">
|
||||
<xs:element name="Profile" type="profile_t" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="kioskmodeapp_t">
|
||||
<xs:attribute name="AppUserModelId" type="xs:string"/>
|
||||
<xs:attributeGroup ref="ClassicApp_attributeGroup"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:attributeGroup name="ClassicApp_attributeGroup">
|
||||
<xs:attribute ref="v4:ClassicAppPath"/>
|
||||
<xs:attribute ref="v4:ClassicAppArguments" use="optional"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:complexType name="profile_t">
|
||||
<xs:choice>
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="AllAppsList" type="allappslist_t" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element ref="rs5:FileExplorerNamespaceRestrictions" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="StartLayout" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element ref="v5:StartPins" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="Taskbar" type="taskbar_t" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element ref="v5:TaskbarLayout" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="KioskModeApp" type="kioskmodeapp_t" minOccurs="1" maxOccurs="1">
|
||||
<xs:key name="mutualExclusionAumidOrClassicAppPath">
|
||||
<xs:selector xpath="."/>
|
||||
<xs:field xpath="@AppUserModelId|@v4:ClassicAppPath"/>
|
||||
</xs:key>
|
||||
<xs:unique name="mutualExclusionAumidOrClassicAppArgumentsOptional">
|
||||
<xs:selector xpath="."/>
|
||||
<xs:field xpath="@AppUserModelId|@v4:ClassicAppArguments"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
<xs:element ref="v4:BreakoutSequence" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
</xs:choice>
|
||||
<xs:attribute name="Id" type="guid_t" use="required"/>
|
||||
<xs:attribute name="Name" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="allappslist_t">
|
||||
<xs:sequence minOccurs="1">
|
||||
<xs:element name="AllowedApps" type="allowedapps_t" minOccurs="1" maxOccurs="1">
|
||||
<xs:unique name="ForbidDupApps">
|
||||
<xs:selector xpath="default:App"/>
|
||||
<xs:field xpath="@AppUserModelId|@DesktopAppPath"/>
|
||||
</xs:unique>
|
||||
<xs:unique name="OnlyOneAppCanHaveAutoLaunch">
|
||||
<xs:selector xpath="default:App"/>
|
||||
<xs:field xpath="@rs5:AutoLaunch"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="allowedapps_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="App" type="app_t" minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:key name="mutexAumidOrDesktopApp">
|
||||
<xs:selector xpath="."/>
|
||||
<xs:field xpath="@AppUserModelId|@DesktopAppPath"/>
|
||||
</xs:key>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="app_t">
|
||||
<xs:attribute name="AppUserModelId" type="xs:string"/>
|
||||
<xs:attribute name="DesktopAppPath" type="xs:string"/>
|
||||
<xs:attributeGroup ref="autoLaunch_attributeGroup"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:attributeGroup name="autoLaunch_attributeGroup">
|
||||
<xs:attribute ref="rs5:AutoLaunch"/>
|
||||
<xs:attribute ref="rs5:AutoLaunchArguments" use="optional"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:complexType name="taskbar_t">
|
||||
<xs:attribute name="ShowTaskbar" type="xs:boolean" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="profileId_t">
|
||||
<xs:attribute name="Id" type="guid_t" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="guid_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="\{[0-9a-fA-F]{8}\-([0-9a-fA-F]{4}\-){3}[0-9a-fA-F]{12}\}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="config_list_t">
|
||||
<xs:sequence minOccurs="1">
|
||||
<xs:element ref="v3:GlobalProfile" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="Config" type="config_t" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="config_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:choice>
|
||||
<xs:element name="Account" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="AutoLogonAccount" type="autologon_account_t" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="UserGroup" type="group_t" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="SpecialGroup" type="specialGroup_t" minOccurs="1" maxOccurs="1" />
|
||||
</xs:choice>
|
||||
<xs:element name="DefaultProfile" type="profileId_t" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="autologon_account_t">
|
||||
<xs:attribute name="HiddenId" type="guid_t" fixed="{74331115-F68A-4DF9-8D2C-52BA2CE2ADB1}"/>
|
||||
<xs:attribute ref="rs5:DisplayName" use="optional" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="group_t">
|
||||
<xs:attribute name="Name" type="xs:string" use="required"/>
|
||||
<xs:attribute name="Type" type="groupType_t" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="specialGroup_t">
|
||||
<xs:attribute name="Name" type="specialGroupType_t" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="groupType_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="LocalGroup"/>
|
||||
<xs:enumeration value="ActiveDirectoryGroup"/>
|
||||
<xs:enumeration value="AzureActiveDirectoryGroup"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="specialGroupType_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Visitor"/>
|
||||
<xs:enumeration value="DeviceOwner"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="fileExplorerNamespaceRestrictions_t">
|
||||
<xs:sequence minOccurs="1">
|
||||
<xs:element name="AllowedNamespace" type="allowedFileExplorerNamespace_t"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="allowedFileExplorerNamespace_t">
|
||||
<xs:attribute name="Name" type="allowedFileExplorerNamespaceValues_t"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="allowedFileExplorerNamespaceValues_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Downloads"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<!--below is the definition of the config xml content-->
|
||||
<xs:element name="AssignedAccessConfiguration">
|
||||
<xs:complexType>
|
||||
<xs:all minOccurs="1">
|
||||
<xs:element name="Profiles" type="profile_list_t">
|
||||
<xs:unique name="duplicateRolesForbidden">
|
||||
<xs:selector xpath="default:Profile"/>
|
||||
<xs:field xpath="@Id"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
<xs:element name="Configs" type="config_list_t">
|
||||
<xs:unique name="duplicateAutoLogonAccountForbidden">
|
||||
<xs:selector xpath=".//default:AutoLogonAccount"/>
|
||||
<xs:field xpath="@HiddenId"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
```
|
||||
|
||||
## Windows 11, version 22H2 additions
|
||||
|
||||
The following is the XSD for Assigned Access features added in Windows 11:
|
||||
|
||||
```xml
|
||||
<xs:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
|
||||
vc:minVersion="1.1"
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2022/config"
|
||||
xmlns:default="http://schemas.microsoft.com/AssignedAccess/2022/config"
|
||||
targetNamespace="http://schemas.microsoft.com/AssignedAccess/2022/config"
|
||||
>
|
||||
|
||||
<xs:element name = "StartPins" type = "xs:string"/>
|
||||
<xs:element name = "TaskbarLayout" type="xs:string"/>
|
||||
</xs:schema>
|
||||
```
|
||||
|
||||
## Windows 11, version 21H2 additions
|
||||
|
||||
The following is the XSD for Assigned Access features added in Windows 10, version 21H2:
|
||||
|
||||
```xml
|
||||
<xs:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
|
||||
vc:minVersion="1.1"
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
xmlns:default="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
targetNamespace="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
>
|
||||
|
||||
<xs:attribute name="ClassicAppPath" type="xs:string"/>
|
||||
<xs:attribute name="ClassicAppArguments" type="xs:string"/>
|
||||
|
||||
<xs:element name="BreakoutSequence" type="BreakoutSequence_t" />
|
||||
|
||||
<xs:complexType name="BreakoutSequence_t">
|
||||
<xs:attribute name="Key" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
</xs:schema>
|
||||
```
|
||||
|
||||
## Windows 10, version 1909 additions
|
||||
|
||||
The following is the XSD for Assigned Access features added in Windows 10, version 1909:
|
||||
|
||||
```xml
|
||||
<xs:schema elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:default="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/202010/config" targetNamespace="http://schemas.microsoft.com/AssignedAccess/2020/config">
|
||||
|
||||
<xs:import namespace="http://schemas.microsoft.com/AssignedAccess/202010/config" />
|
||||
|
||||
<xs:simpleType name="guid_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="\{[0-9a-fA-F]{8}\-([0-9a-fA-F]{4}\-){3}[0-9a-fA-F]{12}\}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="globalProfile_t">
|
||||
<xs:sequence minOccurs="0" maxOccurs="1">
|
||||
<xs:element ref="v5:Exclusions" minOccurs="0" maxOccurs="1" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Id" type="guid_t" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:element name="AllowRemovableDrives"/>
|
||||
<xs:element name="NoRestriction" />
|
||||
<xs:element name="GlobalProfile" type="globalProfile_t" />
|
||||
|
||||
</xs:schema>
|
||||
```
|
||||
|
||||
## Windows 10, version 1809 additions
|
||||
|
||||
The following is the XSD for Assigned Access features added in Windows 10, version 1809:
|
||||
|
||||
```xml
|
||||
<xs:schema elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:default="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config" targetNamespace="http://schemas.microsoft.com/AssignedAccess/201810/config">
|
||||
|
||||
<xs:import namespace="http://schemas.microsoft.com/AssignedAccess/2020/config"/>
|
||||
|
||||
<xs:complexType name="fileExplorerNamespaceRestrictions_t">
|
||||
<xs:choice>
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:element name="AllowedNamespace" type="allowedFileExplorerNamespace_t" minOccurs="0"/>
|
||||
<xs:element ref="v3:AllowRemovableDrives" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
<xs:element ref="v3:NoRestriction" minOccurs="0" maxOccurs="1" />
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="allowedFileExplorerNamespace_t">
|
||||
<xs:attribute name="Name" type="allowedFileExplorerNamespaceValues_t" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="allowedFileExplorerNamespaceValues_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Downloads"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="FileExplorerNamespaceRestrictions" type="fileExplorerNamespaceRestrictions_t" />
|
||||
<xs:attribute name="AutoLaunch" type="xs:boolean"/>
|
||||
<xs:attribute name="AutoLaunchArguments" type="xs:string"/>
|
||||
<xs:attribute name="DisplayName" type="xs:string"/>
|
||||
</xs:schema>
|
||||
```
|
@ -1,773 +0,0 @@
|
||||
---
|
||||
title: Create an Assigned Access configuration file
|
||||
description: Learn how to create an XML file to configure a kiosk device.
|
||||
ms.date: 02/12/2024
|
||||
ms.topic: how-to
|
||||
zone_pivot_groups: windows-versions-11-10
|
||||
appliesto:
|
||||
---
|
||||
|
||||
# Create an Assigned Access configuration XML file
|
||||
|
||||
The multi-app kiosk experience is defined in an Assigned Access Configuration XML file. In this section, we will go through the process to create a XML file that contains all the lockdown entries available for customization.
|
||||
|
||||
Let's start by looking at the basic structure of the XML file.
|
||||
|
||||
- A configuration xml can define multiple `profiles`. Each profile has a *profile Id* and defines a set of applications that are allowed to run
|
||||
- A configuration xml can have multiple `configs`. Each config associates a non-admin user account to a default profile Id
|
||||
- A profile has no effect if it's not associated to a user account
|
||||
|
||||
You can start your file by pasting the following XML code into a text editor, and saving the file as `filename.xml`.
|
||||
|
||||
::: zone pivot="windows-11"
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config">
|
||||
<Profiles>
|
||||
<Profile Id="">
|
||||
<AllAppsList>
|
||||
<AllowedApps/>
|
||||
</AllAppsList>
|
||||
<StartLayout/>
|
||||
<Taskbar/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account/>
|
||||
<DefaultProfile Id=""/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
::: zone-end
|
||||
|
||||
::: zone pivot="windows-10"
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config"
|
||||
<Profiles>
|
||||
<Profile Id="">
|
||||
<AllAppsList>
|
||||
<AllowedApps/>
|
||||
</AllAppsList>
|
||||
<StartLayout/>
|
||||
<Taskbar/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account/>
|
||||
<DefaultProfile Id=""/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
::: zone-end
|
||||
|
||||
## Profiles node
|
||||
|
||||
In the XML file, you define each profile with a globally unique identifier (GUID), which must be unique within the XML file.
|
||||
|
||||
> [!TIP]
|
||||
> You can generate a GUID with the PowerShell cmdlet `New-Guid`.
|
||||
|
||||
```xml
|
||||
<Profiles>
|
||||
<Profile Id="6954c40a-45dd-4176-a2e3-ecaf5c97f425">
|
||||
...
|
||||
</Profile>
|
||||
</Profiles>
|
||||
```
|
||||
|
||||
A *profile node* contains the following properties:
|
||||
|
||||
|Property|Description|
|
||||
|-|-|
|
||||
|Id|a GUID attribute to uniquely identify the profile|
|
||||
|AllowedApps|a node with a list of applications that are allowed to run. Apps can be Universal Windows Platform (UWP) apps or Classic Windows desktop apps|
|
||||
|StartLayout|a node for startlayout policy xml|
|
||||
|Taskbar|a node with a Boolean attribute ShowTaskbar to indicate whether to show the taskbar|
|
||||
|
||||
```xml
|
||||
<Profile Id="6954c40a-45dd-4176-a2e3-ecaf5c97f425">
|
||||
<AllAppsList>
|
||||
<AllowedApps/>
|
||||
</AllAppsList>
|
||||
<StartLayout/>
|
||||
<Taskbar/>
|
||||
</Profile>
|
||||
```
|
||||
|
||||
### AllowedApps node
|
||||
|
||||
Based on the purpose of the kiosk device, define the list of applications that are allowed to run. This list can contain both UWP apps and desktop apps. When the mult-app kiosk configuration is applied to a device, AppLocker rules will be generated to allow the apps that are listed in the configuration.
|
||||
|
||||
- For UWP apps, you must provide the App User Model ID (AUMID)
|
||||
- [Learn how to get the AUMID]()
|
||||
- For desktop apps, specify the AUMID or the full path of the executable, which can contain one or more system environment variables in the form of %variableName%. For example, `%systemroot%` or `%windir%`.
|
||||
- If an app has a dependency on another app, both must be included in the allowed apps list. For example, Internet Explorer 64-bit has a dependency on Internet Explorer 32-bit, so you must allow both `"C:\Program Files\internet explorer\iexplore.exe"` and `"C:\Program Files (x86)\Internet Explorer\iexplore.exe"`
|
||||
- To configure a single app to launch automatically when the user signs in, include `rs5:AutoLaunch="true"` after the AUMID or path. You can also include arguments to be passed to the app
|
||||
|
||||
<!-->
|
||||
Here are the predefined assigned access AppLocker rules:
|
||||
|
||||
For UWP apps,
|
||||
|
||||
1. Default rule is to allow all users to launch the signed package apps.
|
||||
|
||||
2. The package app deny list is generated at runtime when the assigned access user signs in. Based on the installed/provisioned package apps available for the user account, assigned access generates the deny list. This list will exclude the default allowed inbox package apps which are critical for the system to function, and then exclude the allowed packages that enterprises defined in the assigned access configuration. If there are multiple apps within the same package, all these apps will be excluded. This deny list will be used to prevent the user from accessing the apps which are currently available for the user but not in the allowed list.
|
||||
|
||||
Note:
|
||||
|
||||
Assigned access multi-app mode doesn't block the enterprises or the users from installing UWP apps. When a new UWP app is installed during the current assigned access user session, this app will not be in the deny list. When the user signs out and signs in back next time, it will be included in the deny list. If this is an enterprise-deployed line-of-business app and you want to allow it to run, update the assigned access configuration to include it in the allowed app list.
|
||||
|
||||
For desktop apps,
|
||||
|
||||
1. Default rule is to allow all users to launch the desktop programs signed with Microsoft Certificate in order for the system to boot and function. The rule also allows the admin user group to launch all desktop programs. 2. There is a predefined inbox desktop app deny list for the assigned access user account, and this deny list is adjusted based on the desktop app allow list that you defined in the multi-app configuration.
|
||||
|
||||
3. Enterprise-defined allowed desktop apps are added in the AppLocker allow list.
|
||||
-->
|
||||
|
||||
The following example allows Calculator, Photos, Weather, Calculator, Command Prompt, and Windows PowerShell apps to run on the device.
|
||||
|
||||
```xml
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App DesktopAppPath="C:\Windows\system32\cmd.exe" />
|
||||
<App DesktopAppPath="%windir%\System32\WindowsPowerShell\v1.0\Powershell.exe" />
|
||||
<App DesktopAppPath="C:\Windows\System32\notepad.exe" rs5:AutoLaunch="true" rs5:AutoLaunchArguments="%windir%\setuperr.log" />
|
||||
</AllowedApps>
|
||||
```
|
||||
|
||||
::: zone pivot="windows-10"
|
||||
|
||||
### StartLayout node
|
||||
|
||||
After the definition of allowed applications, customize the Start layout for the kiosk experience. You can choose to pin all the allowed applications on the Start menu, or a subset.
|
||||
|
||||
The easiest way to create a customized Start layout is to configure the Start menu on a test device and then export the layout. For detailed steps, refer to Customize and export Start layout.
|
||||
|
||||
> [!NOTE]
|
||||
> - The test device on which you customize the Start layout should have the same OS version that is installed on the device where you plan to deploy the Assigned Access configuration
|
||||
> - There are no apps pinned on the taskbar in the multi-app mode, and it's not supported to configure Taskbar layout using the <CustomTaskbarLayoutCollection> tag in a layout modification XML as part of the Assigned Access configuration
|
||||
|
||||
The following example pins Calculator, Photos, Weather, Calculator, Command Prompt, and Windows PowerShell apps to the Start menu.
|
||||
|
||||
|
||||
```xml
|
||||
<StartLayout>
|
||||
<![CDATA[
|
||||
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
|
||||
xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1"
|
||||
xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
|
||||
<LayoutOptions StartTileGroupCellWidth="6" />
|
||||
<DefaultLayoutOverride>
|
||||
<StartLayoutCollection>
|
||||
<defaultlayout:StartLayout GroupCellWidth="6">
|
||||
<start:Group Name="Group1">
|
||||
<start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" />
|
||||
<start:Tile Size="2x2" Column="4" Row="2" AppUserModelID="Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo" />
|
||||
<start:Tile Size="2x2" Column="4" Row="0" AppUserModelID="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<start:Tile Size="2x2" Column="4" Row="4" AppUserModelID="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<start:Tile Size="4x2" Column="0" Row="4" AppUserModelID="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
</start:Group>
|
||||
<start:Group Name="Group2">
|
||||
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" />
|
||||
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk" />
|
||||
</start:Group>
|
||||
</defaultlayout:StartLayout>
|
||||
</StartLayoutCollection>
|
||||
</DefaultLayoutOverride>
|
||||
</LayoutModificationTemplate>
|
||||
]]>
|
||||
</StartLayout>
|
||||
```
|
||||
|
||||
::: zone-end
|
||||
|
||||
::: zone pivot="windows-11"
|
||||
|
||||
### StartPins node
|
||||
|
||||
After you define the list of allowed applications, you can customize the Start layout for your kiosk experience. The easiest way to create a customized Start layout to apply to other Windows client devices is to set up the Start screen on a test device and then export the layout. Once you've decided, you can get the JSON needed for your kiosk configuration by following the steps to [Get the pinnedList JSON](../start/customize-and-export-start-layout.md). If you opt to do this using the PowerShell command, make sure that the system you run the command on has the same file structure as the device on which you will apply the kiosk (the path to the allowed apps must be the same). At the end of this step, you should have a JSON pinnedList that looks something like the below.
|
||||
|
||||
Add your pinnedList JSON into the StartPins tag in your XML file.
|
||||
|
||||
```xml
|
||||
<v5:StartPins>
|
||||
<![CDATA[
|
||||
{
|
||||
"pinnedList":[
|
||||
{"packagedAppId":"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.Windows.Photos_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.BingWeather_8wekyb3d8bbwe!App"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\System Tools\\Command Prompt.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Windows PowerShell\\Windows PowerShell.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\File Explorer.lnk"},
|
||||
{"packagedAppId": "windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel"},
|
||||
{"desktopAppLink": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk"}
|
||||
]
|
||||
}
|
||||
]]>
|
||||
</v5:StartPins>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If an app isn't installed for the user, but is included in the Start layout XML, the app isn't shown on the Start screen.
|
||||
|
||||
::: zone-end
|
||||
|
||||
### Taskbar
|
||||
|
||||
Define whether you want to have the taskbar present in the kiosk device. For tablet-based or touch-enabled All-In-One kiosks, when you don't attach a keyboard and mouse, you can hide the taskbar as part of the multi-app experience if you want.
|
||||
|
||||
The following example exposes the taskbar to the end user:
|
||||
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
|
||||
The following example hides the taskbar:
|
||||
|
||||
<Taskbar ShowTaskbar="false"/>
|
||||
|
||||
> [!NOTE]
|
||||
> This is different from the **Automatically hide the taskbar** option in tablet mode, which shows the taskbar when swiping up from or moving the mouse pointer down to the bottom of the screen. Setting **ShowTaskbar** as **false** will always keep the taskbar hidden.
|
||||
|
||||
## Configs
|
||||
|
||||
## Full XML example
|
||||
|
||||
::: zone pivot="windows-11"
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config">
|
||||
<Profiles>
|
||||
<Profile Id="{6954c40a-45dd-4176-a2e3-ecaf5c97f425}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App DesktopAppPath="C:\Windows\system32\cmd.exe" />
|
||||
<App DesktopAppPath="%windir%\System32\WindowsPowerShell\v1.0\Powershell.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
<v3:AllowRemovableDrives/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<v5:StartPins>
|
||||
<![CDATA[{
|
||||
"pinnedList":[
|
||||
{"packagedAppId":"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.Windows.Photos_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.BingWeather_8wekyb3d8bbwe!App"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\System Tools\\Command Prompt.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Windows PowerShell\\Windows PowerShell.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\File Explorer.lnk"},
|
||||
{"packagedAppId": "windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel"},
|
||||
{"desktopAppLink": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk"}
|
||||
]
|
||||
}]]>
|
||||
</v5:StartPins>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Library Kiosk"/>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
::: zone-end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:::row:::
|
||||
:::column span="1":::
|
||||
**Scenario**
|
||||
:::column-end:::
|
||||
:::column span="3":::
|
||||
**Sample Xml**
|
||||
:::column-end:::
|
||||
:::row-end:::
|
||||
:::row:::
|
||||
:::column span="1":::
|
||||
**Block everything**
|
||||
:::column-end:::
|
||||
:::column span="3":::
|
||||
Either don't use the node or leave it empty
|
||||
|
||||
```xml
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
```
|
||||
:::column-end:::
|
||||
:::row-end:::
|
||||
:::row:::
|
||||
:::column span="1":::
|
||||
**Only allow downloads**
|
||||
:::column-end:::
|
||||
:::column span="3":::
|
||||
```xml
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
```
|
||||
:::column-end:::
|
||||
:::row-end:::
|
||||
|
||||
:::row:::
|
||||
:::column span="1":::
|
||||
**Only allow removable drives**
|
||||
:::column-end:::
|
||||
:::column span="3":::
|
||||
```xml
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<v3:AllowRemovableDrives />
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
```
|
||||
:::column-end:::
|
||||
:::row-end:::
|
||||
|
||||
:::row:::
|
||||
:::column span="1":::
|
||||
**Allow both Downloads, and removable drives**
|
||||
:::column-end:::
|
||||
:::column span="3":::
|
||||
```xml
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
<v3:AllowRemovableDrives/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
```
|
||||
:::column-end:::
|
||||
:::row-end:::
|
||||
|
||||
:::row:::
|
||||
:::column span="1":::
|
||||
**No restrictions, all locations are allowed**
|
||||
:::column-end:::
|
||||
:::column span="3":::
|
||||
```xml
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<v3:NoRestriction />
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
```
|
||||
:::column-end:::
|
||||
:::row-end:::
|
||||
|
||||
<!--troubleshooting
|
||||
Event Viewer
|
||||
Run "eventvwr.msc"
|
||||
Navigate to "Applications and Services Logs"
|
||||
There are 2 areas of your interests:
|
||||
"Microsoft-Windows-AssignedAccess"
|
||||
"Microsoft-Windows-AssignedAccessBroker"
|
||||
Before any repro, it's recommended to enable "Operational" channel to get the most of logs.
|
||||
TraceLogging
|
||||
<TBD>
|
||||
|
||||
Registry Key
|
||||
These locations contain the latest Assigned Access Configuration:
|
||||
|
||||
HKLM\SOFTWARE\Microsoft\Windows\AssignedAccessConfiguration
|
||||
HKLM\SOFTWARE\Microsoft\Windows\AssignedAccessCsp
|
||||
These locations contain the latest "evaluated" configuration for each sign-in user:
|
||||
|
||||
"HKCU\SOFTWARE\Microsoft\Windows\AssignedAccessConfiguration" (If it doesn't exist, it means no Assigned Access to be enforced for this user.)
|
||||
-->
|
||||
|
||||
|
||||
## Assigned Access configuration XML examples
|
||||
|
||||
This article provides practical examples of Assigned Access XML configuration files.
|
||||
|
||||
For more details, review the Assigned Access XSD reference article.
|
||||
|
||||
## Kiosk example 1
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{GUID}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="" />
|
||||
<App DesktopAppPath="" rs5:AutoLaunch="" rs5:AutoLaunchArguments=""/>
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<StartLayout>
|
||||
...
|
||||
</StartLayout>
|
||||
<Taskbar ShowTaskbar=""/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>domain\account</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>AzureAD\john@contoso.onmicrosoft.com</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>localaccount</Account>
|
||||
<DefaultProfile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Hello World"/>
|
||||
<DefaultProfile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<UserGroup Type="LocalGroup" Name="mygroup" />
|
||||
<DefaultProfile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<UserGroup Type="ActiveDirectoryGroup" Name="redmond\somegroup" />
|
||||
<DefaultProfile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<UserGroup Type="AzureActiveDirectoryGroup" Name="a8d36e43-4180-4ac5-a627-fb8149bba1ac" />
|
||||
<DefaultProfile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
## Kiosk only sample XML
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{AFF9DA33-AE89-4039-B646-3A5706E92957}">
|
||||
<KioskModeApp AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>singleappuser</Account>
|
||||
<DefaultProfile Id="{AFF9DA33-AE89-4039-B646-3A5706E92957}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
## Auto Launch Sample XML
|
||||
|
||||
This sample demonstrates that both UWP and Win32 apps can be configured to automatically launch, when assigned access account logs in. One profile can have at most one app configured for auto launch. AutoLaunchArguments are passed to the apps as is and the app needs to handle the arguments explicitly.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:r1809="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" r1809:AutoLaunch="true"/>
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
<Profile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" r1809:AutoLaunch="true" r1809:AutoLaunchArguments="1.txt"/>
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<Taskbar ShowTaskbar="false"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>aauser1</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>aauser2</Account>
|
||||
<DefaultProfile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
|
||||
```
|
||||
|
||||
## Microsoft Edge Kiosk XML Sample
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{AFF9DA33-AE89-4039-B646-3A5706E92957}">
|
||||
|
||||
<KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--no-first-run --kiosk-idle-timeout-minutes=5 --kiosk www.bing.com" />
|
||||
<v4:BreakoutSequence Key="Ctrl+A"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>EdgeKioskUser</Account>
|
||||
<DefaultProfile Id="{AFF9DA33-AE89-4039-B646-3A5706E92957}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
## Global Profile Sample XML
|
||||
|
||||
Global Profile is supported on:
|
||||
|
||||
- Windows 11
|
||||
- Windows 10, version 2004 and later
|
||||
|
||||
Global Profile is designed for scenarios where a user doesn't have a designated profile, yet you still want the user to run in lockdown mode. It's also used as mitigation when a profile can't be determined for a user.
|
||||
|
||||
This sample demonstrates that only a global profile is used, with no active user configured. Global Profile will be applied when every non-admin account signs in.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" rs5:AutoLaunch="true" rs5:AutoLaunchArguments="123"/>
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<v3:GlobalProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
||||
|
||||
Below sample shows dedicated profile and global profile mixed usage, a user would use one profile, everyone else that's non-admin will use another profile.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" rs5:AutoLaunch="true" rs5:AutoLaunchArguments="123"/>
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
<Profile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" rs5:AutoLaunch="true" rs5:AutoLaunchArguments="1.txt"/>
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<Taskbar ShowTaskbar="false"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<v3:GlobalProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
<Config>
|
||||
<Account>aauser</Account>
|
||||
<DefaultProfile Id="{5B328104-BD89-4863-AB27-4ED6EE355485}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
|
||||
```
|
||||
|
||||
## Folder Access sample xml
|
||||
|
||||
Starting with Windows 10 version 1809 +, folder access is locked down so that when common file dialog is opened, IT Admin can specify if the user has access to the Downloads folder, or no access to any folder at all. This restriction has been redesigned for finer granularity and easier use, and is available in Windows 10 version 2009+.
|
||||
|
||||
IT Admin now can specify user access to Downloads folder, Removable drives, or no restrictions at all. Downloads and Removable Drives can be allowed at the same time.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C24}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C25}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C26}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<v3:AllowRemovableDrives />
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C27}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
<v3:AllowRemovableDrives/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C28}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.Microsoft3DViewer_8wekyb3d8bbwe!Microsoft.Microsoft3DViewer" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" />
|
||||
<App DesktopAppPath="%SystemRoot%\system32\notepad.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<v3:NoRestriction />
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Account>multi1</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>multi2</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C24}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>multi3</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C25}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>multi4</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C26}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>multi5</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C27}"/>
|
||||
</Config>
|
||||
<Config>
|
||||
<Account>multi6</Account>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C28}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
|
||||
```
|
||||
|
||||
To authorize a compatible configuration XML that includes elements and attributes from Windows 10 version 1809 or newer / Windows 11, always include the namespace of these add-on schemas, and decorate the attributes and elements accordingly with the namespace alias.
|
||||
|
||||
For example, to configure the autolaunch feature that was added in Windows 10 version 1809 / Windows 11, use the following sample. Notice an alias r1809 is given to the 201810 namespace for Windows 10 version 1809 / Windows 11, and the alias is tagged on AutoLaunch and AutoLaunchArguments inline.
|
@ -1,39 +0,0 @@
|
||||
---
|
||||
title: Create an Shell Launcher configuration file
|
||||
description: Learn how to create an XML file to configure a device with Shell Launcher.
|
||||
ms.date: 02/12/2024
|
||||
ms.topic: how-to
|
||||
---
|
||||
|
||||
# Shell Launcher configuration XML examples
|
||||
|
||||
This article provides practical examples of Shell Launcher XML configuration files.
|
||||
|
||||
For more details, review the Shell Launcher XSD reference article.
|
||||
|
||||
## Kiosk example
|
||||
|
||||
[!INCLUDE [shell-launcher-quickstart-xml](includes/shell-launcher-quickstart-xml.md)]
|
||||
|
||||
|
||||
|
||||
<!--troubleshooting
|
||||
Event Viewer
|
||||
Run "eventvwr.msc"
|
||||
Navigate to "Applications and Services Logs"
|
||||
There are 2 areas of your interests:
|
||||
"Microsoft-Windows-AssignedAccess"
|
||||
"Microsoft-Windows-AssignedAccessBroker"
|
||||
Before any repro, it's recommended to enable "Operational" channel to get the most of logs.
|
||||
TraceLogging
|
||||
<TBD>
|
||||
|
||||
Registry Key
|
||||
These locations contain the latest Assigned Access Configuration:
|
||||
|
||||
HKLM\SOFTWARE\Microsoft\Windows\AssignedAccessConfiguration
|
||||
HKLM\SOFTWARE\Microsoft\Windows\AssignedAccessCsp
|
||||
These locations contain the latest "evaluated" configuration for each sign-in user:
|
||||
|
||||
"HKCU\SOFTWARE\Microsoft\Windows\AssignedAccessConfiguration" (If it doesn't exist, it means no Assigned Access to be enforced for this user.)
|
||||
-->
|
@ -1,114 +0,0 @@
|
||||
---
|
||||
title: Find the Application User Model ID of an installed app
|
||||
description: Learn how to find the Application User Model ID (AUMID) of the appications installed on a Windows device.
|
||||
ms.topic: how-to
|
||||
ms.date: 02/06/2024
|
||||
---
|
||||
|
||||
# Find the Application User Model ID of an installed app
|
||||
|
||||
Windows uses Application User Model Id (AUMID, also known as AppId) values to identify and differentiate applications for switching, launching, telemetry, and other functions.\
|
||||
AUMID are unique to each installed application, and independent of the installation path or the application's display name.
|
||||
|
||||
To configure Assigned Access, which is the Configuration Service Provider (CSP) used to create a kiosk or dedicated device, you must use the AUMID of the apps installed on a device. This article describes how to find the AUMID of an installed application.
|
||||
|
||||
## How to find the AUMID
|
||||
|
||||
You can find an application's AUMID by using Windows PowerShell, File Explorer, or the registry.
|
||||
|
||||
Follow the instructions to retrieve AUMIDs, selecting the tool of your choice.
|
||||
|
||||
# [:::image type="icon" source="../images/icons/powershell.svg"::: **PowerShell**](#tab/ps)
|
||||
|
||||
To get the names and AUMIDs for all apps that appear in the Start menu, open a Windows PowerShell command prompt and enter the following command:
|
||||
|
||||
```powershell
|
||||
Get-StartApps
|
||||
```
|
||||
|
||||
>[!NOTE]
|
||||
>Applications that are not listed in the Start menu will not appear in the output of the **Get-StartApps** cmdlet.
|
||||
|
||||
To get the names and AUMIDs for Microsoft Store apps installed for the current user, open a Windows PowerShell command prompt and enter the following commands:
|
||||
|
||||
```powershell
|
||||
$installedapps = Get-AppxPackage
|
||||
|
||||
$aumidList = @()
|
||||
foreach ($app in $installedapps)
|
||||
{
|
||||
foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
|
||||
{
|
||||
$aumidList += $app.packagefamilyname + "!" + $id
|
||||
}
|
||||
}
|
||||
|
||||
$aumidList
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> You can add the `-user <username>` or the `-allusers` parameters to the `Get-AppxPackage` cmdlet to list AUMIDs for other users. You must use an elevated Windows PowerShell prompt to use the `-user` or -`allusers` parameters.
|
||||
|
||||
### Example to get AUMIDs of the installed apps for the specified user
|
||||
|
||||
The following code sample creates a function in Windows PowerShell that returns an array of AUMIDs of the installed apps for the specified user.
|
||||
|
||||
### Example to get the AUMID of any application in the Start menu
|
||||
|
||||
The following code sample creates a function in Windows PowerShell that returns the AUMID of any application currently listed in the Start menu.
|
||||
|
||||
```powershell
|
||||
function Get-AppAUMID {
|
||||
param (
|
||||
[string]$AppName
|
||||
)
|
||||
$Apps = (New-Object -ComObject Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items()
|
||||
if ($AppName){
|
||||
$Result = $Apps | Where-Object { $_.name -like "*$AppName*" } | Select-Object name,@{n="AUMID";e={$_.path}}
|
||||
if ($Result){
|
||||
Return $Result
|
||||
}
|
||||
else {"Unable to locate {0}" -f $AppName}
|
||||
}
|
||||
else {
|
||||
$Result = $Apps | Select-Object name,@{n="AUMID";e={$_.path}}
|
||||
Return $Result
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The following Windows PowerShell commands demonstrate how you can call the Get-AppAUMID function after you've created it.
|
||||
|
||||
```powershell
|
||||
# Get the AUMID for OneDrive
|
||||
Get-AppAUMID -AppName OneDrive
|
||||
|
||||
# Get the AUMID for Microsoft Word
|
||||
Get-AppAUMID -AppName Word
|
||||
|
||||
# List all apps and their AUMID in the Start menu
|
||||
Get-AppAUMID
|
||||
```
|
||||
|
||||
# [:::image type="icon" source="../images/icons/explorer.svg"::: **Explorer**](#tab/explorer)
|
||||
|
||||
To get the names and AUMIDs for all apps installed for the current user, perform the following steps:
|
||||
|
||||
1. Select **Start** > **Run**, enter `shell:Appsfolder`, and select **OK**
|
||||
1. A File Explorer window opens. Press <kbd>Alt</kbd>+<kbd>V</kbd> > **Choose details**
|
||||
1. In the **Choose Details** window, select **AppUserModelId**, and then select **OK**. (You might need to c
|
||||
1. Change the **View** setting from **Tiles** to **Details**
|
||||
|
||||
:::image type="content" source="images/aumid-file-explorer.png" alt-text="Screenshot of the File Explorer showing the AUMID details." border="false":::
|
||||
|
||||
# [:::image type="icon" source="../images/icons/registry.svg"::: **Registry**](#tab/registry)
|
||||
|
||||
Querying the registry can only return information about Microsoft Store apps that are installed for the current user, while the Windows PowerShell query can find information for any account on the device.
|
||||
|
||||
At a command prompt, type the following command:
|
||||
|
||||
```cmd
|
||||
reg query HKEY_CURRENT_USER\Software\Classes\ActivatableClasses\Package /s /f AppUserModelID | find "REG_SZ"
|
||||
```
|
||||
|
||||
---
|
@ -1,146 +0,0 @@
|
||||
---
|
||||
title: Guidelines for choosing an app for assigned access
|
||||
description: The following guidelines may help you choose an appropriate Windows app for your assigned access experience.
|
||||
ms.topic: article
|
||||
ms.date: 12/31/2017
|
||||
---
|
||||
|
||||
# Guidelines for choosing an app for assigned access (kiosk mode)
|
||||
|
||||
Use assigned access to restrict users to use only one application, so that the device acts like a kiosk. Administrators can use assigned access to restrict a selected user account to access a single Windows app. You can choose almost any Windows app for assigned access; however, some apps may not provide a good user experience.
|
||||
|
||||
The following guidelines may help you choose an appropriate Windows app for your assigned access experience.
|
||||
|
||||
## General guidelines
|
||||
|
||||
- Windows apps must be provisioned or installed for the assigned access account before they can be selected as the assigned access app. [Learn how to provision and install apps](/windows/client-management/mdm/enterprise-app-management#install_your_apps).
|
||||
- Updating a Windows app can sometimes change the Application User Model ID (AUMID) of the app. If this change happens, you must update the assigned access settings to launch the updated app, because assigned access uses the AUMID to determine which app to launch.
|
||||
- Apps that are generated using the [Desktop App Converter (Desktop Bridge)](/windows/uwp/porting/desktop-to-uwp-run-desktop-app-converter) can't be used as kiosk apps.
|
||||
|
||||
## Guidelines for Windows apps that launch other apps
|
||||
|
||||
Some apps can launch other apps. Assigned access prevents Windows apps from launching other apps.
|
||||
|
||||
Avoid selecting Windows apps that are designed to launch other apps as part of their core functionality.
|
||||
|
||||
## Guidelines for web browsers
|
||||
|
||||
Microsoft Edge includes support for kiosk mode. [Learn how to deploy Microsoft Edge kiosk mode.](/microsoft-edge/deploy/microsoft-edge-kiosk-mode-deploy)
|
||||
|
||||
In Windows client, you can install the **Kiosk Browser** app from Microsoft to use as your kiosk app. For digital signage scenarios, you can configure **Kiosk Browser** to navigate to a URL and show only that content -- no navigation buttons, no address bar, etc. For kiosk scenarios, you can configure more settings, such as allowed and blocked URLs, navigation buttons, and end session buttons. For example, you could configure your kiosk to show the online catalog for your store, where customers can navigate between departments and items, but aren't allowed to go to a competitor's website.
|
||||
|
||||
>[!NOTE]
|
||||
>Kiosk Browser supports a single tab. If a website has links that open a new tab, those links will not work with Kiosk Browser. Kiosk Browser does not support .pdfs.
|
||||
>
|
||||
>Kiosk Browser can't access intranet websites.
|
||||
|
||||
**Kiosk Browser** must be downloaded for offline licensing using Microsoft Store For Business. You can deploy **Kiosk Browser** to devices running Windows 10, version 1803 (Pro, Business, Enterprise, and Education) and Windows 11.
|
||||
|
||||
1. [Get **Kiosk Browser** in Microsoft Store for Business with offline license type.](/microsoft-store/acquire-apps-microsoft-store-for-business#acquire-apps)
|
||||
1. [Deploy **Kiosk Browser** to kiosk devices.](/microsoft-store/distribute-offline-apps)
|
||||
1. Configure policies using settings from the Policy Configuration Service Provider (CSP) for [KioskBrowser](/windows/client-management/mdm/policy-csp-kioskbrowser). These settings can be configured using your MDM service provider, or [in a provisioning package](../provisioning-packages/provisioning-create-package.md). In Windows Configuration Designer, the settings are located in **Policies > KioskBrowser** when you select advanced provisioning for Windows desktop editions.
|
||||
|
||||
>[!NOTE]
|
||||
>If you configure the kiosk using a provisioning package, you must apply the provisioning package after the device completes the out-of-box experience (OOBE).
|
||||
|
||||
### Kiosk Browser settings
|
||||
|
||||
| Kiosk Browser settings | Use this setting to |
|
||||
|--|--|
|
||||
| Blocked URL Exceptions | Specify URLs that people can navigate to, even though the URL is in your blocked URL list. You can use wildcards. <br><br>For example, if you want people to be limited to `http://contoso.com` only, you would add `.contoso.com` to blocked URL exception list and then block all other URLs. |
|
||||
| Blocked URLs | Specify URLs that people can't navigate to. You can use wildcards. <br><br>If you want to limit people to a specific site, add `https://*` to the blocked URL list, and then specify the site to be allowed in the blocked URL exceptions list. |
|
||||
| Default URL | Specify the URL that Kiosk Browser will open with. **Tip!** Make sure your blocked URLs don't include your default URL. |
|
||||
| Enable End Session Button | Show a button in Kiosk Browser that people can use to reset the browser. End Session will clear all browsing data and navigate back to the default URL. |
|
||||
| Enable Home Button | Show a Home button in Kiosk Browser. Home will return the browser to the default URL. |
|
||||
| Enable Navigation Buttons | Show forward and back buttons in Kiosk Browser. |
|
||||
| Restart on Idle Time | Specify when Kiosk Browser should restart in a fresh state after an amount of idle time since the last user interaction. |
|
||||
|
||||
To configure multiple URLs for **Blocked URL Exceptions** or **Blocked URLs** in Windows Configuration Designer:
|
||||
|
||||
1. Create the provisioning package. When ready to export, close the project in Windows Configuration Designer
|
||||
1. Open the customizations.xml file in the project folder (e.g C:\Users\name\Documents\Windows Imaging and Configuration Designer (WICD)\Project_18)
|
||||
1. Insert the null character string in between each URL (e.g www.bing.com``www.contoso.com)
|
||||
1. Save the XML file
|
||||
1. Open the project again in Windows Configuration Designer
|
||||
1. Export the package. Ensure you do not revisit the created policies under Kiosk Browser or else the null character will be removed
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
> To enable the **End Session** button for Kiosk Browser in Intune, you must [create a custom OMA-URI policy](/intune/custom-settings-windows-10) with the following information:
|
||||
>
|
||||
> - OMA-URI: ./Vendor/MSFT/Policy/Config/KioskBrowser/EnableEndSessionButton
|
||||
> - Data type: Integer
|
||||
> - Value: 1
|
||||
|
||||
#### Rules for URLs in Kiosk Browser settings
|
||||
|
||||
Kiosk Browser filtering rules are based on the [Chromium Project](https://www.chromium.org/Home).
|
||||
|
||||
URLs can include:
|
||||
|
||||
- A valid port value from 1 to 65,535.
|
||||
- The path to the resource.
|
||||
- Query parameters.
|
||||
|
||||
More guidelines for URLs:
|
||||
|
||||
- If a period precedes the host, the policy filters exact host matches only
|
||||
- You can't use user:pass fields
|
||||
- When both blocked URL and blocked URL exceptions apply with the same path length, the exception takes precedence
|
||||
- The policy searches wildcards (*) last
|
||||
- The optional query is a set of key-value and key-only tokens delimited by '&'
|
||||
- Key-value tokens are separated by '='
|
||||
- A query token can optionally end with a '*' to indicate prefix match. Token order is ignored during matching
|
||||
|
||||
### Examples of blocked URLs and exceptions
|
||||
|
||||
The following table describes the results for different combinations of blocked URLs and blocked URL exceptions.
|
||||
|
||||
| Blocked URL rule | Block URL exception rule | Result |
|
||||
|--|--|--|
|
||||
| `*` | `contoso.com`<br>`fabrikam.com` | All requests are blocked unless it's to contoso.com, fabrikam.com, or any of their subdomains. |
|
||||
| `contoso.com` | `mail.contoso.com`<br>`.contoso.com`<br>`.www.contoso.com` | Block all requests to contoso.com, except for the main page and its mail subdomain. |
|
||||
| `youtube.com` | `youtube.com/watch?v=v1`<br>`youtube.com/watch?v=v2` | Blocks all access to youtube.com except for the specified videos (v1 and v2). |
|
||||
|
||||
The following table gives examples for blocked URLs.
|
||||
|
||||
| Entry | Result |
|
||||
|--|--|
|
||||
| `contoso.com` | Blocks all requests to contoso.com, www.contoso.com, and sub.www.contoso.com |
|
||||
| `https://*` | Blocks all HTTPS requests to any domain. |
|
||||
| `mail.contoso.com` | Blocks requests to mail.contoso.com but not to www.contoso.com or contoso.com |
|
||||
| `.contoso.com` | Blocks contoso.com but not its subdomains, like subdomain.contoso.com. |
|
||||
| `.www.contoso.com` | Blocks www.contoso.com but not its subdomains. |
|
||||
| `*` | Blocks all requests except for URLs in the Blocked URL Exceptions list. |
|
||||
| `*:8080` | Blocks all requests to port 8080. |
|
||||
| `contoso.com/stuff` | Blocks all requests to contoso.com/stuff and its subdomains. |
|
||||
| `192.168.1.2` | Blocks requests to 192.168.1.1. |
|
||||
| `youtube.com/watch?v=V1` | Blocks YouTube video with id V1. |
|
||||
|
||||
### Other browsers
|
||||
|
||||
You can create your own web browser Windows app by using the WebView class. Learn more about developing your own web browser app:
|
||||
|
||||
- [Creating your own browser with HTML and JavaScript](https://blogs.windows.com/msedgedev/2015/08/27/creating-your-own-browser-with-html-and-javascript/)
|
||||
- [WebView class](/uwp/api/Windows.UI.Xaml.Controls.WebView)
|
||||
- [A web browser built with JavaScript as a Windows app](https://github.com/MicrosoftEdge/JSBrowser/tree/v1.0)
|
||||
|
||||
## Secure your information
|
||||
|
||||
Avoid selecting Windows apps that may expose the information you don't want to show in your kiosk, since kiosk usually means anonymous access and locates in a public setting like a shopping mall. For example, an app that has a file picker allows the user to gain access to files and folders on the user's system, avoid selecting these types of apps if they provide unnecessary data access.
|
||||
|
||||
## App configuration
|
||||
|
||||
Some apps may require more configurations before they can be used appropriately in assigned access. For example, Microsoft OneNote requires you to set up a Microsoft account for the assigned access user account before OneNote will open in assigned access.
|
||||
|
||||
Check the guidelines published by your selected app and set up accordingly.
|
||||
|
||||
## Develop your kiosk app
|
||||
|
||||
Assigned access in Windows client uses the new lock framework. When an assigned access user signs in, the selected kiosk app is launched above the lock screen. The kiosk app is running as an above lock screen app.
|
||||
|
||||
Follow the [best practices guidance for developing a kiosk app for assigned access](/windows-hardware/drivers/partnerapps/create-a-kiosk-app-for-assigned-access).
|
||||
|
||||
## Test your assigned access experience
|
||||
|
||||
The above guidelines may help you select or develop an appropriate Windows app for your assigned access experience. Once you've selected your app, we recommend that you thoroughly test the assigned access experience to ensure that your device provides a good customer experience.
|
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 418 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 837 KiB |
Before Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 19 KiB |
@ -1,14 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```msgraph-interactive
|
||||
POST https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations
|
||||
Content-Type: application/json
|
||||
|
||||
{ "id": "00000000-0000-0000-0000-000000000000", "displayName": "_MSLearn_Example_Kiosk - Assigned Access", "description": "This is a sample policy created from an article on learn.microsoft.com.", "roleScopeTagIds": [ "0" ], "@odata.type": "#microsoft.graph.windows10CustomConfiguration", "omaSettings": [ { "omaUri": "./Vendor/MSFT/AssignedAccess/Configuration", "displayName": "Configuration", "@odata.type": "#microsoft.graph.omaSettingString", "value": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<AssignedAccessConfiguration\n xmlns=\"http://schemas.microsoft.com/AssignedAccess/2017/config\"\n xmlns:rs5=\"http://schemas.microsoft.com/AssignedAccess/201810/config\"\n xmlns:v4=\"http://schemas.microsoft.com/AssignedAccess/2021/config\"\n >\n <Profiles>\n <Profile Id=\"{EDB3036B-780D-487D-A375-69369D8A8F78}\">\n <KioskModeApp v4:ClassicAppPath=\"%ProgramFiles(x86)%\\Microsoft\\Edge\\Application\\msedge.exe\" v4:ClassicAppArguments=\"--kiosk https://maps.cltairport.com/ --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2\" />\n <v4:BreakoutSequence Key=\"Ctrl+A\"/>\n </Profile>\n </Profiles>\n <Configs>\n <Config>\n <AutoLogonAccount rs5:DisplayName=\"Airport Kiosk\"/>\n <DefaultProfile Id=\"{EDB3036B-780D-487D-A375-69369D8A8F78}\"/>\n </Config>\n </Configs>\n</AssignedAccessConfiguration>" } ] }
|
||||
```
|
@ -1,64 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```powershell
|
||||
$assignedAccessConfiguration = @"
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
|
||||
<KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--kiosk https://maps.cltairport.com/ --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" />
|
||||
<v4:BreakoutSequence Key="Ctrl+A"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Airport Kiosk"/>
|
||||
<DefaultProfile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
"@
|
||||
|
||||
$eventLogFilterHashTable = @{
|
||||
ProviderName = "Microsoft-Windows-AssignedAccess";
|
||||
StartTime = Get-Date -Millisecond 0
|
||||
}
|
||||
|
||||
$namespaceName="root\cimv2\mdm\dmmap"
|
||||
$className="MDM_AssignedAccess"
|
||||
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
|
||||
$obj.Configuration = [System.Net.WebUtility]::HtmlEncode($assignedAccessConfiguration)
|
||||
$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()
|
||||
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 Assigned Access configuration"
|
||||
```
|
@ -1,29 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
|
||||
<KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--kiosk https://maps.cltairport.com/ --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" />
|
||||
<v4:BreakoutSequence Key="Ctrl+A"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Airport Kiosk"/>
|
||||
<DefaultProfile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
@ -1,14 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```msgraph-interactive
|
||||
POST https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations
|
||||
Content-Type: application/json
|
||||
|
||||
{ "id": "00-0000-0000-0000-000000000000", "displayName": "_MSLearn_Example", "description": "Collection of settings for Assigned Access", "roleScopeTagIds": [ "0" ], "@odata.type": "#microsoft.graph.windows10CustomConfiguration", "omaSettings": [ { "@odata.type": "#microsoft.graph.omaSettingString", "displayName": "AssignedAccess_Configuration", "description": null, "omaUri": "./Vendor/MSFT/AssignedAccess/Configuration", "secretReferenceValueId": null, "isEncrypted": true, "value": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<AssignedAccessConfiguration xmlns=\"http://schemas.microsoft.com/AssignedAccess/2017/config\"\n xmlns:rs5=\"http://schemas.microsoft.com/AssignedAccess/201810/config\"\n xmlns:rs5=\"http://schemas.microsoft.com/AssignedAccess/201810/config\"\n xmlns:v3=\"http://schemas.microsoft.com/AssignedAccess/2020/config\"\n xmlns:v5=\"http://schemas.microsoft.com/AssignedAccess/2022/config\"\n xmlns:v5=\"http://schemas.microsoft.com/AssignedAccess/2022/config\"\n >\n <Profiles>\n <Profile Id=\"{9A2A490F-10F6-4764-974A-43B19E722C23}\">\n <AllAppsList>\n <AllowedApps>\n <App AppUserModelId=\"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App\" />\n <App AppUserModelId=\"Microsoft.Windows.Photos_8wekyb3d8bbwe!App\" />\n <App AppUserModelId=\"Microsoft.BingWeather_8wekyb3d8bbwe!App\" />\n <App DesktopAppPath=\"C:\\Windows\\system32\\cmd.exe\" />\n <App DesktopAppPath=\"%windir%\\System32\\WindowsPowerShell\\v1.0\\Powershell.exe\" />\n <App DesktopAppPath=\"%windir%\\explorer.exe\" />\n <App AppUserModelId=\"windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel\" />\n <App AppUserModelId=\"%ProgramFiles(x86)%\\Microsoft\\Edge\\Application\\msedge.exe\" />\n </AllowedApps>\n </AllAppsList>\n <rs5:FileExplorerNamespaceRestrictions>\n <rs5:AllowedNamespace Name=\"Downloads\"/>\n <v3:AllowRemovableDrives/>\n </rs5:FileExplorerNamespaceRestrictions>\n <v5:StartPins>\n <![CDATA[{\n \"pinnedList\":[\n {\"packagedAppId\":\"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App\"},\n {\"packagedAppId\":\"Microsoft.Windows.Photos_8wekyb3d8bbwe!App\"},\n {\"packagedAppId\":\"Microsoft.BingWeather_8wekyb3d8bbwe!App\"},\n {\"desktopAppLink\":\"%APPDATA%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\System Tools\\\\Command Prompt.lnk\"},\n {\"desktopAppLink\":\"%APPDATA%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Windows PowerShell\\\\Windows PowerShell.lnk\"},\n {\"desktopAppLink\":\"%APPDATA%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\File Explorer.lnk\"},\n {\"packagedAppId\": \"windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel\"},\n {\"desktopAppLink\": \"%ALLUSERSPROFILE%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Microsoft Edge.lnk\"}\n ]\n }]]>\n </v5:StartPins>\n <Taskbar ShowTaskbar=\"true\"/>\n </Profile>\n </Profiles>\n <Configs>\n <Config>\n <AutoLogonAccount rs5:DisplayName=\"Library Kiosk\"/>\n <DefaultProfile Id=\"{9A2A490F-10F6-4764-974A-43B19E722C23}\"/>\n </Config>\n </Configs>\n</AssignedAccessConfiguration>" } ] }
|
||||
```
|
@ -1,94 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```powershell
|
||||
$assignedAccessConfiguration = @"
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config"
|
||||
>
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App DesktopAppPath="%windir%\System32\cmd.exe" />
|
||||
<App DesktopAppPath="%windir%\System32\WindowsPowerShell\v1.0\Powershell.exe" />
|
||||
<App DesktopAppPath="%windir%\explorer.exe" />
|
||||
<App AppUserModelId="windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel" />
|
||||
<App AppUserModelId="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
<v3:AllowRemovableDrives/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<v5:StartPins>
|
||||
<![CDATA[{
|
||||
"pinnedList":[
|
||||
{"packagedAppId":"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.Windows.Photos_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.BingWeather_8wekyb3d8bbwe!App"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\System Tools\\Command Prompt.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Windows PowerShell\\Windows PowerShell.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\File Explorer.lnk"},
|
||||
{"packagedAppId": "windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel"},
|
||||
{"desktopAppLink": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk"}
|
||||
]
|
||||
}]]>
|
||||
</v5:StartPins>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Library Kiosk"/>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
"@
|
||||
|
||||
$eventLogFilterHashTable = @{
|
||||
ProviderName = "Microsoft-Windows-AssignedAccess";
|
||||
StartTime = Get-Date -Millisecond 0
|
||||
}
|
||||
|
||||
$namespaceName="root\cimv2\mdm\dmmap"
|
||||
$className="MDM_AssignedAccess"
|
||||
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
|
||||
$obj.Configuration = [System.Net.WebUtility]::HtmlEncode($assignedAccessConfiguration)
|
||||
$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()
|
||||
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 Assigned Access configuration"
|
||||
```
|
@ -1,61 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<AssignedAccessConfiguration
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:default="http://schemas.microsoft.com/AssignedAccess/2017/config"
|
||||
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
|
||||
xmlns:v3="http://schemas.microsoft.com/AssignedAccess/2020/config"
|
||||
xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config"
|
||||
xmlns:v5="http://schemas.microsoft.com/AssignedAccess/2022/config">
|
||||
<Profiles>
|
||||
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
|
||||
<AllAppsList>
|
||||
<AllowedApps>
|
||||
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
|
||||
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
|
||||
<App DesktopAppPath="C:\Windows\system32\cmd.exe" />
|
||||
<App DesktopAppPath="%windir%\System32\WindowsPowerShell\v1.0\Powershell.exe" />
|
||||
<App DesktopAppPath="%windir%\explorer.exe" />
|
||||
<App AppUserModelId="windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel" />
|
||||
<App AppUserModelId="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" />
|
||||
</AllowedApps>
|
||||
</AllAppsList>
|
||||
<rs5:FileExplorerNamespaceRestrictions>
|
||||
<rs5:AllowedNamespace Name="Downloads"/>
|
||||
<v3:AllowRemovableDrives/>
|
||||
</rs5:FileExplorerNamespaceRestrictions>
|
||||
<v5:StartPins>
|
||||
<![CDATA[{
|
||||
"pinnedList":[
|
||||
{"packagedAppId":"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.Windows.Photos_8wekyb3d8bbwe!App"},
|
||||
{"packagedAppId":"Microsoft.BingWeather_8wekyb3d8bbwe!App"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\System Tools\\Command Prompt.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Windows PowerShell\\Windows PowerShell.lnk"},
|
||||
{"desktopAppLink":"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\File Explorer.lnk"},
|
||||
{"packagedAppId": "windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel"},
|
||||
{"desktopAppLink": "%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft Edge.lnk"}
|
||||
]
|
||||
}]]>
|
||||
</v5:StartPins>
|
||||
<Taskbar ShowTaskbar="true"/>
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<Config>
|
||||
<AutoLogonAccount rs5:DisplayName="Library Kiosk"/>
|
||||
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
|
||||
</Config>
|
||||
</Configs>
|
||||
</AssignedAccessConfiguration>
|
||||
```
|
@ -1,36 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ShellLauncherConfiguration
|
||||
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
|
||||
xmlns:rs5="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
|
||||
<Profiles>
|
||||
<DefaultProfile>
|
||||
<Shell Shell="%SystemRoot%\explorer.exe"/>
|
||||
</DefaultProfile>
|
||||
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
|
||||
<Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe --kiosk https://maps.heathrow.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" rs5:AppType="Desktop" rs5: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>
|
||||
</Configs>
|
||||
</ShellLauncherConfiguration>
|
||||
```
|
@ -1,14 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```msgraph-interactive
|
||||
POST https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations
|
||||
Content-Type: application/json
|
||||
|
||||
{ "id": "00-0000-0000-0000-000000000000", "displayName": "_MSLearn_Example_Kiosk - Shell Launcher", "description": "This is a sample policy created from an article on learn.microsoft.com.", "roleScopeTagIds": [ "0" ], "@odata.type": "#microsoft.graph.windows10CustomConfiguration", "omaSettings": [ { "@odata.type": "#microsoft.graph.omaSettingString", "displayName": "ShellLauncher", "description": null, "omaUri": "./Vendor/MSFT/AssignedAccess/ShellLauncher", "secretReferenceValueId": null, "isEncrypted": true, "value": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ShellLauncherConfiguration\nxmlns=\"http://schemas.microsoft.com/ShellLauncher/2018/Configuration\"\nxmlns:rs5=\"http://schemas.microsoft.com/ShellLauncher/2019/Configuration\">\n <Profiles>\n <DefaultProfile>\n <Shell Shell=\"%SystemRoot%\\explorer.exe\"/>\n </DefaultProfile>\n <Profile Id=\"{EDB3036B-780D-487D-A375-69369D8A8F78}\">\n <Shell Shell=\"%ProgramFiles(x86)%\\Microsoft\\Edge\\Application\\msedge.exe --kiosk https://maps.heathrow.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2\" rs5:AppType=\"Desktop\" rs5:AllAppsFullScreen=\"true\">\n <ReturnCodeActions>\n <ReturnCodeAction ReturnCode=\"0\" Action=\"RestartShell\"/>\n <ReturnCodeAction ReturnCode=\"-1\" Action=\"RestartDevice\"/>\n <ReturnCodeAction ReturnCode=\"255\" Action=\"ShutdownDevice\"/>\n </ReturnCodeActions>\n <DefaultAction Action=\"RestartShell\"/>\n </Shell>\n </Profile>\n </Profiles>\n <Configs>\n <Config>\n <AutoLogonAccount/>\n <Profile Id=\"{EDB3036B-780D-487D-A375-69369D8A8F78}\"/>\n </Config>\n </Configs>\n</ShellLauncherConfiguration>" } ], }
|
||||
```
|
@ -1,46 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```PowerShell
|
||||
$shellLauncherConfiguration = @"
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ShellLauncherConfiguration
|
||||
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
|
||||
xmlns:rs5="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
|
||||
<Profiles>
|
||||
<DefaultProfile>
|
||||
<Shell Shell="%SystemRoot%\explorer.exe"/>
|
||||
</DefaultProfile>
|
||||
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
|
||||
<Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe --kiosk https://maps.heathrow.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" rs5:AppType="Desktop" rs5: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>
|
||||
</Configs>
|
||||
</ShellLauncherConfiguration>
|
||||
"@
|
||||
|
||||
$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
|
||||
|
||||
|
||||
```
|
@ -1,36 +0,0 @@
|
||||
---
|
||||
author: paolomatarazzo
|
||||
ms.author: paoloma
|
||||
ms.date: 02/05/2024
|
||||
ms.topic: include
|
||||
ms.prod: windows-client
|
||||
---
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ShellLauncherConfiguration
|
||||
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
|
||||
xmlns:rs5="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
|
||||
<Profiles>
|
||||
<DefaultProfile>
|
||||
<Shell Shell="%SystemRoot%\explorer.exe"/>
|
||||
</DefaultProfile>
|
||||
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
|
||||
<Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe --kiosk https://maps.heathrow.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" rs5:AppType="Desktop" rs5: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>
|
||||
</Configs>
|
||||
</ShellLauncherConfiguration>
|
||||
```
|
@ -1,76 +0,0 @@
|
||||
---
|
||||
title: Configure kiosks and digital signs on Windows 10/11 desktop editions
|
||||
description: In this article, learn about the methods for configuring kiosks and digital signs on Windows 10 or Windows 11 desktop editions.
|
||||
ms.topic: article
|
||||
ms.date: 12/31/2017
|
||||
---
|
||||
|
||||
# Configure kiosks and digital signs on Windows desktop editions
|
||||
|
||||
Organization may want to set up special purpose devices, such as a device in the lobby that customers can use to view product catalogs, or a device displaying visual content as a digital sign. Windows client offers two different locked-down experiences for public or specialized use:
|
||||
|
||||
- Single-app kiosk: runs a single Universal Windows Platform (UWP) application in full screen above the lock screen. People using the kiosk can see only that app. When the kiosk account (a local standard user account) signs in, the kiosk app launches automatically. If the kiosk app is closed, it will automatically restart
|
||||
- Multi-app kiosk: runs one or more applications from the desktop. People using the kiosk see a customized Start menu that shows only the apps that are allowed to execute. With this approach, you can configure a locked-down experience for different account types
|
||||
|
||||
A single-app kiosk is ideal for public use. Using [Shell Launcher](kiosk-shelllauncher.md), you can configure a kiosk device that runs a Windows desktop application as the user interface. The application that you specify replaces the default shell (explorer.exe) that usually runs when a user signs in. This type of single-app kiosk doesn't run above the lock screen.
|
||||
|
||||
A multi-app kiosk is appropriate for devices that are shared by multiple people. When you configure a multi-app kiosk, [specific policies are enforced](kiosk-policies.md) that affects **all** non-administrator users on the device.
|
||||
|
||||
Kiosk configurations are based on **Assigned Access**, a feature in Windows client that allows an administrator to manage the user's experience by limiting the application entry points exposed to the user.
|
||||
|
||||
There are several kiosk configuration methods that you can choose from, depending on your answers to the following questions.
|
||||
|
||||
- **Which type of app will your kiosk run?**
|
||||
Your kiosk can run a Universal Windows Platform (UWP) app or a Windows desktop application. For [digital signage](setup-digital-signage.md), select a digital sign player as your kiosk app. [Check out the guidelines for kiosk apps.](guidelines-for-assigned-access-app.md)
|
||||
- **Which type of kiosk do you need?**
|
||||
If you want your kiosk to run a single app for anyone to see or use, consider a single-app kiosk that runs either a [Universal Windows Platform (UWP) app](#methods-for-a-single-app-kiosk-running-a-uwp-app) or a Windows desktop application. For a kiosk that people can sign in to with their accounts or that runs more than one app, choose a multi-app kiosk
|
||||
- **Which edition of Windows client will the kiosk run?**
|
||||
All of the configuration methods work for Windows client Enterprise and Education; some of the methods work for Windows Pro. Kiosk mode isn't available on Windows Home
|
||||
- **Which type of user account will be the kiosk account?**
|
||||
The kiosk account can be a local standard user account, a local administrator account, a domain account, or a Microsoft Entra account, depending on the method that you use to configure the kiosk. If you want people to sign in and authenticate on the device, you should use a multi-app kiosk configuration. The single-app kiosk configuration doesn't require people to sign in to the device, although they can sign in to the kiosk app if you select an app that has a sign-in method
|
||||
|
||||
>[!IMPORTANT]
|
||||
>Single-app kiosk mode isn't supported over a remote desktop connection. Your kiosk users must sign in on the physical device that is set up as a kiosk.
|
||||
|
||||
[!INCLUDE [assigned-access-kiosk-mode](../../../includes/licensing/assigned-access-kiosk-mode.md)]
|
||||
|
||||
## Methods for a single-app kiosk running a UWP app
|
||||
|
||||
| You can use this method | For this edition | For this kiosk account type |
|
||||
|--|--|--|
|
||||
| [Assigned access in Settings](kiosk-single-app.md) | Pro, Ent, Edu | Local standard user |
|
||||
| [Assigned access cmdlets](kiosk-single-app.md) | Pro, Ent, Edu | Local standard user |
|
||||
| [The kiosk wizard in Windows Configuration Designer](kiosk-single-app.md) | Pro (version 1709), Ent, Edu | Local standard user, Active Directory, Microsoft Entra ID |
|
||||
| [Microsoft Intune or other mobile device management (MDM)](kiosk-single-app.md) | Pro (version 1709), Ent, Edu | Local standard user, Microsoft Entra ID |
|
||||
| [Shell Launcher](kiosk-shelllauncher.md) v2 | Ent, Edu | Local standard user, Active Directory, Microsoft Entra ID |
|
||||
|
||||
## Methods for a single-app kiosk running a Windows desktop application
|
||||
|
||||
| You can use this method | For this edition | For this kiosk account type |
|
||||
|--|--|--|
|
||||
| [The kiosk wizard in Windows Configuration Designer](kiosk-single-app.md) | Ent, Edu | Local standard user, Active Directory, Microsoft Entra ID |
|
||||
| [Microsoft Intune or other mobile device management (MDM)](kiosk-single-app.md) | Pro (version 1709), Ent, Edu | Local standard user, Microsoft Entra ID |
|
||||
| [Shell Launcher](kiosk-shelllauncher.md) v1 and v2 | Ent, Edu | Local standard user, Active Directory, Microsoft Entra ID |
|
||||
|
||||
## Methods for a multi-app kiosk
|
||||
|
||||
| You can use this method | For this edition | For this kiosk account type |
|
||||
|--|--|--|
|
||||
| [XML in a provisioning package](lock-down-windows-10-to-specific-apps.md) | Pro, Ent, Edu | Local standard user, Active Directory, Microsoft Entra ID |
|
||||
| [Microsoft Intune or other MDM](lock-down-windows-10-to-specific-apps.md) | Pro, Ent, Edu | Local standard user, Microsoft Entra ID |
|
||||
| [MDM WMI Bridge Provider](kiosk-mdm-bridge.md) | Pro, Ent, Edu | Local standard user, Active Directory, Microsoft Entra ID |
|
||||
|
||||
## Summary of kiosk configuration methods
|
||||
|
||||
| Method | App type | Account type | Single-app kiosk | Multi-app kiosk |
|
||||
|--|--|--|:-:|:-:|
|
||||
| [Assigned access in Settings](kiosk-single-app.md) | UWP | Local account | ✅ |
|
||||
| [Assigned access cmdlets](kiosk-single-app.md) | UWP | Local account | ✅ |
|
||||
| [The kiosk wizard in Windows Configuration Designer](kiosk-single-app.md) | UWP, Windows desktop app | Local standard user, Active Directory, Microsoft Entra ID | ✅ |
|
||||
| [XML in a provisioning package](lock-down-windows-10-to-specific-apps.md) | UWP, Windows desktop app | Local standard user, Active Directory, Microsoft Entra ID | ✅ | ✅ |
|
||||
| Microsoft Intune or other MDM [for full-screen single-app kiosk](kiosk-single-app.md) or [for multi-app kiosk with desktop](lock-down-windows-10-to-specific-apps.md) | UWP, Windows desktop app | Local standard user, Microsoft Entra ID | ✅ | ✅ |
|
||||
| [Shell Launcher](kiosk-shelllauncher.md) | Windows desktop app | Local standard user, Active Directory, Microsoft Entra ID | ✅ |
|
||||
| [MDM Bridge WMI Provider](kiosk-mdm-bridge.md) | UWP, Windows desktop app | Local standard user, Active Directory, Microsoft Entra ID | | ✅ |
|
||||
|
||||
>[!NOTE]
|
||||
>For devices running Windows client Enterprise and Education, you can also use [Windows Defender Application Control](/windows/security/threat-protection/windows-defender-application-control/windows-defender-application-control) or [AppLocker](lock-down-windows-10-applocker.md) to lock down a device to specific apps.
|
@ -1,108 +0,0 @@
|
||||
---
|
||||
title: Policies enforced on kiosk devices
|
||||
description: Learn about the policies enforced on a device when you configure it as a kiosk.
|
||||
ms.topic: article
|
||||
ms.date: 12/31/2017
|
||||
---
|
||||
|
||||
# Policies enforced on kiosk devices
|
||||
|
||||
It isn't recommended to set policies enforced in assigned access kiosk mode to different values using other channels, as the kiosk mode has been optimized to provide a locked-down experience.
|
||||
|
||||
When the assigned access kiosk configuration is applied on the device, certain policies are enforced system-wide, and will impact other users on the device.
|
||||
|
||||
## Group Policy
|
||||
|
||||
The following local policies affect all **non-administrator** users on the system, regardless whether the user is configured as an assigned access user or not. These users include local users, domain users, and Microsoft Entra users.
|
||||
|
||||
| Setting | Value |
|
||||
|--|--|
|
||||
| Remove access to the context menus for the task bar | Enabled |
|
||||
| Clear history of recently opened documents on exit | Enabled |
|
||||
| Prevent users from customizing their Start Screen | Enabled |
|
||||
| Prevent users from uninstalling applications from Start | Enabled |
|
||||
| Remove Run menu from Start Menu | Enabled |
|
||||
| Disable showing balloon notifications as toast | Enabled |
|
||||
| Do not allow pinning items in Jump Lists | Enabled |
|
||||
| Do not allow pinning programs to the Taskbar | Enabled |
|
||||
| Do not display or track items in Jump Lists from remote locations | Enabled |
|
||||
| Remove Notifications and Action Center | Enabled |
|
||||
| Lock all taskbar settings | Enabled |
|
||||
| Lock the Taskbar | Enabled |
|
||||
| Prevent users from adding or removing toolbars | Enabled |
|
||||
| Prevent users from resizing the taskbar | Enabled |
|
||||
| Remove frequent programs list from the Start Menu | Enabled |
|
||||
| Remove Pinned programs from the taskbar | Enabled |
|
||||
| Remove the Security and Maintenance icon | Enabled |
|
||||
| Turn off all balloon notifications | Enabled |
|
||||
| Turn off feature advertisement balloon notifications | Enabled |
|
||||
| Turn off toast notifications | Enabled |
|
||||
| Remove Task Manager | Enabled |
|
||||
| Remove Change Password option in Security Options UI | Enabled |
|
||||
| Remove Sign Out option in Security Options UI | Enabled |
|
||||
| Remove All Programs list from the Start Menu | Enabled - Remove and disable setting |
|
||||
| Prevent access to drives from My Computer | Enabled - Restrict all drives |
|
||||
|
||||
>[!NOTE]
|
||||
>When **Prevent access to drives from My Computer** is enabled, users can browse the directory structure in File Explorer, but they cannot open folders and access the contents. Also, they cannot use the **Run** dialog box or the **Map Network Drive** dialog box to view the directories on these drives. The icons representing the specified drives still appear in File Explorer, but if users double-click the icons, a message appears explaining that a setting prevents the action. This setting does not prevent users from using programs to access local and network drives. It does not prevent users from using the Disk Management snap-in to view and change drive characteristics.
|
||||
|
||||
## MDM policy
|
||||
|
||||
|
||||
Some of the MDM policies based on the [Policy configuration service provider (CSP)](/windows/client-management/mdm/policy-configuration-service-provider) affect all users on the system.
|
||||
|
||||
| Setting | Value | System-wide |
|
||||
|--|--|--|
|
||||
| [Experience/AllowCortana](/windows/client-management/mdm/policy-csp-experience#experience-allowcortana) | 0 - Not allowed | Yes |
|
||||
| [Start/AllowPinnedFolderDocuments](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderdocuments) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderDownloads](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderdownloads) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderFileExplorer](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderfileexplorer) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderHomeGroup](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderhomegroup) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderMusic](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldermusic) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderNetwork](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldernetwork) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderPersonalFolder](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderpersonalfolder) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderPictures](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfolderpictures) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderSettings](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldersettings) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| [Start/AllowPinnedFolderVideos](/windows/client-management/mdm/policy-csp-start#start-allowpinnedfoldervideos) | 0 - Shortcut is hidden and disables the setting in the Settings app | Yes |
|
||||
| Start/DisableContextMenus | 1 - Context menus are hidden for Start apps | No |
|
||||
| [Start/HidePeopleBar](/windows/client-management/mdm/policy-csp-start#start-hidepeoplebar) | 1 - True (hide) | No |
|
||||
| [Start/HideChangeAccountSettings](/windows/client-management/mdm/policy-csp-start#start-hidechangeaccountsettings) | 1 - True (hide) | Yes |
|
||||
| [WindowsInkWorkspace/AllowWindowsInkWorkspace](/windows/client-management/mdm/policy-csp-windowsinkworkspace#windowsinkworkspace-allowwindowsinkworkspace) | 0 - Access to ink workspace is disabled and the feature is turned off | Yes |
|
||||
| [Start/StartLayout](/windows/client-management/mdm/policy-csp-start#start-startlayout) | Configuration dependent | No |
|
||||
| [WindowsLogon/DontDisplayNetworkSelectionUI](/windows/client-management/mdm/policy-csp-windowslogon#windowslogon-dontdisplaynetworkselectionui) | <Enabled/> | Yes |
|
||||
|
||||
<!--
|
||||
## Start Menu
|
||||
|
||||
Remove access to the context menus for the task bar
|
||||
Clear history of recently opened documents on exit
|
||||
Prevent users from customizing their Start Screen
|
||||
Prevent users from uninstalling applications from Start
|
||||
Remove All Programs list from the Start menu
|
||||
Remove Run menu from Start Menu
|
||||
|
||||
## Desktop
|
||||
|
||||
Hide and disable all items on the desktop
|
||||
|
||||
## Task bar
|
||||
|
||||
Disable showing balloon notificationss as toast
|
||||
Do not allow pinning items in Jump Lists
|
||||
Do not allow pinning programs to the Taskbar
|
||||
Do not display or track items in Jump Lists from remote locations
|
||||
Remove Notification Center
|
||||
Remove Control Center
|
||||
Lock all taskbar settings
|
||||
Lock the Taskbar
|
||||
Prevent users from adding or removing toolbars
|
||||
Prevent users from moving taskbar to another screen dock location
|
||||
Prevent users from rearranging toolbars
|
||||
Prevent users from resizing the taskbar
|
||||
Remove frequent programs list from the Start Menu
|
||||
Remove the Security and Maintenance icon
|
||||
Turn off all balloon notifications
|
||||
Turn off feature advertisement balloon notifications
|
||||
Hide the Task View button
|
||||
|
||||
-->
|
@ -1,289 +0,0 @@
|
||||
---
|
||||
title: Prepare a device for kiosk configuration on Windows 10/11 | Microsoft Docs
|
||||
description: Learn how to prepare a device for kiosk configuration. Also, learn about the recommended kiosk configuration changes.
|
||||
ms.topic: article
|
||||
ms.date: 12/31/2017
|
||||
---
|
||||
|
||||
# Prepare a device for kiosk configuration
|
||||
|
||||
## Before you begin
|
||||
|
||||
- [User account control (UAC)](/windows/security/identity-protection/user-account-control/user-account-control-overview) must be turned on to enable kiosk mode.
|
||||
- Kiosk mode isn't supported over a remote desktop connection. Your kiosk users must sign in on the physical device that's set up as a kiosk.
|
||||
- For kiosks in public-facing environments with auto sign-in enabled, you should use a user account with the least privileges, such as a local standard user account.
|
||||
|
||||
Assigned access can be configured using Windows Management Instrumentation (WMI) or configuration service provider (CSP). Assigned access runs an application using a domain user or service account, not a local account. Using a domain user or service accounts has risks, and might allow an attacker to gain access to domain resources that are accessible to any domain account. When using domain accounts with assigned access, proceed with caution. Consider the domain resources potentially exposed by using a domain account.
|
||||
|
||||
- MDM providers, such as [Microsoft Intune](/mem/intune/fundamentals/what-is-intune), use the configuration service providers (CSP) exposed by the Windows OS to manage settings on devices. In this article, we mention these services. If you're not managing your devices using an MDM provider, the following resources may help you get started:
|
||||
|
||||
- [Endpoint Management at Microsoft](/mem/endpoint-manager-getting-started)
|
||||
- [What is Microsoft Intune](/mem/intune/fundamentals/what-is-intune) and [Microsoft Intune planning guide](/mem/intune/fundamentals/intune-planning-guide)
|
||||
- [What is Configuration Manager?](/mem/configmgr/core/understand/introduction)
|
||||
|
||||
## Configuration recommendations
|
||||
|
||||
For a more secure kiosk experience, we recommend that you make the following configuration changes to the device before you configure it as a kiosk:
|
||||
|
||||
- **Hide update notifications**. Starting with Windows 10 version 1809, you can hide notifications from showing on the devices. To enable this feature, you have the following options:
|
||||
|
||||
- **Use Group policy**: `Computer Configuration\Administrative Templates\Windows Components\Windows Update\Display options for update notifications`
|
||||
- **Use an MDM provider**: This feature uses the [Update/UpdateNotificationLevel CSP](/windows/client-management/mdm/policy-csp-update#update-updatenotificationlevel). In Intune, you can use the [Windows update settings](/mem/intune/protect/windows-update-settings) to manage this feature.
|
||||
|
||||
- **Use the registry**:
|
||||
|
||||
1. Open Registry Editor (regedit).
|
||||
1. Go to `HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate`.
|
||||
1. Create a **New** > **DWORD (32-bit) Value**. Enter `SetUpdateNotificationLevel`, and set its value to `1`.
|
||||
1. Create a **New** > **DWORD (32-bit) Value**. Enter `UpdateNotificationLevel`. For value, you can enter:
|
||||
- `1`: Hides all notifications except restart warnings.
|
||||
- `2`: Hides all notifications, including restart warnings.
|
||||
|
||||
- **Enable and schedule automatic updates**. To enable this feature, you have the following options:
|
||||
|
||||
- **Use Group policy**: `Computer Configuration\Administrative Templates\Windows Components\Windows Update\Configure Automatic Updates`. Select `4 - Auto download and schedule the install`.
|
||||
- **Use an MDM provider**: This feature uses the [Update/AllowAutoUpdate CSP](/windows/client-management/mdm/policy-csp-update#update-allowautoupdate). Select `3 - Auto install and restart at a specified time`. In Intune, you can use the [Windows update settings](/mem/intune/protect/windows-update-settings) to manage this feature.
|
||||
|
||||
You can also schedule automatic updates, including **Schedule Install Day**, **Schedule Install Time**, and **Schedule Install Week**. Installations can take between 30 minutes and 2 hours, depending on the device. Schedule updates to occur when a block of 3-4 hours is available.
|
||||
|
||||
- **Enable automatic restart at the scheduled time**. To enable this feature, you have the following options:
|
||||
|
||||
- **Use Group policy**: `Computer Configuration\Administrative Templates\Windows Components\Windows Update\Always automatically restart at the scheduled time`. Select `4 - Auto download and schedule the install`.
|
||||
|
||||
- **Use an MDM provider**: This feature uses the [Update/ActiveHoursStart](/windows/client-management/mdm/policy-csp-update#update-activehoursstart) and [Update/ActiveHoursEnd](/windows/client-management/mdm/policy-csp-update#update-activehoursend) CSPs. In Intune, you can use the [Windows update settings](/mem/intune/protect/windows-update-settings) to manage this feature.
|
||||
|
||||
- **Replace "blue screen" with blank screen for OS errors**. To enable this feature, use the Registry Editor:
|
||||
|
||||
1. Open Registry Editor (regedit).
|
||||
1. Go to `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl`.
|
||||
1. Create a **New** > **DWORD (32-bit) Value**. Enter `DisplayDisabled`, and set its value to `1`.
|
||||
|
||||
- **Put device in "Tablet mode"**. If you want users to use the touch screen, without using a keyboard or mouse, then turn on tablet mode using the Settings app. If users won't interact with the kiosk, such as for a digital sign, then don't turn on this setting.
|
||||
|
||||
Applies to Windows 10 only. Currently, Tablet mode isn't supported on Windows 11.
|
||||
|
||||
Your options:
|
||||
|
||||
- Use the **Settings** app:
|
||||
1. Open the **Settings** app.
|
||||
1. Go to **System** > **Tablet mode**.
|
||||
1. Configure the settings you want.
|
||||
|
||||
- Use the **Action Center**:
|
||||
1. On your device, swipe in from the left.
|
||||
1. Select **Tablet mode**.
|
||||
|
||||
- **Hide "Ease of access" feature on the sign-in screen**: To enable this feature, you have the following options:
|
||||
|
||||
- **Use an MDM provider**: In Intune, you can use the [Control Panel and Settings](/mem/intune/configuration/device-restrictions-windows-10#control-panel-and-settings) to manage this feature.
|
||||
- **Use the registry**: For more information, see [how to disable the Ease of Access button in the registry](/windows-hardware/customize/enterprise/complementary-features-to-custom-logon#welcome-screen).
|
||||
|
||||
- **Disable the hardware power button**: To enable this feature, you have the following options:
|
||||
|
||||
- **Use the Settings app**:
|
||||
1. Open the **Settings** app.
|
||||
1. Go to **System** > **Power & Sleep** > **Additional power settings** > **Choose what the power button does**.
|
||||
1. Select **Do nothing**.
|
||||
1. **Save changes**.
|
||||
|
||||
- **Use Group Policy**: Your options:
|
||||
|
||||
- `Computer Configuration\Administrative Templates\System\Power Management\Button Settings`: Set `Select Power Button Action on Battery` and `Select Power Button Action on Plugged In` to **Take no action**.
|
||||
- `User Configuration\Administrative Templates\Start Menu and Taskbar\Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands`: This policy hides the buttons, but doesn't disable them.
|
||||
- `Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Shut down the system`: Remove the users or groups from this policy.
|
||||
|
||||
To prevent this policy from affecting a member of the Administrators group, be sure to keep the Administrators group.
|
||||
|
||||
- **Use an MDM provider**: In Intune, you have some options:
|
||||
|
||||
- [Settings Catalog](/mem/intune/configuration/settings-catalog): This option lists all the settings you can configure, including the administrative templates used in on-premises Group Policy. Configure the following settings:
|
||||
|
||||
- `Power\Select Power Button Action on Battery`: Set to **Take no action**.
|
||||
- `Power\Select Power Button Action on Plugged In`: Set to **Take no action**.
|
||||
- `Start\Hide Power Button`: Set to **Enabled**. This policy hides the button, but doesn't disable it.
|
||||
|
||||
- [Administrative templates](/mem/intune/configuration/administrative-templates-windows): These templates are the administrative templates used in on-premises Group Policy. Configure the following setting:
|
||||
|
||||
- `\Start menu and Taskbar\Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands`: This policy hides the buttons, but doesn't disable them.
|
||||
|
||||
When looking at settings, check the supported OS for each setting to make sure it applies.
|
||||
|
||||
- [Start settings in a device configuration profile](/mem/intune/configuration/device-restrictions-windows-10#start): This option shows this setting, and all the Start menu settings you can manage.
|
||||
|
||||
- **Remove the power button from the sign-in screen**. To enable this feature, you have the following options:
|
||||
|
||||
- **Use Group Policy**: `Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Shutdown: Allow system to be shut down without having to log on`. Select **Disabled**.
|
||||
|
||||
- **Use MDM**: In Intune, you have the following option:
|
||||
|
||||
- [Settings Catalog](/mem/intune/configuration/settings-catalog): This option lists all the settings you can configure, including the administrative templates used in on-premises Group Policy. Configure the following setting:
|
||||
|
||||
- `Local Policies Security Options\Shutdown Allow System To Be Shut Down Without Having To Log On`: Set to **Disabled**.
|
||||
|
||||
- **Disable the camera**: To enable this feature, you have the following options:
|
||||
|
||||
- **Use the Settings app**:
|
||||
|
||||
1. Open the **Settings** app.
|
||||
1. Go to **Privacy** > **Camera**.
|
||||
1. Select **Allow apps use my camera** > **Off**.
|
||||
|
||||
- **Use Group Policy**: `Computer Configuration\Administrative Templates\Windows Components\Camera: Allow use of camera`: Select **Disabled**.
|
||||
|
||||
- **Use an MDM provider**: This feature uses the [Policy CSP - Camera](/windows/client-management/mdm/policy-csp-camera). In Intune, you have the following options:
|
||||
|
||||
- [General settings in a device configuration profile](/mem/intune/configuration/device-restrictions-windows-10#general): This option shows this setting, and more settings you can manage.
|
||||
- [Settings Catalog](/mem/intune/configuration/settings-catalog): This option lists all the settings you can configure, including the administrative templates used in on-premises Group Policy. Configure the following setting:
|
||||
|
||||
- `Camera\Allow camera`: Set to **Not allowed**.
|
||||
|
||||
- **Turn off app notifications on the lock screen**: To enable this feature, you have the following options:
|
||||
|
||||
- **Use the Settings app**:
|
||||
|
||||
1. Open the **Settings** app.
|
||||
1. Go to **System** > **Notifications & actions**.
|
||||
1. In **Show notifications on the lock screen**, select **Off**.
|
||||
|
||||
- **Use Group policy**:
|
||||
- `Computer Configuration\Administrative Templates\System\Logon\Turn off app notifications on the lock screen`: Select **Enabled**.
|
||||
- `User Configuration\Administrative Templates\Start Menu and Taskbar\Notifications\Turn off toast notifications on the lock screen`: Select **Enabled**.
|
||||
|
||||
- **Use an MDM provider**: This feature uses the [AboveLock/AllowToasts CSP](/windows/client-management/mdm/policy-csp-abovelock#abovelock-allowtoasts). In Intune, you have the following options:
|
||||
|
||||
- [Locked screen experience device configuration profile](/mem/intune/configuration/device-restrictions-windows-10#locked-screen-experience): See this setting, and more settings you can manage.
|
||||
|
||||
- [Administrative templates](/mem/intune/configuration/administrative-templates-windows): These templates are the administrative templates used in on-premises Group Policy. Configure the following settings:
|
||||
|
||||
- `\Start Menu and Taskbar\Notifications\Turn off toast notifications on the lock screen`: Select **Enabled**.
|
||||
- `\System\Logon\Turn off app notifications on the lock screen`: Select **Enabled**.
|
||||
|
||||
When looking at settings, check the supported OS for each setting to make sure it applies.
|
||||
|
||||
- [Settings Catalog](/mem/intune/configuration/settings-catalog): This option lists all the settings you can configure, including the administrative templates used in on-premises Group Policy. Configure the following settings:
|
||||
|
||||
- `\Start Menu and Taskbar\Notifications\Turn off toast notifications on the lock screen`: Select **Enabled**.
|
||||
- `\System\Logon\Turn off app notifications on the lock screen`: Select **Enabled**.
|
||||
|
||||
- **Disable removable media**: To enable this feature, you have the following options:
|
||||
- **Use Group policy**: `Computer Configuration\Administrative Templates\System\Device Installation\Device Installation Restrictions`. Review the available settings that apply to your situation.
|
||||
To prevent this policy from affecting a member of the Administrators group, select `Allow administrators to override Device Installation Restriction policies` > **Enabled**.
|
||||
- **Use an MDM provider**: In Intune, you have the following options:
|
||||
- [General settings in a device configuration profile](/mem/intune/configuration/device-restrictions-windows-10#general): See the **Removable storage** setting, and more settings you can manage.
|
||||
- [Administrative templates](/mem/intune/configuration/administrative-templates-windows): These templates are the administrative templates used in on-premises Group Policy. Configure the following settings:
|
||||
- `\System\Device Installation`: There are several policies you can manage, including restrictions in `\System\Device Installation\Device Installation Restrictions`.
|
||||
To prevent this policy from affecting a member of the Administrators group, select `Allow administrators to override Device Installation Restriction policies` > **Enabled**.
|
||||
When looking at settings, check the supported OS for each setting to make sure it applies.
|
||||
- [Settings Catalog](/mem/intune/configuration/settings-catalog): This option lists all the settings you can configure, including the administrative templates used in on-premises Group Policy. Configure the following settings:
|
||||
- `\Administrative Templates\System\Device Installation`: There are several policies you can manage, including restrictions in `\System\Device Installation\Device Installation Restrictions`.
|
||||
To prevent this policy from affecting a member of the Administrators group, select `Allow administrators to override Device Installation Restriction policies` > **Enabled**.
|
||||
|
||||
## Enable logging
|
||||
|
||||
Logs can help you [troubleshoot issues](/troubleshoot/windows-client/shell-experience/kiosk-mode-issues-troubleshooting) kiosk issues. Logs about configuration and runtime issues can be obtained by enabling the **Applications and Services Logs\Microsoft\Windows\AssignedAccess\Operational** channel, which is disabled by default.
|
||||
|
||||
:::image type="content" source="images/enable-assigned-access-log.png" alt-text="On Windows client, open Event Viewer, right-click Operational, select enable log to turn on logging to help troubleshoot.":::
|
||||
|
||||
## Automatic logon
|
||||
|
||||
You may also want to set up **automatic logon** for your kiosk device. When your kiosk device restarts, from an update or power outage, you can sign in the assigned access account manually. Or, you can configure the device to sign in to the assigned access account automatically. Make sure that Group Policy settings applied to the device don't prevent automatic sign in.
|
||||
|
||||
> [!NOTE]
|
||||
> If you are using a Windows client device restriction CSP to set "Preferred Microsoft Entra tenant domain", this will break the "User logon type" auto-login feature of the Kiosk profile.
|
||||
|
||||
> [!TIP]
|
||||
> If you use the [kiosk wizard in Windows Configuration Designer](kiosk-single-app.md) or [XML in a provisioning package](lock-down-windows-10-to-specific-apps.md) to configure your kiosk, you can set an account to sign in automatically in the wizard or XML.
|
||||
|
||||
How to edit the registry to have an account sign in automatically:
|
||||
|
||||
1. Open Registry Editor (regedit.exe).
|
||||
|
||||
> [!NOTE]
|
||||
> If you are not familiar with Registry Editor, [learn how to modify the Windows registry](/troubleshoot/windows-server/performance/windows-registry-advanced-users).
|
||||
|
||||
1. Go to
|
||||
|
||||
**HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon**
|
||||
|
||||
1. Set the values for the following keys.
|
||||
|
||||
- *AutoAdminLogon*: set value as **1**.
|
||||
- *DefaultUserName*: set value as the account that you want signed in.
|
||||
- *DefaultPassword*: set value as the password for the account.
|
||||
|
||||
> [!NOTE]
|
||||
> If *DefaultUserName* and *DefaultPassword* aren't there, add them as **New** > **String Value**.
|
||||
|
||||
- *DefaultDomainName*: set value for domain, only for domain accounts. For local accounts, don't add this key.
|
||||
|
||||
1. Close Registry Editor. The next time the computer restarts, the account will sign in automatically.
|
||||
|
||||
> [!TIP]
|
||||
> You can also configure automatic sign-in [using the Autologon tool from Sysinternals](/sysinternals/downloads/autologon).
|
||||
|
||||
> [!NOTE]
|
||||
> If you are also using [Custom Logon](/windows-hardware/customize/enterprise/custom-logon) with **HideAutoLogonUI** enabled, you might experience a black screen after a password expires. We recommend that you consider [setting the password to never expire](/windows-hardware/customize/enterprise/troubleshooting-custom-logon#the-device-displays-a-black-screen-when-a-password-expiration-screen-is-displayed).
|
||||
|
||||
## Interactions and interoperability
|
||||
|
||||
The following table describes some features that have interoperability issues we recommend that you consider when running assigned access.
|
||||
|
||||
- **Accessibility**: Assigned access doesn't change Ease of Access settings. We recommend that you use [Keyboard Filter](/windows-hardware/customize/enterprise/keyboardfilter) to block the following key combinations that bring up accessibility features:
|
||||
|
||||
| Key combination | Blocked behavior |
|
||||
| --- | --- |
|
||||
| Left Alt + Left Shift + Print Screen | Open High Contrast dialog box. |
|
||||
| Left Alt + Left Shift + Num Lock | Open Mouse Keys dialog box. |
|
||||
| Windows logo key + U | Open Ease of Access Center. |
|
||||
|
||||
- **Assigned access Windows PowerShell cmdlets**: In addition to using the Windows UI, you can use the Windows PowerShell cmdlets to set or clear assigned access. For more information, see [Assigned access Windows PowerShell reference](/powershell/module/assignedaccess/)
|
||||
|
||||
- **Key sequences blocked by assigned access**: When in assigned access, some key combinations are blocked for assigned access users.
|
||||
|
||||
<kbd>Alt</kbd> + <kbd>F4</kbd>, <kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>Tab</kbd>, <kbd>Alt</kbd> + <kbd>Tab</kbd> aren't blocked by Assigned Access, it's recommended you use [Keyboard Filter](/windows-hardware/customize/enterprise/keyboardfilter) to block these key combinations.
|
||||
|
||||
Ctrl + Alt + Delete is the key to break out of Assigned Access. If needed, you can use Keyboard Filter to configure a different key combination to break out of assigned access by setting BreakoutKeyScanCode as described in [WEKF_Settings](/windows-hardware/customize/enterprise/wekf-settings).
|
||||
|
||||
| Key combination | Blocked behavior for assigned access users |
|
||||
| --- | --- |
|
||||
| <kbd>Alt</kbd> + <kbd>Esc</kbd> | Cycle through items in the reverse order from which they were opened. |
|
||||
| <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Esc</kbd> | Cycle through items in the reverse order from which they were opened. |
|
||||
| <kbd>Ctrl</kbd> + <kbd>Esc</kbd> | Open the Start screen. |
|
||||
| <kbd>Ctrl</kbd> + <kbd>F4</kbd> | Close the window. |
|
||||
| <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Esc</kbd> | Open Task Manager. |
|
||||
| <kbd>Ctrl</kbd> + <kbd>Tab</kbd> | Switch windows within the application currently open. |
|
||||
| LaunchApp1 | Open the app that is assigned to this key. |
|
||||
| LaunchApp2 | Open the app that is assigned to this key. On many Microsoft keyboards, the app is Calculator. |
|
||||
| LaunchMail | Open the default mail client. |
|
||||
| Windows logo key | Open the Start screen. |
|
||||
|
||||
Keyboard Filter settings apply to other standard accounts.
|
||||
|
||||
- **Key sequences blocked by [Keyboard Filter](/windows-hardware/customize/enterprise/keyboardfilter)**: If Keyboard Filter is turned ON, then some key combinations are blocked automatically without you having to explicitly block them. For more information, see the [Keyboard Filter](/windows-hardware/customize/enterprise/keyboardfilter).
|
||||
[Keyboard Filter](/windows-hardware/customize/enterprise/keyboardfilter) is only available on Windows client Enterprise or Education
|
||||
- **Power button**: Customizations for the Power button complement assigned access, letting you implement features such as removing the power button from the Welcome screen. Removing the power button ensures the user can't turn off the device when it's in assigned access
|
||||
For more information on removing the power button or disabling the physical power button, see [Custom Logon][WHW-1]
|
||||
- **Unified Write Filter (UWF)**: UWFsettings apply to all users, including users with assigned access
|
||||
For more information, see [Unified Write Filter][WHW-2]
|
||||
- **WEDL_AssignedAccess class**: You can use this class to configure and manage basic lockdown features for assigned access. It's recommended to you use the Windows PowerShell cmdlets instead.
|
||||
If you need to use assigned access API, see [WEDL_AssignedAccess][WHW-3]
|
||||
- **Welcome Screen**: Customizations for the Welcome screen let you personalize not only how the Welcome screen looks, but for how it functions. You can disable the power or language button, or remove all user interface elements. There are many options to make the Welcome screen your own
|
||||
|
||||
For more information, see [Custom Logon][WHW-1].
|
||||
|
||||
## Testing your kiosk in a virtual machine (VM)
|
||||
|
||||
Customers sometimes use virtual machines (VMs) to test configurations before deploying those configurations to physical devices. If you use a VM to test your single-app kiosk configuration, you need to know how to connect to the VM properly.
|
||||
|
||||
A single-app kiosk configuration runs an app above the lock screen. It doesn't work when it's accessed remotely, which includes *enhanced* sessions in Hyper-V.
|
||||
|
||||
> [!NOTE]
|
||||
> When you connect to a VM configured as a single-app kiosk, you must use a *basic session* rather than an *enhanced session*. For more information, see [Check session type][VIR-1].
|
||||
|
||||
<!--links-->
|
||||
|
||||
[VIR-1]: /virtualization/hyper-v-on-windows/user-guide/enhanced-session-mode#check-session-type
|
||||
[WHW-1]: /windows-hardware/customize/enterprise/custom-logon
|
||||
[WHW-2]: /windows-hardware/customize/enterprise/unified-write-filter
|
||||
[WHW-3]: /windows-hardware/customize/enterprise/wedl-assignedaccess
|
||||
|
@ -1,272 +0,0 @@
|
||||
---
|
||||
title: Use Shell Launcher to create a kiosk experience
|
||||
description: Learn how to configure Shell Launcher to change the default Windows shell when a user signs in to a device.
|
||||
ms.topic: how-to
|
||||
ms.date: 12/31/2017
|
||||
---
|
||||
|
||||
# Use Shell Launcher to create a Windows client kiosk
|
||||
|
||||
Shell Launcher is an Assigned Access configuration that replaces the default Windows Explorer shell (`explorer.exe`) with the `CustomShellHost.exe` application. CustomShellHost can launch a Windows desktop application or a UWP app.
|
||||
|
||||
>[!NOTE]
|
||||
>Shell Launcher controls which application the user sees as the shell after sign-in. It doesn't prevent the user from accessing other desktop applications and system components.
|
||||
>
|
||||
>Methods of controlling access to other desktop applications and system components can be used in addition to using the Shell Launcher. These methods include, but are not limited to:
|
||||
>- [Group Policy](https://www.microsoft.com/download/details.aspx?id=25250) - example: Prevent access to registry editing tools
|
||||
>- [AppLocker](/windows/security/threat-protection/windows-defender-application-control/applocker/applocker-overview) - Application control policies
|
||||
>- [Mobile Device Management](/windows/client-management/mdm) - Enterprise management of device security policies
|
||||
|
||||
You can configure Shell Launcher via [PowerShell](#configure-a-custom-shell-using-powershell) and [CSP](#configure-a-custom-shell-in-mdm).
|
||||
|
||||
Shell Launcher offers the following features:
|
||||
|
||||
- You can use a custom Windows desktop application that can then launch UWP apps, such as *Settings* or *Touch Keyboard*
|
||||
- From a custom UWP shell, you can launch secondary views displayed on multiple monitors
|
||||
- The custom shell app runs in full screen, and can run other apps in full screen on user's demand
|
||||
|
||||
For sample XML configurations for the different app combinations, see [Samples for Shell Launcher v2](https://github.com/Microsoft/Windows-iotcore-samples/tree/develop/Samples/ShellLauncherV2).
|
||||
|
||||
## Requirements
|
||||
|
||||
>[!WARNING]
|
||||
>
|
||||
>- Windows 10 doesn't support setting a custom shell prior to OOBE. If you do, you won't be able to 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 cannot 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. Because Shell Launcher is not aware of the newly created wordpad.exe process, Shell Launcher will take action based on the exit code of **Write.exe**, such as restarting the custom shell.
|
||||
|
||||
- A domain, Microsoft Entra ID, or local user account.
|
||||
- A Windows application that is installed for that account. The app can be your own company application or a common app like Internet Explorer.
|
||||
|
||||
[See the technical reference for the shell launcher component.](/windows-hardware/customize/enterprise/shell-launcher)
|
||||
|
||||
## Enable Shell Launcher feature
|
||||
|
||||
To set a custom shell, you first turn on the Shell Launcher feature, and then you can set your custom shell as the default using PowerShell or MDM.
|
||||
|
||||
**To turn on Shell Launcher in Windows features**
|
||||
|
||||
1. Go to Control Panel > **Programs and features** > **Turn Windows features on or off**
|
||||
1. Expand **Device Lockdown**
|
||||
1. Select **Shell Launcher** and **OK**
|
||||
|
||||
Alternatively, you can turn on Shell Launcher using Windows Configuration Designer in a provisioning package, using `SMISettings > ShellLauncher`, or you can use the Deployment Image Servicing and Management (DISM.exe) tool.
|
||||
|
||||
**To turn on Shell Launcher using DISM**
|
||||
|
||||
1. Open a command prompt as an administrator.
|
||||
1. Enter the following command.
|
||||
|
||||
```
|
||||
Dism /online /Enable-Feature /all /FeatureName:Client-EmbeddedShellLauncher
|
||||
```
|
||||
|
||||
## Configure a custom shell in MDM
|
||||
|
||||
You can use XML and a [custom OMA-URI setting](#custom-oma-uri-setting) to configure Shell Launcher in MDM.
|
||||
|
||||
### XML for Shell Launcher configuration
|
||||
|
||||
The following XML sample works for **Shell Launcher v1**:
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ShellLauncherConfiguration xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration">
|
||||
<Profiles>
|
||||
<Profile ID="{24A7309204F3F-44CC-8375-53F13FE213F7}">
|
||||
<Shell Shell="%ProgramFiles%\Internet Explorer\iexplore.exe -k www.bing.com" />
|
||||
</Profile>
|
||||
</Profiles>
|
||||
<Configs>
|
||||
<!--local account-->
|
||||
<Account Name="ShellLauncherUser"/>
|
||||
<Profile ID="{24A7309204F3F-44CC-8375-53F13FE213F7}"/>
|
||||
</Configs>
|
||||
</ShellLauncherConfiguration>
|
||||
```
|
||||
|
||||
For **Shell Launcher v2**, you can use UWP app type for `Shell` by specifying the v2 namespace, and use `rs5:AppType` to specify the type, as shown in the following example. If `rs5:AppType` isn't specified, it implies the shell is Win32 app.
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ShellLauncherConfiguration
|
||||
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
|
||||
xmlns:rs5="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
|
||||
<Profiles>
|
||||
<DefaultProfile>
|
||||
<Shell Shell="Microsoft.BingWeather_8wekyb3d8bbwe!App" rs5:AppType="UWP" rs5:AllAppsFullScreen="true">
|
||||
<DefaultAction Action="RestartShell"/>
|
||||
</Shell>
|
||||
</DefaultProfile>
|
||||
</Profiles>
|
||||
<Configs/>
|
||||
</ShellLauncherConfiguration>
|
||||
```
|
||||
|
||||
>[!TIP]
|
||||
>In the XML for Shell Launcher v2, note the **AllAppsFullScreen** attribute. When set to **True**, Shell Launcher will run every app in full screen, or maximized for desktop apps. When this attribute is set to **False** or not set, only the custom shell app runs in full screen; other apps launched by the user will run in windowed mode.
|
||||
|
||||
[Get XML examples for different Shell Launcher v2 configurations.](https://github.com/Microsoft/Windows-iotcore-samples/tree/develop/Samples/ShellLauncherV2)
|
||||
|
||||
### Custom OMA-URI setting
|
||||
|
||||
In your MDM service, you can create a [custom OMA-URI setting](/intune/custom-settings-windows-10) to configure Shell Launcher v1 or v1. (The [XML](#xml-for-shell-launcher-configuration) that you use for your setting determines whether you apply Shell Launcher v1 or v2.)
|
||||
|
||||
The OMA-URI path is `./Device/Vendor/MSFT/AssignedAccess/ShellLauncher`.
|
||||
|
||||
For the value, you can select data type `String` and paste the desired configuration file content into the value box. If you wish to upload the xml instead of pasting the content, choose data type `String (XML file)`.
|
||||
|
||||

|
||||
|
||||
After you configure the profile containing the custom Shell Launcher setting, select **All Devices** or selected groups of devices to apply the profile to. Don't assign the profile to users or user groups.
|
||||
|
||||
## Configure a custom shell using PowerShell
|
||||
|
||||
For scripts for Shell Launcher v2, see [Shell Launcher v2 Bridge WMI sample scripts](https://github.com/Microsoft/Windows-iotcore-samples/blob/develop/Samples/ShellLauncherV2/SampleBridgeWmiScripts/README.md).
|
||||
|
||||
For Shell Launcher v1, modify the following PowerShell script as appropriate. The comments in the sample script explain the purpose of each section and tell you where you'll want to change the script for your purposes. Save your script with the extension.ps1, open Windows PowerShell as administrator, and run the script on the kiosk device.
|
||||
|
||||
```powershell
|
||||
# Check if shell launcher license is enabled
|
||||
function Check-ShellLauncherLicenseEnabled
|
||||
{
|
||||
[string]$source = @"
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
static class CheckShellLauncherLicense
|
||||
{
|
||||
const int S_OK = 0;
|
||||
public static bool IsShellLauncherLicenseEnabled()
|
||||
{
|
||||
int enabled = 0;
|
||||
if (NativeMethods.SLGetWindowsInformationDWORD("EmbeddedFeature-ShellLauncher-Enabled", out enabled) != S_OK) {
|
||||
enabled = 0;
|
||||
}
|
||||
return (enabled != 0);
|
||||
}
|
||||
static class NativeMethods
|
||||
{
|
||||
[DllImport("Slc.dll")]
|
||||
internal static extern int SLGetWindowsInformationDWORD([MarshalAs(UnmanagedType.LPWStr)]string valueName, out int value);
|
||||
}
|
||||
}
|
||||
"@
|
||||
$type = Add-Type -TypeDefinition $source -PassThru
|
||||
return $type[0]::IsShellLauncherLicenseEnabled()
|
||||
}
|
||||
|
||||
[bool]$result = $false
|
||||
|
||||
$result = Check-ShellLauncherLicenseEnabled
|
||||
"`nShell Launcher license enabled is set to " + $result
|
||||
if (-not($result))
|
||||
{
|
||||
"`nThis device doesn't have required license to use Shell Launcher"
|
||||
exit
|
||||
}
|
||||
|
||||
$COMPUTER = "localhost"
|
||||
$NAMESPACE = "root\standardcimv2\embedded"
|
||||
|
||||
# Create a handle to the class instance so we can call the static methods.
|
||||
try {
|
||||
$ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting"
|
||||
} catch [Exception] {
|
||||
write-host $_.Exception.Message;
|
||||
|
||||
write-host "Make sure Shell Launcher feature is enabled"
|
||||
exit
|
||||
}
|
||||
|
||||
# This well-known security identifier (SID) corresponds to the BUILTIN\Administrators group.
|
||||
|
||||
$Admins_SID = "S-1-5-32-544"
|
||||
|
||||
# Create a function to retrieve the SID for a user account on a machine.
|
||||
|
||||
function Get-UsernameSID($AccountName) {
|
||||
|
||||
$NTUserObject = New-Object System.Security.Principal.NTAccount($AccountName)
|
||||
$NTUserSID = $NTUserObject.Translate([System.Security.Principal.SecurityIdentifier])
|
||||
|
||||
return $NTUserSID.Value
|
||||
|
||||
}
|
||||
|
||||
# Get the SID for a user account named "Cashier". Rename "Cashier" to an existing account on your system to test this script.
|
||||
|
||||
$Cashier_SID = Get-UsernameSID("Cashier")
|
||||
|
||||
# Define actions to take when the shell program exits.
|
||||
|
||||
$restart_shell = 0
|
||||
$restart_device = 1
|
||||
$shutdown_device = 2
|
||||
|
||||
# Examples. You can change these examples to use the program that you want to use as the shell.
|
||||
# This example sets the command prompt as the default shell, and restarts the device if the command prompt is closed.
|
||||
|
||||
$ShellLauncherClass.SetDefaultShell("cmd.exe", $restart_device)
|
||||
|
||||
# Display the default shell to verify that it was added correctly.
|
||||
|
||||
$DefaultShellObject = $ShellLauncherClass.GetDefaultShell()
|
||||
|
||||
"`nDefault Shell is set to " + $DefaultShellObject.Shell + " and the default action is set to " + $DefaultShellObject.defaultaction
|
||||
|
||||
# Set Internet Explorer as the shell for "Cashier", and restart the machine if Internet Explorer is closed.
|
||||
|
||||
$ShellLauncherClass.SetCustomShell($Cashier_SID, "c:\program files\internet explorer\iexplore.exe www.microsoft.com", ($null), ($null), $restart_shell)
|
||||
|
||||
# Set Explorer as the shell for administrators.
|
||||
|
||||
$ShellLauncherClass.SetCustomShell($Admins_SID, "explorer.exe")
|
||||
|
||||
# View all the custom shells defined.
|
||||
|
||||
"`nCurrent settings for custom shells:"
|
||||
Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting | Select Sid, Shell, DefaultAction
|
||||
|
||||
# Enable Shell Launcher
|
||||
|
||||
$ShellLauncherClass.SetEnabled($TRUE)
|
||||
$IsShellLauncherEnabled = $ShellLauncherClass.IsEnabled()
|
||||
"`nEnabled is set to " + $IsShellLauncherEnabled.Enabled
|
||||
|
||||
# Remove the new custom shells.
|
||||
|
||||
$ShellLauncherClass.RemoveCustomShell($Admins_SID)
|
||||
$ShellLauncherClass.RemoveCustomShell($Cashier_SID)
|
||||
|
||||
# Disable Shell Launcher
|
||||
|
||||
$ShellLauncherClass.SetEnabled($FALSE)
|
||||
$IsShellLauncherEnabled = $ShellLauncherClass.IsEnabled()
|
||||
"`nEnabled is set to " + $IsShellLauncherEnabled.Enabled
|
||||
```
|
||||
|
||||
## default action, custom action, exit code
|
||||
|
||||
Shell launcher defines four actions to handle app exits, you can customize shell launcher and use these actions based on different exit code.
|
||||
|
||||
| Value | Description |
|
||||
|--|--|
|
||||
| 0 | Restart the shell |
|
||||
| 1 | Restart the device |
|
||||
| 2 | Shut down the device |
|
||||
| 3 | Do nothing |
|
||||
|
||||
These actions can be used as default action, or can be mapped to a specific exit code. Refer to [Shell Launcher](/windows-hardware/customize/enterprise/wesl-usersettingsetcustomshell) to see how these codes with Shell Launcher WMI.
|
||||
|
||||
To configure these actions with Shell Launcher CSP, use below syntax in the shell launcher configuration xml. You can specify at most four custom actions mapping to four exit codes, and one default action for all other exit codes. When app exits and if the exit code is not found in the custom action mapping, or there is no default action defined, it will be no-op, i.e. nothing happens. So it's recommended to at least define DefaultAction. [Get XML examples for different Shell Launcher v2 configurations.](https://github.com/Microsoft/Windows-iotcore-samples/tree/develop/Samples/ShellLauncherV2)
|
||||
|
||||
``` xml
|
||||
<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"/>
|
||||
|
||||
```
|
@ -1,83 +0,0 @@
|
||||
---
|
||||
title: Validate kiosk configuration
|
||||
description: In this article, learn what to expect on a multi-app kiosk in Windows 10/11 Pro, Enterprise, and Education.
|
||||
|
||||
ms.topic: article
|
||||
ms.date: 12/31/2017
|
||||
---
|
||||
|
||||
# Validate kiosk configuration
|
||||
|
||||
To identify the provisioning packages applied to a device, go to **Settings** > **Accounts** > **Access work or school**, and then click **Add or remove a provisioning package**. You should see a list of packages that were applied to the device.
|
||||
|
||||
Optionally, run Event Viewer (eventvwr.exe) and look through logs under **Applications and Services Logs** > **Microsoft** > **Windows** > **Provisioning-Diagnostics-Provider** > **Admin**.
|
||||
|
||||
To test the kiosk, sign in with the assigned access user account you specified in the configuration to check out the multi-app experience.
|
||||
|
||||
>[!NOTE]
|
||||
>The kiosk configuration setting will take effect the next time the assigned access user signs in. If that user account is signed in when you apply the configuration, make sure the user signs out and signs back in to validate the experience.
|
||||
|
||||
The following sections explain what to expect on a multi-app kiosk.
|
||||
|
||||
### App launching and switching experience
|
||||
|
||||
In the multi-app mode, to maximize the user productivity and streamline the experience, an app will be always launched in full screen when the users click the tile on the Start. The users can minimize and close the app, but cannot resize the app window.
|
||||
|
||||
The users can switch apps just as they do today in Windows. They can use the Task View button, Alt + Tab hotkey, and the swipe in from the left gesture to view all the open apps in task view. They can click the Windows button to show Start, from which they can open apps, and they can switch to an opened app by clicking it on the taskbar.
|
||||
|
||||
### Start changes
|
||||
|
||||
When the assigned access user signs in, you should see a restricted Start experience:
|
||||
- Start gets launched in full screen and prevents the end user from accessing the desktop.
|
||||
|
||||
- Start shows the layout aligned with what you defined in the multi-app configuration XML.
|
||||
|
||||
- Start prevents the end user from changing the tile layout.
|
||||
- The user cannot resize, reposition, and unpin the tiles.
|
||||
- The user cannot pin additional tiles on the start.
|
||||
- Start hides **All Apps** list.
|
||||
- Start hides all the folders on Start (including File Explorer, Settings, Documents, Downloads, Music, Pictures, Videos, HomeGroup, Network, and Personal folders).
|
||||
- Only **User** and **Power** buttons are available. (You can control whether to show the **User/Power** buttons using [existing policies](/windows/client-management/mdm/policy-csp-start).)
|
||||
- Start hides **Change account settings** option under **User** button.
|
||||
|
||||
### Taskbar changes
|
||||
|
||||
If the applied multi-app configuration enables taskbar, when the assigned access user signs in, you should see a restricted Taskbar experience:
|
||||
|
||||
- Disables context menu of Start button (Quick Link)
|
||||
- Disables context menu of taskbar
|
||||
- Prevents the end user from changing the taskbar
|
||||
- Disables Cortana and Search Windows
|
||||
- Hides notification icons and system icons, e.g. Action Center, People, Windows Ink Workspace
|
||||
- Allows the end user to view the status of the network connection and power state, but disables the flyout of **Network/Power** to prevent end user from changing the settings
|
||||
|
||||
### Blocked hotkeys
|
||||
|
||||
The multi-app mode blocks the following hotkeys, which are not relevant for the lockdown experience.
|
||||
|
||||
| Hotkey | Action |
|
||||
|--|--|
|
||||
| <kbd>WIN</kbd> + <kbd>A</kbd> | Open Action center |
|
||||
| <kbd>WIN</kbd> + <kbd>Shift</kbd> + <kbd> C</kbd> | Open Cortana in listening mode |
|
||||
| <kbd>WIN</kbd> + <kbd>D</kbd> | Display and hide the desktop |
|
||||
| <kbd>WIN</kbd> + <kbd>Alt</kbd> + <kbd> D</kbd> | Display and hide the date and time on the desktop |
|
||||
| <kbd>WIN</kbd> + <kbd>E</kbd> | Open File Explorer |
|
||||
| <kbd>WIN</kbd> + <kbd>F</kbd> | Open Feedback Hub |
|
||||
| <kbd>WIN</kbd> + <kbd>G</kbd> | Open Game bar when a game is open |
|
||||
| <kbd>WIN</kbd> + <kbd>I</kbd> | Open Settings |
|
||||
| <kbd>WIN</kbd> + <kbd>J</kbd> | Set focus to a Windows tip when one is available. |
|
||||
| <kbd>WIN</kbd> + <kbd>O</kbd> | Lock device orientation |
|
||||
| <kbd>WIN</kbd> + <kbd>Q</kbd> | Open search |
|
||||
| <kbd>WIN</kbd> + <kbd>R</kbd> | Open the Run dialog box |
|
||||
| <kbd>WIN</kbd> + <kbd>S</kbd> | Open search |
|
||||
| <kbd>WIN</kbd> + <kbd>X</kbd> | Open the Quick Link menu |
|
||||
| <kbd>WIN</kbd> + <kbd>, (comma)</kbd> | Temporarily peek at the desktop |
|
||||
| <kbd>WIN</kbd> + <kbd>Ctrl</kbd> + <kbd> F</kbd> | Search for PCs (if you're on a network) |
|
||||
|
||||
### Locked-down Ctrl+Alt+Del screen
|
||||
|
||||
The multi-app mode removes options (e.g. **Change a password**, **Task Manager**, **Network**) in the Ctrl+Alt+Del screen to ensure the users cannot access the functionalities that are not allowed in the lockdown experience.
|
||||
|
||||
### Auto-trigger touch keyboard
|
||||
|
||||
In the multi-app mode, the touch keyboard i automatically triggered when there is an input needed and no physical keyboard is attached on touch-enabled devices. You don't need to configure any other setting to enforce this behavior.
|
@ -1,69 +0,0 @@
|
||||
---
|
||||
title: "Quickstart: configure a kiosk experience with Shell Launcher"
|
||||
description: Learn how to configure a kiosk experience with Shell Launcher, using Windows Configuration Designer, Microsoft Intune, or PowerShell.
|
||||
ms.topic: quickstart
|
||||
ms.date: 02/05/2024
|
||||
appliesto:
|
||||
- ✅ <a href=/windows/release-health/supported-versions-windows-client target=_blank>Windows 11</a>
|
||||
---
|
||||
|
||||
# Quickstart: configure a kiosk experience with Shell Launcher
|
||||
|
||||
This quickstart provides the information to configure a kiosk experience with Shell Launcher, using Windows Configuration Designer, Microsoft Intune, or PowerShell.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
>[!div class="checklist"]
|
||||
>Here's a list of requirements to complete this quickstart:
|
||||
>
|
||||
>- A Windows Enterprise or Education device
|
||||
>- Microsoft Intune, or a non-Microsoft MDM solution, if you want to configure the settings using MDM
|
||||
>- Access to the [psexec tool](/sysinternals/downloads/psexec), if you want to test the configuration using Windows PowerShell
|
||||
|
||||
## Configure a kiosk device
|
||||
|
||||
[!INCLUDE [tab-intro](../../../includes/configure/tab-intro.md)]
|
||||
|
||||
#### [:::image type="icon" source="../images/icons/intune.svg"::: **Intune/CSP**](#tab/intune)
|
||||
|
||||
> [!TIP]
|
||||
> Use the following Graph call to automatically create a custom policy in your Microsoft Intune tenant without assignments nor scope tags.
|
||||
>
|
||||
> When using this call, authenticate to your tenant in the Graph Explorer window. If it's the first time using Graph Explorer, you may need to authorize the application to access your tenant or to modify the existing permissions. This graph call requires *DeviceManagementConfiguration.ReadWrite.All* permissions.
|
||||
|
||||
[!INCLUDE [shell-launcher-quickstart-intune](includes/shell-launcher-quickstart-intune.md)]
|
||||
|
||||
[!INCLUDE [intune-custom-settings-2](../../../includes/configure/intune-custom-settings-2.md)]
|
||||
|
||||
Alternatively, you can configure devices using a [custom policy][MEM-1] with the [AssignedAccess CSP][WIN-3].
|
||||
|
||||
- **Setting:** `./Vendor/MSFT/AssignedAccess/ShellLauncher`
|
||||
- **Value:**
|
||||
|
||||
[!INCLUDE [quickstart-shell-launcher-xml](includes/quickstart-shell-launcher-xml.md)]
|
||||
|
||||
#### [:::image type="icon" source="../images/icons/powershell.svg"::: **PowerShell**](#tab/ps)
|
||||
|
||||
[!INCLUDE [powershell-wmi-bridge-1](../../../includes/configure/powershell-wmi-bridge-1.md)]
|
||||
|
||||
[!INCLUDE [shell-launcher-quickstart-ps](includes/shell-launcher-quickstart-ps.md)]
|
||||
|
||||
[!INCLUDE [powershell-wmi-bridge-2](../../../includes/configure/powershell-wmi-bridge-2.md)]
|
||||
|
||||
---
|
||||
|
||||
## User experience
|
||||
|
||||
After the settings are applied, reboot the device. A local user account named `Airport Kiosk` is automatically signed in, opening Microsoft Edge with an airport map.
|
||||
|
||||
## Next steps
|
||||
|
||||
> [!div class="nextstepaction"]
|
||||
> Learn more how to configure Windows to execute as a restricted user experience:
|
||||
>
|
||||
> [Configure a shell launcher configuration](create-shell-launcher-configuration.md)
|
||||
|
||||
<!--links-->
|
||||
|
||||
[WIN-3]: /windows/client-management/mdm/assignedaccess-csp
|
||||
[MEM-1]: /mem/intune/configuration/custom-settings-windows-10
|
@ -1,185 +0,0 @@
|
||||
---
|
||||
title: Assigned Access XML Schema Definition (XSD)
|
||||
description: Shell Launcher XSD reference article.
|
||||
ms.topic: reference
|
||||
ms.date: 02/15/2024
|
||||
---
|
||||
|
||||
# Shell Launcher XML Schema Definition (XSD)
|
||||
|
||||
This reference article contains the XML schema definitions (XSD) for Shell Launcher and Shell Launcher v2.
|
||||
|
||||
## Shell Launcher XSD
|
||||
|
||||
```xml
|
||||
<xs:schema elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
|
||||
xmlns:default="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
|
||||
xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration" targetNamespace="http://schemas.microsoft.com/ShellLauncher/2018/Configuration">
|
||||
|
||||
<xs:import namespace="http://schemas.microsoft.com/ShellLauncher/2019/Configuration"/>
|
||||
|
||||
<xs:complexType name="profile_list_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:choice minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="DefaultProfile" type="default_profile_t"/>
|
||||
<xs:element name="Profile" type="profile_t"/>
|
||||
</xs:choice>
|
||||
<xs:element name="Profile" type="profile_t" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="default_profile_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="Shell" type="default_shell_t" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="default_shell_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="DefaultAction" type="default_action_t" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Shell" type="xs:string" use="required"/>
|
||||
<xs:attribute ref="V2:AppType"/>
|
||||
<xs:attribute ref="V2:AllAppsFullScreen"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="custom_shell_t">
|
||||
<xs:all minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="ReturnCodeActions" type="return_code_action_list_t" minOccurs="0" maxOccurs="1">
|
||||
<xs:unique name="ForbidDuplicatedReturnCodes">
|
||||
<xs:selector xpath="default:ReturnCodeAction"/>
|
||||
<xs:field xpath="@ReturnCode"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
<xs:element name="DefaultAction" type="default_action_t" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="Shell" type="xs:string" />
|
||||
<xs:attribute ref="V2:AppType"/>
|
||||
<xs:attribute ref="V2:AllAppsFullScreen"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="default_action_t">
|
||||
<xs:attribute name="Action" type="system_action_t" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="system_action_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="RestartShell" />
|
||||
<xs:enumeration value="RestartDevice" />
|
||||
<xs:enumeration value="ShutdownDevice" />
|
||||
<xs:enumeration value="DoNothing" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="profile_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="Shell" type="custom_shell_t" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Id" type="guid_t" use="required"/>
|
||||
<xs:attribute name="Name" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="guid_t">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="\{[0-9a-fA-F]{8}\-([0-9a-fA-F]{4}\-){3}[0-9a-fA-F]{12}\}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="return_code_action_list_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="ReturnCodeAction" type="return_code_action_t" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="return_code_action_t">
|
||||
<xs:attribute name="ReturnCode" type="xs:integer" use="required"/>
|
||||
<xs:attribute name="Action" type="system_action_t" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="config_list_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="Config" type="config_t" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="config_t">
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:choice minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="Account" type="account_t" minOccurs="1" maxOccurs="1">
|
||||
<xs:key name="mutexNameOrSID">
|
||||
<xs:selector xpath="."/>
|
||||
<xs:field xpath="@Name|@Sid"/>
|
||||
</xs:key>
|
||||
</xs:element>
|
||||
<xs:element name="AutoLogonAccount" type="autologon_account_t" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:choice>
|
||||
<xs:element name="Profile" type="profile_id_t" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="account_t">
|
||||
<xs:attribute name="Name" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="Sid" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="autologon_account_t">
|
||||
<xs:attribute name="HiddenId" type="guid_t" fixed="{50021E57-1CE4-49DF-99A9-8DB659E2C2DD}"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="profile_id_t">
|
||||
<xs:attribute name="Id" type="guid_t" use="required"/>
|
||||
</xs:complexType>
|
||||
|
||||
<!--below is the definition of the config xml content-->
|
||||
<xs:element name="ShellLauncherConfiguration">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1" maxOccurs="1">
|
||||
<xs:element name="Profiles" type="profile_list_t" minOccurs="1" maxOccurs="1">
|
||||
<xs:unique name="ForbidDuplicatedProfiles">
|
||||
<xs:selector xpath="default:Profile"/>
|
||||
<xs:field xpath="@Id"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
<xs:element name="Configs" type="config_list_t" minOccurs="0" maxOccurs="1">
|
||||
<xs:unique name="ForbidDuplicatedConfigs_Name">
|
||||
<xs:selector xpath="default:Config/default:Account"/>
|
||||
<xs:field xpath="@Name"/>
|
||||
</xs:unique>
|
||||
<xs:unique name="ForbidDuplicatedConfigs_Sid">
|
||||
<xs:selector xpath="default:Config/default:Account"/>
|
||||
<xs:field xpath="@Sid"/>
|
||||
</xs:unique>
|
||||
<xs:unique name="ForbidDuplicatedAutoLogonAccount">
|
||||
<xs:selector xpath="default:Config/default:AutoLogonAccount"/>
|
||||
<xs:field xpath="@HiddenId"/>
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
```
|
||||
|
||||
## Shell Launcher v2 XSD
|
||||
|
||||
```xml
|
||||
<xs:schema elementFormDefault="qualified"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://schemas.microsoft.com/ShellLauncher/2019/Configuration"
|
||||
xmlns:default="http://schemas.microsoft.com/ShellLauncher/2019/Configuration" targetNamespace="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
|
||||
|
||||
<xs:attribute name="AppType">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="UWP"/>
|
||||
<xs:enumeration value="Desktop"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="AllAppsFullScreen" type="xs:boolean"/>
|
||||
|
||||
</xs:schema>
|
||||
```
|
@ -1,43 +0,0 @@
|
||||
items:
|
||||
- name: Overview
|
||||
href: kiosk-methods.md
|
||||
- name: Quickstarts
|
||||
items:
|
||||
- name: Configure a kiosk with Assigned Access
|
||||
href: assigned-access-quickstart-kiosk.md
|
||||
- name: Configure a restricted user experience with Assigned Access
|
||||
href: assigned-access-quickstart-restricted-experience.md
|
||||
- name: Configure a kiosk with Shell Launcher
|
||||
href: shell-launcher-quickstart-kiosk.md
|
||||
- name: Concepts
|
||||
items:
|
||||
- name: Prepare a device for kiosk configuration
|
||||
href: kiosk-prepare.md
|
||||
- name: Guidelines for choosing an app for assigned access
|
||||
href: guidelines-for-assigned-access-app.md
|
||||
- name: How-to guides
|
||||
items:
|
||||
- name: Create an Assigned Access configuration file
|
||||
href: create-assigned-access-configuration.md
|
||||
- name: Create a Shell Launcher configuration file
|
||||
href: create-shell-launcher-configuration.md
|
||||
- name: Find the AUMID of an installed app
|
||||
href: find-aumid.md
|
||||
- name: Use Shell Launcher to create a Windows client kiosk
|
||||
href: kiosk-shelllauncher.md
|
||||
- name: Troubleshoot
|
||||
items:
|
||||
- name: Validate your kiosk configuration
|
||||
href: kiosk-validate.md
|
||||
- name: Troubleshoot kiosk mode issues
|
||||
href: /troubleshoot/windows-client/shell-experience/kiosk-mode-issues-troubleshooting
|
||||
- name: Reference
|
||||
items:
|
||||
- name: Assigned Access CSP
|
||||
href: /windows/client-management/mdm/assignedaccess-csp
|
||||
- name: Assigned Access XSD
|
||||
href: assigned-access-xsd.md
|
||||
- name: Shell Launcher XSD
|
||||
href: shell-launcher-xsd.md
|
||||
- name: Policies enforced on kiosk devices
|
||||
href: kiosk-policies.md
|