创建分配的访问权限配置 XML 文件

若要配置分配的访问权限,必须创建配置 XML 文件并将其应用于设备。 配置文件必须符合 架构,如 分配的访问 XML 架构定义 (XSD) 中定义。

本文介绍如何配置分配的访问权限配置文件,包括实际示例。

让我们首先看看 XML 文件的基本结构。 分配的访问权限配置文件包含:

  • 一个或多个 profiles。 每个 profile 定义一组允许运行的应用程序
  • 一个或多个 configs。 每个 config 将用户帐户或组关联到 profile

下面是分配的访问权限配置文件的基本示例,其中包含一个配置文件和一个配置:

<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config">
    <Profiles>
        <Profile Id="{GUID}">
            <!-- Add configuration here as needed -->
        </Profile>
    </Profiles>
    <Configs>
        <Config>
            <!-- Add configuration here as needed -->
        </Config>
    </Configs>
</AssignedAccessConfiguration>

版本控制

分配的访问权限配置 XML 是版本控制。 版本在 XML 根元素中定义,用于确定用于验证 XML 文件的架构。 版本还用于确定哪些功能可用于配置。 下面是文档示例中使用的版本、别名和命名空间的表:

版本 Alias 命名空间
Windows 11 版本 22H2 v5 http://schemas.microsoft.com/AssignedAccess/2022/config
Windows 11 版本 21H2 v4 http://schemas.microsoft.com/AssignedAccess/2021/config
Windows 10 v5 http://schemas.microsoft.com/AssignedAccess/202010/config
Windows 10 v3 http://schemas.microsoft.com/AssignedAccess/2020/config
Windows 10 rs5 http://schemas.microsoft.com/AssignedAccess/201810/config
Windows 10 默认 http://schemas.microsoft.com/AssignedAccess/2017/config

若要授权包含特定于版本的元素和属性的兼容配置 XML,请始终包含加载项架构的命名空间,并使用命名空间别名相应地修饰属性和元素。 例如,若要配置 StartPins Windows 11 版本 22H2 中添加的功能,请使用以下示例。 请注意与 22H2 版本的命名空间关联的http://schemas.microsoft.com/AssignedAccess/2022/config别名v5,该别名在内联上StartPins标记。

<?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="{GUID}">
            <!-- Add configuration here as needed -->
            <v5:StartPins>
              <!-- Add StartPins configuration here -->
            </v5:StartPins>
        </Profile>
    </Profiles>
    <Configs>
        <Config>
            <!-- Add configuration here as needed -->
        </Config>
    </Configs>
</AssignedAccessConfiguration>

可在此处找到分配的访问权限 XML 架构定义: 分配的访问 XML 架构定义 (XSD)

配置文件

配置文件可以包含一个或多个配置文件。 每个配置文件由唯一标识符 Profile Id 和 (可选 Name)标识。 例如:

<Profiles>
  <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" Name="Microsoft Learn example">
    <!-- Add configuration here as needed -->
  </Profile>
</Profiles>

提示

Profile Id XML 文件中必须是唯一的。 可以使用 PowerShell cmdlet New-Guid生成 GUID。

配置文件可以是以下两种类型之一:

  • KioskModeApp:用于配置展台体验。 分配此配置文件的用户不会访问桌面,但只能访问通用 Windows 平台 (UWP) 应用程序或以全屏显示屏幕上方运行的 Microsoft Edge
  • AllAppList 用于配置受限的用户体验。 分配了此配置文件的用户,使用“开始”菜单上的特定应用访问桌面

重要提示

  • 不能同时在设备上设置 KioskModeAppShellLauncher
  • 配置文件只能包含一个 KioskModeApp 配置文件,但可以包含多个 AllAppList 配置文件。

KioskModeApp

配置文件的属性 KioskModeApp 包括:

属性 描述 详细信息
AppUserModelId 应用程序用户模型 ID (UWP 应用的 AUMID) 。 了解如何 查找已安装应用的应用程序用户模型 ID
v4:ClassicAppPath 桌面应用可执行文件的完整路径。 这是展台模式下使用的桌面应用的路径。 路径可以包含形式的 %variableName%系统环境变量。
v4:ClassicAppArguments 要传递给桌面应用的参数。 此属性是可选的。

