Настройка Windows 10 Mobile с помощью XML-кода блокировки

Windows 10 Mobile позволяет организациям заблокировать устройство, определить несколько ролей пользователей и настроить собственные макеты на устройстве. Например, организация может заблокировать устройство, чтобы на нем были доступны только приложения и параметры из белого списка.

В этом разделе приводится пример XML, который можно использовать в собственном XML-файле блокировки, включаемом в пакет подготовки, или при отправке параметров блокировки на зарегистрированные устройства при помощи решения для управления мобильными устройствами (MDM).

После применения параметров блокировки конфигурация хранится в файле wehlockdown.xml на устройстве.

Подробнее о каждом из элементов конфигурации см. в разделе AssignedAccess/AssignedAccessXml справочника по поставщикам служб конфигурации (CSP) EnterpriseAssignedAccess.

Порядок параметров блокировки

При блокировке параметров элементы конфигурации должны быть указаны в следующем порядке.

  • Профиль по умолчанию
  • RoleList
    • Роль (повторить для каждой роли)

Настройка пакетов с несколькими приложениями

В таких пакетах можно разместить несколько приложений одновременно. Поскольку коды продукта определяют пакеты, а не приложения, указать код продукта недостаточно, чтобы отличать разные приложения в пакете с несколькими приложениями. Попытка закрепить плитки приложения из пакета с несколькими приложениями, используя только код продукта, может привести к непредвиденному поведению.

Для поддержки закрепления приложений в пакетах с несколькими приложениями можно указать в файле lockdown.xml параметр AUMID.

В следующем примере показано, как закрепить одновременно приложения «Почта Outlook» и «Календарь Outlook».

<Apps>
    <!-- Outlook Calendar -->
    <Application productId="{A558FEBA-85D7-4665-B5D8-A2FF9C19799B}" aumid="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar">
        <PinToStart>
            <Size>Large</Size>
            <Location>
                <LocationX>1</LocationX>
                <LocationY>4</LocationY>
            </Location>
        </PinToStart>
    </Application>
    <!-- Outlook Mail-->
    <Application productId="{A558FEBA-85D7-4665-B5D8-A2FF9C19799B}" aumid="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.mail">
        <PinToStart>
            <Size>Large</Size>
            <Location>
                <LocationX>1</LocationX>
                <LocationY>6</LocationY>
            </Location>
        </PinToStart>
    </Application>
</Apps>

Пример блокировки с использованием файла lockdown.xml

Пример XML-файла можно использовать как файл блокировки, который содержится в пакете подготовки, созданном при помощи конструктора образов и конфигураций Windows (ICD). Но если вы используете MDM для отправки файла блокировки непосредственно на устройства, в примере XML необходимо использовать экранированные символы (например, &lt; вместо <) из-за внедрения XML-кода в XML. В Интернете легко найти средство для экранирования, которое поможет вам с этим.

