Вызов приложения оболочки Windows 10, что это такое

Обновлено: 18.05.2024

В разделе Создание устройства блокировки — часть 1 — (фильтр клавиатуры) мы представляем функцию блокировки устройства Windows. Одной из функций блокировки устройства является Shell Launcher. Требование такое же, как и для фильтра клавиатуры, вам потребуется Windows 10 Корпоративная или Windows 10 для образовательных учреждений

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

Вернёмся к тому, почему я вообще хочу использовать Shell Launcher. Как вы знаете, в Европе у нас есть регулирование GDPR, я считаю необходимым иметь полноэкранное «всплывающее окно», чтобы сообщать людям о командах, использующих это устройство, когда пользователь входит в систему киоска. Или, может быть, есть сценарий, в котором вы разрешаете пользователю использовать только одно приложение в этом киоске, и вы хотите, чтобы приложение снова перезапускалось, если пользователь закрывает это приложение. В этом случае очень полезная функция Shell Launcher.

Средство запуска оболочки не является запускаемым приложением, при использовании средства запуска оболочки для запуска приложения это приложение является единственным приложением, которое вы увидите при входе в Windows, вы не сможете получить доступ к рабочему столу или чему-либо еще.

Это важные примечания из официальных документов Microsoft, я также цитирую их здесь:

Есть несколько исключений для приложений и исполняемых файлов, которые можно использовать в качестве пользовательской оболочки:

  • Вы не можете использовать следующий исполняемый файл в качестве пользовательской оболочки: C:\\Windows\\System32\\Eshell.exe. Использование Eshell.exe в качестве оболочки по умолчанию приведет к пустому экрану после входа пользователя в систему.
  • Вы не можете использовать универсальное приложение для Windows в качестве настраиваемой оболочки.
  • Вы не можете использовать пользовательскую оболочку для запуска универсальных приложений Windows, например приложения "Параметры".
  • Вы не можете использовать приложение, которое запускает другой процесс и завершает работу как настраиваемая оболочка. Например, вы не можете указать write.exe в средстве запуска оболочки. Shell Launcher запускает пользовательскую оболочку и отслеживает процесс, чтобы определить, когда пользовательская оболочка выходит. Write.exe создает 32-разрядный процесс wordpad.exe и завершает работу. Поскольку Shell Launcher не знает о вновь созданном процессе wordpad.exe, Shell Launcher выполнит действие на основе кода выхода Write.exe и перезапустит пользовательскую оболочку.
  • Вы не можете одновременно настроить Shell Launcher и назначенный доступ в одной и той же системе.

Сначала нам нужно включить функцию запуска оболочки, она не требует перезагрузки. Вот пример PowerShell:

Вот пример: я настраиваю оболочку по умолчанию — explorer.exe, так что по умолчанию пользователи будут видеть обычный рабочий стол при входе в Windows 10. Затем я настраиваю Internet Explorer как пользовательскую оболочку для локального имени пользователя «KioskUser». запустите Internet Explorer, когда пользователь «KioskUser» войдет в систему Windows, и он перезапустит Internet Explorer, если пользователь закроет его.

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

С помощью Shell Launcher можно настроить киоск для запуска рабочего стола Windows или универсального приложения Windows в качестве пользовательского интерфейса. Указанное приложение заменяет оболочку по умолчанию (explorer.exe), которая обычно запускается при входе пользователя в систему. Этот тип киоска с одним приложением не работает поверх экрана блокировки.

Методы управления доступом к другим настольным приложениям и системным компонентам можно использовать в дополнение к использованию средства запуска оболочки, например, групповая политика, AppLocker и управление мобильными устройствами

В Shell Launcher v1, доступном в Windows 10, в качестве замещающей оболочки можно указать только настольное приложение Windows. В Shell Launcher v2, доступном в Windows 10 версии 1809 и более поздних, вы также можете указать приложение UWP в качестве замещающей оболочки.

Чтобы использовать Shell Launcher v2 в версии 1809, необходимо установить обновление KB4551853.

Различия между Shell Launcher v1 и Shell Launcher v2