默认情况下,可以使用 CTRL+ALT+DEL 序列退出展台模式。 可以定义元素 BreakoutSequence 以更改默认序列。 属性 Key 是表示组合键的字符串。

两个配置文件的示例:一个桌面应用和一个 UWP 应用:

<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
  <KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--kiosk https://www.contoso.com/ --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" />
  <v4:BreakoutSequence Key="Ctrl+A"/>
</Profile>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F79}">
  <KioskModeApp AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
</Profile>

注意

只能将 KioskModeApp 配置文件分配给用户,而不能分配给组。

AllAppList

根据展台设备的用途,定义允许运行的应用程序的列表。 此列表中可能包含 UWP 应用和桌面应用。 将 mult-app 展台配置应用于设备时,将生成 AppLocker 规则以允许配置中列出的应用。

注意

如果一个应用依赖于另一个应用,则两者都必须包含在允许的应用列表中。

在节点中 AllAppList ,定义允许执行的应用程序列表。 每个 App 元素具有以下属性:

属性 描述 详细信息
AppUserModelId 应用程序用户模型 ID (UWP 应用的 AUMID) 。 了解如何 查找已安装应用的应用程序用户模型 ID
DesktopAppPath 桌面应用可执行文件的完整路径。 这是在展台模式下使用的桌面应用的路径。 路径可以包含形式的 %variableName%系统环境变量。
rs5:AutoLaunch 一个布尔属性,指示用户登录时是自动启动应用 (桌面应用还是 UWP 应用) 。 此属性是可选的。 只有一个应用程序可以自动启动。
rs5:AutoLaunchArguments 要传递给使用 AutoLaunch配置的应用的参数。 AutoLaunchArguments 按原样传递给应用,应用需要显式处理参数。 此属性是可选的。

示例:

<AllAppsList>
  <AllowedApps>
    <App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
    <App DesktopAppPath="C:\Windows\system32\cmd.exe" />
    <App DesktopAppPath="%windir%\explorer.exe" />
    <App AppUserModelId="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" />
    <App DesktopAppPath="C:\Windows\System32\notepad.exe" rs5:AutoLaunch="true" rs5:AutoLaunchArguments="%windir%\setuperr.log" />
  </AllowedApps>
</AllAppsList>

文件资源管理器限制

在受限的用户体验 (AllAppList) 中,文件夹浏览默认处于锁定状态。 可以通过包括 FileExplorerNamespaceRestrictions 节点来显式允许访问已知文件夹。

可以指定用户对 Downloads 文件夹、可移动驱动器的访问权限,或者完全没有限制。 可以同时允许下载和可移动驱动器。

<Profiles>
    <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" Name="Microsoft Learn example">
        <AllAppsList>
            <AllowedApps>
                <!-- Add configuration here as needed -->
            </AllowedApps>
        </AllAppsList>
        <rs5:FileExplorerNamespaceRestrictions>
            <!-- Add configuration here as needed -->
        </rs5:FileExplorerNamespaceRestrictions>
        <!-- Add configuration here as needed -->
    </Profile>
</Profiles>

下面是一些实际示例。

阻止所有内容

要么不使用节点,要么将其留空。

<rs5:FileExplorerNamespaceRestrictions>
</rs5:FileExplorerNamespaceRestrictions>

仅允许下载

<rs5:FileExplorerNamespaceRestrictions>
    <rs5:AllowedNamespace Name="Downloads"/>
</rs5:FileExplorerNamespaceRestrictions>

仅允许可移动驱动器

<rs5:FileExplorerNamespaceRestrictions>
    <v3:AllowRemovableDrives />
</rs5:FileExplorerNamespaceRestrictions>

允许下载和可移动驱动器

<rs5:FileExplorerNamespaceRestrictions>
    <rs5:AllowedNamespace Name="Downloads"/>
    <v3:AllowRemovableDrives/>
</rs5:FileExplorerNamespaceRestrictions>

无限制,允许所有位置

<rs5:FileExplorerNamespaceRestrictions>
    <v3:NoRestriction />
</rs5:FileExplorerNamespaceRestrictions>

提示

