Инструменты пользователя

Инструменты сайта


Боковая панель

Главная страница


Часто задаваемые вопросы


Общие вопросы по Windows


Windows 10 IoT Enterprise


Windows 10 IoT Core


Windows Embedded Standard 8


Windows Embedded Standard 7


Windows Embedded POSReady


Windows Embedded Standard 2009


Windows XP Embedded


Windows Embedded Compact

shell_launcher_v1_win_10_iot_enterprise

Shell Launcher V1

Информация в данном разделе актуальна для Windows 10: 1607, 1809.

«Shell Launcher V1» - средство запуска оболочки для запуска одного классического приложения вместо оболочки системы и контроля его работы. Основные возможности Shell Launcher’а:

  • Запуск определенного приложения для каждого пользователя или группы пользователей
  • Выполнение действия после завершения работы запущенного приложения: выключение, перезагрузка, перезапуск приложений

При совместной работе Shell Launcher’а и планировщика заданий можно настроить:

  • Запуск множества приложений с отдельным контролем работы каждого приложения
  • Запуск приложения от имени администратора

Настройка средства запуска оболочки

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

DISM /online /Enable-Feature /all /FeatureName:Client-EmbeddedShellLauncher

С настройками по умолчанию Shell Launcher будет запускать консоль вместо оболочки системы, поэтому перед включением его необходимо настроить. Его настройки находятся в ветке реестра «HKLM\SOFTWARE\Microsoft\Windows Embedded\Shell Launcher». Рекомендуемые настройки - запуск стандартной оболочки системы по умолчанию и для группы «Администраторы»

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Embedded\Shell Launcher]
"Shell"="explorer.exe"
"DefaultReturnCodeAction"=dword:00000003

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Embedded\Shell Launcher\S-1-5-32-544]
"Shell"="explorer.exe"
"DefaultReturnCodeAction"=dword:00000003

Для применения вышеуказанных настроек вы можете создать reg-файл с их содержимым и применить настройки reg-файла двойным нажатием левой кнопки мыши. В основном разделе «Shell Launcher» указывается приложение запускаемое по умолчанию, т.е. если не назначен запуск других приложений. Для настройки запуска приложения для конкретного пользователя или группы необходимо создать подраздел имя которого будет соответствовать SID'у пользователя или группы, как это показано в примере для группы «Администраторы».
В значении «Shell» указывается полный путь к запускаемому приложению.
В значении «DefaultReturnCodeAction» указывается действие выполняемое при закрытии приложения:

  • 0 - перезапуск приложения
  • 1 - перезагрузка системы
  • 2 - выключение системы
  • 3 - действий не требуется

После настройки Shell Launcher’а его необходимо включить. Для включения достаточно заменить запуск оболочки на запуск средства запуска оболочки

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Shell"="eShell.exe"

Расширение возможностей запуска приложения

Запуск приложения с повышенными привилегиями

Для запуска классического приложения с повышенными привилегиями вместо оболочки системы необходимо использовать совместную работу Shell Launcher’а и планировщика заданий. Роль Shell Launcher’а – отключения запуска стандартной оболочки системы, это можно сделать, указав «0» вместо запускаемого приложения, а в качестве кода действия необходимо указать «3» - действий не требуется.

Настройка планировщика заданий для запуска приложений

  1. Нажмите правой кнопкой мыши на пункте «Библиотека планировщика заданий»
  2. Выберите пункт «Создать задачу»
  3. На вкладке «Общие»:
    1. Введите имя задачи в параметре «Имя:»
    2. В секции «Параметры безопасности»:
      1. Выберите пользователя, для которого будет запускаться приложение
      2. Установите флажок для значения «Выполнять с наивысшими правами»
  4. На вкладке «Триггеры» нажмите на кнопку «Создать…»
    1. В появившемся окне «Создание триггера»:
      1. Для значения «Начать задачу» выберите значение «При входе в систему»
      2. В разделе «Параметры» установите значение «Пользователь» и выберите пользователя, для которого настраиваете запуск приложения
      3. Для завершения настройки триггера нажмите «ОК»
  5. На вкладке «Действия» нажмите кнопку «Создать…»
    1. В появившемся окне «Создание действия»:
      1. Вариант с использованием стандартных средств (будет временное появление консоли)
        1. В поле «Программа или сценарий» впишите «cmd»
        2. В поле «Добавить аргументы» добавьте строку
          /c start /min powershell -windowstyle hidden -command "While(1) {Start-Process $Program -Wait}"
      2. Вариант и использованием стороннего ПО (без отображения консоли)
        1. Запустите от имени администратора утилиту «NirCmd», в окне утилиты нажмите на кнопку «Copy To Windows Directory» и подтвердите копирование утилиты «NirCmd» в папку «Windows».
        2. В поле «Программа или сценарий» впишите «nircmd»
        3. В поле «Добавить аргументы» добавьте строку
          exec hide powershell -command "While(1) {Start-Process $Program -Wait}"
      3. Переменную «$Program» замените полным путем к запускаемой программе. Для проверки уровня привилегий можно использовать скрипт, который находится в данном наборе «Tools\TestRunAs.bat»
      4. Если при завершении работы программы необходимо перезагрузить или выключить систему, то после аргумента «-Wait» добавьте символ «;» и одну из команд «;Restart-Computer –Force» или «;Stop-Computer –Force» соответственно
  6. На вкладке «Условия» снимите все флажки
  7. На вкладке «Параметры» снимите флажок в пункте «Останавливать задачу, выполняемую дольше:»
  8. Нажмите «ОК» для завершения настройки задачи

При необходимости запустить приложение в полноэкранном режиме необходимо добавить параметры «-WindowStyle Maximized»

Запуск множества приложений с отдельным контролем работы

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

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

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

Проблемы и решения

Система не загружается после запечатывания в режиме OOBE

Если для группы «Пользователи» - «S-1-5-32-545» настроен запуск приложения, то система не пройдет шаг «OOBE». На время прохождения шага «OOBE» необходимо отключить Shell Launcher.

Официальная документация

shell_launcher_v1_win_10_iot_enterprise.txt · Последние изменения: 2020/10/28 18:54 — vladimir