Shell Launcher v1 заменяет explorer.exe, оболочку по умолчанию, на eshell.exe, который может запускать настольное приложение Windows.

Shell Launcher v2 заменяет explorer.exe на customshellhost.exe . Этот новый исполняемый файл может запускать настольное приложение Windows или приложение UWP.

Помимо того, что вы можете использовать приложение UWP в качестве замены оболочки, Shell Launcher v2 предлагает дополнительные улучшения:

  • Вы можете использовать пользовательское настольное приложение Windows, которое затем может запускать приложения UWP, такие как "Настройки" и "Сенсорная клавиатура".
  • Из настраиваемой оболочки UWP вы можете запускать дополнительные представления и работать на нескольких мониторах.
  • Пользовательское приложение-оболочка работает в полноэкранном режиме и может запускать другие приложения в полноэкранном режиме по требованию пользователя.Примеры конфигураций XML для различных комбинаций приложений см. в разделе Примеры для Shell Launcher v2.

Включить средство запуска оболочки

Shell Launcher является необязательным компонентом и не включен по умолчанию в Windows 10. Его необходимо включить перед настройкой. Вы можете включить и настроить Shell Launcher в пользовательском образе Windows 10 (.wim), если Microsoft Windows не была установлена. Если Windows уже установлена ​​и вы применяете пакет подготовки для настройки средства запуска оболочки, необходимо сначала включить средство запуска оболочки, чтобы пакет обеспечения успешно применялся.

С помощью Shell Launcher можно настроить устройство, на котором запущено приложение, в качестве пользовательского интерфейса, заменив оболочку по умолчанию (explorer.exe). В Shell Launcher v1, доступном в клиенте Windows, вы можете указать только настольное приложение Windows в качестве замещающей оболочки. В Shell Launcher v2, доступном в Windows 10 версии 1809+/Windows 11, вы также можете указать приложение UWP в качестве замены оболочки. Чтобы использовать Shell Launcher v2 в Windows 10 версии 1809, необходимо установить обновление KB4551853.

Shell Launcher определяет, какое приложение пользователь увидит в качестве оболочки после входа в систему. Это не мешает пользователю получать доступ к другим настольным приложениям и системным компонентам.

Методы управления доступом к другим настольным приложениям и системным компонентам можно использовать в дополнение к использованию Shell Launcher. Эти методы включают, но не ограничиваются:

    - пример: Запретить доступ к инструментам редактирования реестра - Политики контроля приложений - Корпоративное управление политиками безопасности устройств

Вы можете применить пользовательскую оболочку через средство запуска оболочки с помощью PowerShell. Начиная с Windows 10 версии 1803+, вы также можете использовать управление мобильными устройствами (MDM) для применения пользовательской оболочки через средство запуска оболочки.

Различия между Shell Launcher v1 и Shell Launcher v2

Shell Launcher v1 заменяет explorer.exe, оболочку по умолчанию, на eshell.exe, который может запускать настольное приложение Windows.

Shell Launcher v2 заменяет explorer.exe на customshellhost.exe . Этот новый исполняемый файл может запускать настольное приложение Windows или приложение UWP.

Помимо того, что вы можете использовать приложение UWP в качестве замены оболочки, Shell Launcher v2 предлагает дополнительные улучшения:

  • Вы можете использовать пользовательское настольное приложение Windows, которое затем может запускать приложения UWP, такие как "Настройки" и "Сенсорная клавиатура".
  • Из настраиваемой оболочки UWP вы можете запускать дополнительные представления и работать на нескольких мониторах.
  • Приложение пользовательской оболочки работает в полноэкранном режиме и может запускать другие приложения в полноэкранном режиме по запросу пользователя.

Примеры XML-конфигураций для различных комбинаций приложений см. в разделе Примеры для Shell Launcher v2.

Требования

Windows 10 не поддерживает настройку пользовательской оболочки до OOBE. В противном случае вы не сможете развернуть полученный образ.