若要在受限的用户体验中授予对文件资源管理器的访问权限,请添加到Explorer.exe允许的应用列表,并将快捷方式固定到“开始”菜单。

“开始”菜单自定义

对于受限的用户体验配置文件 (AllAppList) ,必须定义“开始”菜单布局。 “开始”布局包含固定到“开始”菜单的应用程序列表。 可以选择将所有允许的应用程序固定到“开始”菜单或子集。 创建自定义“开始”布局的最简单方法是在测试设备上配置“开始”菜单,然后导出布局。

若要了解如何自定义和导出“开始”菜单配置,请参阅 自定义“开始”菜单

使用导出的“开始”菜单配置,使用 StartLayout 元素并添加 XML 文件的内容。 例如:

<StartLayout>
  <![CDATA[
    <!-- Add your exported Start menu XML configuration file here -->
  ]]>
</StartLayout>

固定了某些应用的示例:

<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: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>

使用导出的“开始”菜单配置,使用 v5:StartPins 元素并添加导出的 JSON 文件的内容。 例如:

<v5:StartPins>
  <![CDATA[
      <!-- Add your exported Start menu JSON configuration file here -->
  ]]>
</v5:StartPins>

固定了某些应用的示例:

<v5:StartPins>

</v5:StartPins>

注意

如果未为用户安装应用,但包含在“开始”布局 XML 中,则“开始”屏幕上不会显示该应用。

任务栏自定义项

无法在受限的用户体验中将应用固定到任务栏上。 不支持使用 <CustomTaskbarLayoutCollection> 布局修改 XML 中的 标记来配置任务栏布局,作为分配的访问权限配置的一部分。

唯一可用的任务栏自定义项是使用 ShowTaskbar 布尔属性显示或隐藏它的选项。

以下示例公开任务栏:

<Taskbar ShowTaskbar="true"/>

以下示例会隐藏任务栏:

<Taskbar ShowTaskbar="false"/>

注意

在平板电脑模式下,这不同于自动隐藏任务栏选项,后者在向上轻扫或将鼠标指针向下移动到屏幕底部时会显示任务栏。 false设置为 ShowTaskbar 会永久隐藏任务栏。

可以通过创建自定义布局并将其添加到 XML 文件来自定义任务栏。 若要了解如何自定义和导出任务栏配置,请参阅 自定义任务栏

注意

在 Windows 11 中, ShowTaskbar 属性为 no-op。 使用 值 true对其进行配置。

使用导出的任务栏配置,使用 v5:TaskbarLayout 元素并添加 XML 文件的内容。 例如:

<Taskbar ShowTaskbar="true" />
<v5:TaskbarLayout><![CDATA[
  <!-- Add your exported Taskbar XML configuration file here -->
  ]]>
</v5:TaskbarLayout>

下面是固定了几个应用的自定义任务栏示例:

<Taskbar ShowTaskbar="true" />
<v5:TaskbarLayout><![CDATA[
  <?xml version="1.0" encoding="utf-8"?>
  <LayoutModificationTemplate
      xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
      xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
      xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
      xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout"
      Version="1">
  <CustomTaskbarLayoutCollection>
    <defaultlayout:TaskbarLayout>
    <taskbar:TaskbarPinList>
        <taskbar:DesktopApp DesktopApplicationID="Microsoft.Windows.Explorer" />
        <taskbar:DesktopApp DesktopApplicationID="windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel" />
        <taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk"/>
    </taskbar:TaskbarPinList>
    </defaultlayout:TaskbarLayout>
  </CustomTaskbarLayoutCollection>
  </LayoutModificationTemplate>
  ]]>
</v5:TaskbarLayout>

配置

在 下 Configs,定义一个或多个用户帐户或组,以及它们与配置文件的关联。

用户帐户登录时,将强制实施关联的分配访问权限配置文件以及属于受限用户体验一部分的策略设置。

可以分配:

  • 标准用户帐户,可以是本地、域或Microsoft Entra ID
  • 组帐户,可以是本地、Active Directory (域) 或Microsoft Entra ID