<?xml version="1.0" encoding="utf-8"?>
<HandheldLockdown version="1.0" >
    <Default>
        <ActionCenter enabled="true" />
        <Apps>
            <!-- Settings -->
            <Application productId="{2A4E62D8-8809-4787-89F8-69D0F01654FB}">
                <PinToStart>
                    <Size>Large</Size>
                    <Location>
                        <LocationX>0</LocationX>
                        <LocationY>0</LocationY>
                    </Location>
                </PinToStart>
            </Application>
            <!-- Outlook Calendar -->
            <Application productId="{A558FEBA-85D7-4665-B5D8-A2FF9C19799B}" aumid="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar">
                <PinToStart>
                    <Size>Small</Size>
                    <Location>
                        <LocationX>0</LocationX>
                        <LocationY>2</LocationY>
                    </Location>
                </PinToStart>
            </Application>
            <!-- Photos -->
            <Application productId="{FCA55E1B-B9A4-4289-882F-084EF4145005}">
                <PinToStart>
                    <Size>Medium</Size>
                    <Location>
                        <LocationX>2</LocationX>
                        <LocationY>2</LocationY>
                    </Location>
                </PinToStart>
            </Application>
            <!-- Edge -->
            <Application productId="{395589FB-5884-4709-B9DF-F7D558663FFD}" />
            <!-- Login App -->
            <Application productId="{C85DC60D-30D4-4C67-A4B4-58282F1D152C}" />
        </Apps>
        <Buttons>
            <ButtonLockdownList>
                <!-- Lockdown all buttons -->
                <Button name="Search">
                </Button>
                <Button name="Camera">
                </Button>
                <Button name="Custom1">
                </Button>
                <Button name="Custom2">
                </Button>
                <Button name="Custom3">
                </Button>
            </ButtonLockdownList>
            <ButtonRemapList>
                <Button name="Search">
                    <ButtonEvent name="Press">
                        <!-- Edge-->
                        <Application productId="{395589FB-5884-4709-B9DF-F7D558663FFD}" parameters="" />
                    </ButtonEvent>
                </Button>
            </ButtonRemapList>
        </Buttons>
        <CSPRunner>
            <SyncML xmlns="SYNCML:SYNCML1.2">
                <SyncBody>
                    <Replace>
                        <CmdID>1</CmdID>
                        <Item>
                            <Target>
                                <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/Theme/ThemeAccentColorID</LocURI>
                            </Target>
                            <Meta>
                                <Format xmlns="syncml:metinf">int</Format>
                            </Meta>
                            <!-- zero based index of available theme colors -->
                            <Data>7</Data>
                        </Item>
                    </Replace>
                    <Final/>
                </SyncBody>
            </SyncML>
            <SyncML xmlns="SYNCML:SYNCML1.2">
                <SyncBody>
                    <Replace>
                        <CmdID>1</CmdID>
                        <Item>
                            <Target>
                                <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/Theme/ThemeBackground</LocURI>
                            </Target>
                            <Meta>
                                <Format xmlns="syncml:metinf">int</Format>
                            </Meta>
                            <!-- 0 for "light", 1 for "dark" -->
                            <Data>1</Data>
                        </Item>
                    </Replace>
                    <Final/>
                </SyncBody>
            </SyncML>
            <SyncML xmlns="SYNCML:SYNCML1.2">
                <SyncBody>
                    <Replace>
                        <CmdID>2</CmdID>
                        <Item>
                            <Target>
                                <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/LockScreenWallpaper/BGFileName</LocURI>
                            </Target>
                            <Meta>
                                <Format xmlns="syncml:metinf">chr</Format>
                                <Type xmlns="syncml:metinf">text/plain</Type>
                            </Meta>
                            <Data>c:\windows\system32\lockscreen\480x800\Wallpaper_05.jpg</Data>
                        </Item>
                    </Replace>
                    <Final/>
                </SyncBody>
            </SyncML>
        </CSPRunner>
        <MenuItems>
            <DisableMenuItems/>
        </MenuItems>
        <Settings>
            <!-- Quick actions: Brightness, Rotation -->
            <System name="SystemSettings_System_Display_QuickAction_Brightness"/>
            <System name="SystemSettings_System_Display_Internal_Rotation"/>
            <!-- Brightness+Rotation, About -->
            <System name="SettingsPageGroupPCSystem"/>
            <System name="SettingsPageDisplay"/>
            <System name="SettingsPagePCSystemInfo"/>
            <!-- Ringtones, sounds -->
            <System name="SettingsPageGroupPersonalization"/>
            <System name="SettingsPageSounds"/>
        </Settings>
        <Tiles>
            <EnableTileManipulation/>
        </Tiles>
        <StartScreenSize>Small</StartScreenSize>
    </Default>
    <RoleList>
        <Role guid="{88501844-3b51-4c9f-9da7-7ca745e7da6b}" name="Associate">
            <ActionCenter enabled="0"/>
            <Apps>
                <!-- Settings -->
                <Application productId="{2A4E62D8-8809-4787-89F8-69D0F01654FB}">
                    <PinToStart>
                        <Size>Small</Size>
                        <Location>
                            <LocationX>0</LocationX>
                            <LocationY>0</LocationY>
                        </Location>
                    </PinToStart>
                </Application>
                <!-- Outlook Calendar -->
                <Application productId="{A558FEBA-85D7-4665-B5D8-A2FF9C19799B}" aumid="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar">
                    <PinToStart>
                        <Size>Large</Size>
                        <Location>
                            <LocationX>0</LocationX>
                            <LocationY>2</LocationY>
                        </Location>
                    </PinToStart>
                </Application>
                <!-- Login App -->
                <Application productId="{C85DC60D-30D4-4C67-A4B4-58282F1D152C}" />
            </Apps>
            <Buttons />
            <CSPRunner>
                <SyncML xmlns="SYNCML:SYNCML1.2">
                    <SyncBody>
                        <Replace>
                            <CmdID>1</CmdID>
                            <Item>
                                <Target>
                                    <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/Theme/ThemeAccentColorID</LocURI>
                                </Target>
                                <Meta>
                                    <Format xmlns="syncml:metinf">int</Format>
                                </Meta>
                                <!-- zero based index of available theme colors -->
                                <Data>10</Data>
                            </Item>
                        </Replace>
                        <Final/>
                    </SyncBody>
                </SyncML>
                <SyncML xmlns="SYNCML:SYNCML1.2">
                    <SyncBody>
                        <Replace>
                            <CmdID>1</CmdID>
                            <Item>
                                <Target>
                                    <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/Theme/ThemeBackground</LocURI>
                                </Target>
                                <Meta>
                                    <Format xmlns="syncml:metinf">int</Format>
                                </Meta>
                                <!-- 0 for "light", 1 for "dark" -->
                                <Data>0</Data>
                            </Item>
                        </Replace>
                        <Final/>
                    </SyncBody>
                </SyncML>
                <SyncML xmlns="SYNCML:SYNCML1.2">
                    <SyncBody>
                        <Replace>
                            <CmdID>2</CmdID>
                            <Item>
                                <Target>
                                    <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/LockScreenWallpaper/BGFileName</LocURI>
                                </Target>
                                <Meta>
                                    <Format xmlns="syncml:metinf">chr</Format>
                                    <Type xmlns="syncml:metinf">text/plain</Type>
                                </Meta>
                                <Data>c:\windows\system32\lockscreen\480x800\Wallpaper_08.jpg</Data>
                            </Item>
                        </Replace>
                        <Final/>
                    </SyncBody>
                </SyncML>
            </CSPRunner>
            <MenuItems>
                <DisableMenuItems/>
            </MenuItems>
            <Settings>
                <!-- Brightness+Rotation, Notifications, About -->
                <System name="SettingsPageGroupPCSystem"/>
                <System name="SettingsPageAppsNotifications"/>
                <System name="SettingsPageDisplay"/>
                <System name="SettingsPagePCSystemInfo"/>
                <!-- Ringtones, sounds -->
                <System name="SettingsPageGroupPersonalization"/>
                <System name="SettingsPageSounds"/>
                <!-- Workplace -->
                <System name="SettingsPageGroupAccounts"/>
                <System name="SettingsPageAccountsWorkplace"/>
            </Settings>
        </Role>
        <Role guid="{7bb62e8c-81ba-463c-b691-74af68230b42}" name="Manager">
            <ActionCenter enabled="true" />
            <Apps>
                <!-- Alarms and Clock -->
                <Application productId="{44F7D2B4-553D-4BEC-A8B7-634CE897ED5F}">
                    <PinToStart>
                        <Size>Small</Size>
                        <Location>
                            <LocationX>0</LocationX>
                            <LocationY>0</LocationY>
                        </Location>
                    </PinToStart>
                </Application>
                <!-- Settings -->
                <Application productId="{2A4E62D8-8809-4787-89F8-69D0F01654FB}">
                    <PinToStart>
                        <Size>Small</Size>
                        <Location>
                            <LocationX>1</LocationX>
                            <LocationY>0</LocationY>
                        </Location>
                    </PinToStart>
                </Application>
                <!-- Outlook Calendar -->
                <Application productId="{A558FEBA-85D7-4665-B5D8-A2FF9C19799B}" aumid="microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar">
                    <PinToStart>
                        <Size>Medium</Size>
                        <Location>
                            <LocationX>2</LocationX>
                            <LocationY>0</LocationY>
                        </Location>
                    </PinToStart>
                </Application>
                <!-- Calculator -->
                <Application productId="{B58171C6-C70C-4266-A2E8-8F9C994F4456}" />
                <!-- Photos -->
                <Application productId="{FCA55E1B-B9A4-4289-882F-084EF4145005}">
                    <PinToStart>
                        <Size>Small</Size>
                        <Location>
                            <LocationX>0</LocationX>
                            <LocationY>2</LocationY>
                        </Location>
                    </PinToStart>
                </Application>
                <!-- Store -->
                <Application productId="{7D47D89A-7900-47C5-93F2-46EB6D94C159}">
                    <PinToStart>
                        <Size>Medium</Size>
                        <Location>
                            <LocationX>2</LocationX>
                            <LocationY>2</LocationY>
                        </Location>
                    </PinToStart>
                </Application>
                <!-- Login App -->
                <Application productId="{C85DC60D-30D4-4C67-A4B4-58282F1D152C}" />
            </Apps>
            <Buttons />
            <CSPRunner>
                <SyncML xmlns="SYNCML:SYNCML1.2">
                    <SyncBody>
                        <Replace>
                            <CmdID>1</CmdID>
                            <Item>
                                <Target>
                                    <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/Theme/ThemeAccentColorID</LocURI>
                                </Target>
                                <Meta>
                                    <Format xmlns="syncml:metinf">int</Format>
                                </Meta>
                                <!-- zero based index of available theme colors -->
                                <Data>2</Data>
                            </Item>
                        </Replace>
                        <Final/>
                    </SyncBody>
                </SyncML>
                <SyncML xmlns="SYNCML:SYNCML1.2">
                    <SyncBody>
                        <Replace>
                            <CmdID>1</CmdID>
                            <Item>
                                <Target>
                                    <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/Theme/ThemeBackground</LocURI>
                                </Target>
                                <Meta>
                                    <Format xmlns="syncml:metinf">int</Format>
                                </Meta>
                                <!-- 0 for "light", 1 for "dark" -->
                                <Data>1</Data>
                            </Item>
                        </Replace>
                        <Final/>
                    </SyncBody>
                </SyncML>
                <SyncML xmlns="SYNCML:SYNCML1.2">
                    <SyncBody>
                        <Replace>
                            <CmdID>2</CmdID>
                            <Item>
                                <Target>
                                    <LocURI>./Vendor/MSFT/EnterpriseAssignedAccess/LockScreenWallpaper/BGFileName</LocURI>
                                </Target>
                                <Meta>
                                    <Format xmlns="syncml:metinf">chr</Format>
                                    <Type xmlns="syncml:metinf">text/plain</Type>
                                </Meta>
                                <Data>c:\windows\system32\lockscreen\480x800\Wallpaper_015.jpg</Data>
                            </Item>
                        </Replace>
                        <Final/>
                    </SyncBody>
                </SyncML>
            </CSPRunner>
            <MenuItems>
                <DisableMenuItems/>
            </MenuItems>
            <Settings>
                <!-- Allow all settings -->
            </Settings>
            <Tiles>
                <EnableTileManipulation/>
            </Tiles>
        </Role>
    </RoleList>