Shell Launcher не поддерживает пользовательскую оболочку с приложением, которое запускает другой процесс и завершает работу. Например, вы не можете указать write.exe в средстве запуска оболочки. Shell Launcher запускает пользовательскую оболочку и отслеживает процесс, чтобы определить, когда пользовательская оболочка выходит. Write.exe создает 32-разрядный процесс wordpad.exe и завершает работу. Поскольку Shell Launcher не знает о вновь созданном процессе wordpad.exe, Shell Launcher выполнит действие на основе кода выхода Write.exe, например перезапустит пользовательскую оболочку.

Домен, Azure Active Directory или локальная учетная запись пользователя.

Приложение Windows, установленное для этой учетной записи. Это может быть ваше собственное корпоративное приложение или обычное приложение, такое как Internet Explorer.

Включить функцию запуска оболочки

Чтобы установить пользовательскую оболочку, сначала включите функцию запуска оболочки, а затем вы можете установить свою собственную оболочку по умолчанию с помощью PowerShell или MDM.

Чтобы включить Shell Launcher в функциях Windows

Выберите Панель управления > Программы и компоненты > Включение или отключение компонентов Windows.

Развернуть блокировку устройства.

Выберите Средство запуска оболочки и нажмите кнопку ОК.

Кроме того, вы можете включить средство запуска оболочки с помощью конструктора конфигураций Windows в пакете подготовки, используя SMISettings > ShellLauncher, или вы можете использовать средство обслуживания образов развертывания и управления ими (DISM.exe).

Чтобы включить Shell Launcher с помощью DISM

Откройте командную строку от имени администратора.

Введите следующую команду.

Настроить пользовательскую оболочку в MDM

Вы можете использовать XML и пользовательский параметр OMA-URI для настройки Shell Launcher в MDM.

XML для конфигурации Shell Launcher

Следующий образец XML работает для Shell Launcher v1:

Для Shell Launcher v2 вы можете использовать тип приложения UWP для Shell, указав пространство имен v2 и используя v2:AppType, чтобы указать тип, как показано в следующем примере. Если v2:AppType не указан, это означает, что оболочка является приложением Win32.

В XML для Shell Launcher v2 обратите внимание на атрибут AllAppsFullScreen. Если установлено значение True, Shell Launcher будет запускать каждое приложение в полноэкранном режиме или развернуто для настольных приложений. Если для этого атрибута задано значение False или он не установлен, в полноэкранном режиме запускается только пользовательское приложение оболочки; другие приложения, запущенные пользователем, будут работать в оконном режиме.

Пользовательская настройка OMA-URI

В службе MDM вы можете создать собственный параметр OMA-URI для настройки Shell Launcher v1 или v2. (От XML-кода, который вы используете для настройки, будет зависеть, применяете ли вы Shell Launcher v1 или v2.)

Путь OMA-URI: ./Device/Vendor/MSFT/AssignedAccess/ShellLauncher .

В качестве значения можно выбрать тип данных String и вставить желаемое содержимое файла конфигурации в поле значения. Если вы хотите загрузить XML-файл вместо вставки содержимого, выберите тип данных String (XML-файл) .

Снимок экрана пользовательского OMA -Настройки URI.

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

Настройка пользовательской оболочки с помощью PowerShell

Для Shell Launcher v1 измените следующий сценарий PowerShell соответствующим образом. Комментарии в образце сценария объясняют назначение каждого раздела и сообщают, где вы хотите изменить сценарий для своих целей. Сохраните сценарий с расширением .ps1, откройте Windows PowerShell от имени администратора и запустите сценарий на киоске.

действие по умолчанию, пользовательское действие, код выхода

Средство запуска оболочки определяет 4 действия для обработки выхода из приложения. Вы можете настроить средство запуска оболочки и использовать эти действия на основе другого кода выхода.

Значение Описание
0 Перезапустите оболочку
1 Перезагрузите устройство
2 Выключить устройство
3 Ничего не делать

Это действие можно использовать как действие по умолчанию или сопоставить с определенным кодом выхода. Обратитесь к Shell Launcher, чтобы увидеть, как эти коды работают с Shell Launcher WMI.