限制:

  • 指定组帐户的配置不能使用展台配置文件,只能使用受限的用户体验配置文件
  • 仅将受限的用户体验应用于标准用户。 不支持将管理员用户与分配的访问权限配置文件相关联
  • 不要将配置文件应用于需要用户交互的条件访问策略所针对的用户或组。 例如,多重身份验证 (MFA) 或使用条款 (TOU) 。 有关详细信息,请参阅 如果分配了多应用展台配置文件,则用户无法登录到 Windows

注意

在已加入Microsoft Entra和已加入域的设备上,默认情况下,登录屏幕上不会显示本地用户帐户。 若要在登录屏幕上显示本地帐户,请启用策略设置:

AutoLogon 帐户

使用 <AutoLogonAccount>,分配的访问权限创建和管理用户帐户,以在设备重启后自动登录。 该帐户是本地标准用户。

以下示例演示如何指定要自动登录的帐户,并在登录屏幕上指定该帐户的可选显示名称:

<Configs>
  <Config>
    <AutoLogonAccount rs5:DisplayName="Microsoft Learn example"/>
    <DefaultProfile Id="{GUID}"/>
  </Config>
</Configs>

重要提示

当 Exchange Active Sync (EAS) 密码限制在设备上处于活动状态时,自动登录功能不起作用。 此行为是设计使然。 有关详细信息,请参阅 如何在 Windows 中启用自动登录

全局配置文件

使用 GlobalProfile,可以定义应用于登录的每个非管理员帐户的分配访问权限配置文件。 GlobalProfile 在一线员工或学生设备等方案中非常有用,在这些方案中,你希望确保每个用户都有一致的体验。

<Configs>
  <v3:GlobalProfile Id="{GUID}"/>
</Configs>

注意

可以将全局配置文件与其他配置文件组合在一起。 如果为用户分配非全局配置文件,则全局配置文件不会应用于该用户。

用户帐户

使用 <Account>指定单个帐户。

重要提示

在应用分配的访问权限配置之前,请确保指定的用户帐户在设备上可用,否则会失败。

对于域帐户和Microsoft Entra帐户,只要设备已加入 Active Directory 或Microsoft Entra联接,就可以在设备加入的域林或租户中发现该帐户。 对于本地帐户,帐户必须在针对分配的访问权限配置该帐户前存在。

本地用户

本地帐户可以输入为 devicename\user.\user或仅 user

<Config>
  <Account>user</Account>
  <DefaultProfile Id="{GUID}"/>
</Config>

Active Directory 用户

必须使用格式 domain\samAccountName输入域帐户。

<Config>
  <Account>contoso\user</Account>
  <DefaultProfile Id="{GUID}"/>
</Config>

Microsoft Entra用户

Microsoft Entra帐户必须指定格式:AzureAD\{UPN}AzureAD必须按原样提供,然后跟Microsoft Entra用户主体名称 (UPN) 。

<Config>
  <Account>AzureAD\user@contoso.onmicrosoft.com</Account>
  <DefaultProfile Id="{GUID}"/>
</Config>

组帐户

使用 <UserGroup>指定组帐户。 不支持嵌套组。 例如, 如果用户 A组 A 的成员, 组 A组 B 的成员,组 B 用于 <Config/>则用户 A 没有展台体验。

本地组

将组类型指定为 LocalGroup ,并在 属性中添加 Name 组名称。

<Config>
  <UserGroup Type="LocalGroup" Name="groupname" />
  <DefaultProfile Id="{GUID}"/>
</Config>

Active Directory 组

同时支持安全性和通讯组。 将组类型指定为 ActiveDirectoryGroup。 在 name 属性中使用域名作为前缀。

<Config>
  <UserGroup Type="ActiveDirectoryGroup" Name="contoso\groupname" />
  <DefaultProfile Id="{GUID}"/>
</Config>

Microsoft Entra组

使用Microsoft Entra组的对象 ID。 可以通过登录到“Microsoft Entra 管理中心并浏览到”标识>>“”所有组“,在组的概述页上找到对象 ID。 将组类型指定为 AzureActiveDirectoryGroup。 当属于组的用户登录时,展台设备必须具有 Internet 连接。

<Config>
  <UserGroup Type="AzureActiveDirectoryGroup" Name="Group_GUID" />
  <DefaultProfile Id="{GUID}"/>
</Config>

后续步骤

查看分配的访问权限 XML 配置的一些实际示例:

分配的访问权限示例