</HandheldLockdown>

Добавление XML блокировки в пакет подготовки

Используйте средство Windows ICD из комплекта средств для развертывания и оценки Windows (ADK) для Windows 10, чтобы создать пакет подготовки. Установите ADK.

  1. Следуйте инструкциям из раздела Сборка и применение пакета подготовки, чтобы создать проект, выбрав параметр Общий для всех выпусков Windows Mobile для вашего проекта.

  2. В разделе Доступные настройки выберите Параметры среды выполнения > EmbeddedLockdownProfiles > AssignedAccessXml.

  3. На центральной панели нажмите кнопку Обзор, чтобы найти и выбрать XML-файл блокировки, который вы создали.

    Кнопка «Обзор»

  4. В меню Файл выберите команду Сохранить.

  5. В меню Экспорт выберите пункт Пакет подготовки.

  6. Измените значение параметра Владелец на ИТ-администратор. В результате приоритет этого пакета подготовки будет выше, чем у пакетов, примененных к данному устройству из других источников. После этого нажмите кнопку Далее.

  7. Необязательно. В окне Безопасность пакета подготовки можно включить шифрование и подписывание пакета.

    • Включить шифрование пакета — при выборе этого пункта на экране отобразится автоматически созданный пароль.

    • Включить подписывание пакета — при выборе этого пункта необходимо выбрать действительный сертификат, который будет использоваться для подписания пакета. Вы можете указать сертификат, щелкнув Выбрать, а затем выбрав сертификат для подписания пакета.

  8. Нажмите кнопку Далее, чтобы указать расположение для выходных данных, куда нужно поместить пакет подготовки после сборки. По умолчанию Windows ICD использует папку проекта в качестве расположения для выходных данных.

    Вы также можете нажать Обзор, чтобы изменить расположение выходных данных по умолчанию.

  9. Нажмите кнопку Далее.

  10. Щелкните Выполнить сборку, чтобы начать сборку пакета. На выполнение сборки пакета подготовки уходит немного времени. Сведения о проекте отображаются на странице выполнения сборки, а индикатор выполнения указывает состояние сборки.

    Чтобы отменить построение, нажмите кнопку Отмена. Текущий процесс построения будет отменен, мастер закроется и вы вернетесь в раздел Страница настроек.

  11. В случае сбоя построения отобразится сообщение об ошибке со ссылкой на папку проекта. Вы можете просмотреть журналы, чтобы определить, что вызвало ошибку. После устранения проблемы попробуйте выполнить построение пакета еще раз.

    В случае успешного построения отобразятся пакет подготовки, выходной каталог и каталог проекта.

    • При желании вы можете выполнить построение пакета подготовки снова и выбрать другой путь для выходного пакета. Для этого щелкните Назад, чтобы изменить имя и путь выходного пакета, и нажмите кнопку Далее, чтобы начать другое построение.

    • По завершении нажмите кнопку Готово, чтобы закрыть мастер и вернуться на страницу настроек.

После сборки пакета подготовки следуйте инструкциям по применению пакета подготовки во время выполнения к Windows 10 Mobile.

Отправка XML-кода блокировки с помощью MDM

После развертывания устройств вы по-прежнему можете настраивать параметры блокировки с помощью решения MDM, если оно поддерживает EnterpriseAssignedAccess CSP.

Чтобы отправить параметры блокировки на зарегистрированные устройства, используйте параметр AssignedAccessXML, указав в качестве значения XML блокировки. XML-код блокировки будет находиться в разделе HandheldLockdown, который будет внедрен в XML, поэтому в вводимом XML необходимо использовать экранированные символы (например, &lt; вместо <). После того как поставщик MDM отправит параметры блокировки на устройство, CSP обработает файл и обновит устройство.

Связанные разделы

Параметры и быстрые действия, которые можно заблокировать в Windows 10 Mobile

Коды продукта в Windows 10 Mobile