Многие сценарии устройств IoT требуют индивидуального взаимодействия с пользователем. Это можно сделать либо путем автоматического запуска приложения при запуске Windows, либо с помощью пользовательской оболочки. Использование настраиваемой оболочки позволяет OEM-производителю создать контролируемый пользовательский интерфейс, в котором пользовательский интерфейс Windows скрыт, а основное внимание уделяется OEM-приложению.

В Windows 10 IoT Корпоративная есть две настраиваемые функции оболочки, обеспечивающие такой индивидуальный пользовательский интерфейс.

Shell Launcher позволяет OEM-производителям устанавливать классическое приложение, отличное от UWP, в качестве системной оболочки. Преимуществом использования Shell Launcher является возможность предоставления настраиваемых действий на основе кода выхода OEM-приложения. Например, если приложение OEM закрывается с определенным кодом выхода, систему можно настроить на автоматический перезапуск приложения, перезагрузку или выключение устройства и т. д.

Назначенный доступ позволяет OEM-производителям устанавливать приложение UWP в качестве системной оболочки. Подобно Shell Launcher, ограниченный доступ может автоматически перезапускать приложение, когда оно закрыто, сохраняя устройство в предполагаемом пользовательском интерфейсе.

Для полностью автоматизированного подхода к включению этих функций рассмотрите возможность использования среды развертывания Windows 10 IoT Enterprise.

Предпосылки

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

Завершите процесс OOBE на устройстве IoT

В лабораторной работе 4 мы использовали Sysprep, чтобы подготовить систему к захвату и развертыванию. В следующих шагах предполагается, что вы используете образ из лабораторной работы 4. Эти шаги по-прежнему будут работать в системе, которая не была подготовлена ​​Sysprep, но опыт OOBE уже будет завершен.

Завершить процесс OOBE в эталонной системе

Включите эталонное устройство IoT и загрузитесь с раздела ОС. ОС находилась в состоянии Sysprep, и должен начаться OOBE.

Завершите процедуру OOBE. Выберите настройки, соответствующие требованиям вашего устройства.

Опыт OOBE можно полностью автоматизировать с помощью файла ответов вместе с Sysprep, чтобы заранее ответить на вопросы OOBE. Дополнительные сведения см. в примерах файлов ответов в среде развертывания Windows 10 IoT Enterprise.

Включить и настроить средство запуска оболочки

Включить средство запуска оболочки

После загрузки устройства на рабочий стол включите средство запуска оболочки. Из административной командной строки:

Настройка Shell Launcher для запуска OEM-приложения

При включенном средстве запуска оболочки вы можете установить приложение в качестве оболочки Windows. Ниже мы покажем вам, как использовать notepad.exe в качестве оболочки для текущего пользователя. На вашем устройстве вы будете использовать другое приложение вместо Блокнота.exe, чтобы настроить систему на использование OEM-приложения в качестве оболочки, но шаги те же. Дополнительные сведения см. в разделе Средство запуска Shell.

Чтобы установить Notepad.exe в качестве пользовательской оболочки:

Из запуска PowerShell:

Перезагрузите эталонное устройство IoT. Когда система перезагрузится, приложение «Блокнот» запустится как системная оболочка по умолчанию.

Включить и настроить ограниченный доступ

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

Подробнее о требованиях к приложению UWP для ограниченного доступа см. в статье Создание киоск-приложения для ограниченного доступа.

Загрузить приложение UWP и настроить ограниченный доступ для его запуска

В ходе этого практического занятия вы добавите приложение UWP в свой образ, загрузив его в систему. Для рабочих сценариев следуйте инструкциям по развертыванию подписанных приложений UWP.

Скомпилируйте приложение UWP и создайте пакет APPX, следуя инструкциям в разделе Упаковка приложений UWP.

Загрузите неопубликованное приложение UWP, следуя инструкциям в разделе Загрузка неопубликованного пакета приложения

Выполните действия, описанные в разделе Настройка киоска с помощью Windows PowerShell, чтобы завершить процесс.

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

.

Читайте также: