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

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


shell_launcher_v1_win_10_iot_enterprise

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

shell_launcher_v1_win_10_iot_enterprise [2020/10/28 18:54] (текущий)
vladimir создано
Строка 1: Строка 1:
 +====== Shell Launcher V1 ======
 +**Информация в данном разделе актуальна для Windows 10: 1607, 1809.**\\
 +\\
 +"Shell Launcher V1" - средство запуска оболочки для запуска одного классического приложения вместо оболочки системы и контроля его работы. Основные возможности Shell Launcher'​а:​
 +  * Запуск определенного приложения для каждого пользователя или группы пользователей
 +  * Выполнение действия после завершения работы запущенного приложения:​ выключение,​ перезагрузка,​ перезапуск приложений
 +При совместной работе Shell Launcher'​а и [[+tab|оснастка_планировщик_заданий|планировщика заданий]] можно настроить:​
 +  * Запуск множества приложений с отдельным контролем работы каждого приложения
 +  * Запуск приложения от имени администратора
 +===== Настройка средства запуска оболочки =====
 +Для работы Shell Launcher'​а сначала необходимо [[+tab|добавление_компонентов_win_10_iot_enterprise|добавить его компонент]] в систему. Добавить компонент можно с помощью выполнения нижеуказанной команды,​ [[+tab|powershell|выполненной в среде]] с повышенными привилегиями.
 +<​code>​DISM /online /​Enable-Feature /all /​FeatureName:​Client-EmbeddedShellLauncher</​code>​
 +С настройками по умолчанию Shell Launcher будет запускать консоль вместо оболочки системы,​ поэтому перед включением его необходимо настроить. Его настройки находятся в ветке реестра "​HKLM\SOFTWARE\Microsoft\Windows Embedded\Shell Launcher"​. Рекомендуемые настройки - запуск стандартной оболочки системы по умолчанию и для группы "​Администраторы"​
 +<​code>​
 +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
 +</​code>​
 +Для применения вышеуказанных настроек вы можете ​
 +[[+tab|реестр_windows#​С помощью REG-файла|создать reg-файл]] с их содержимым и применить настройки reg-файла
 +двойным нажатием левой кнопки мыши.
 +В основном разделе "Shell Launcher"​ указывается приложение запускаемое по умолчанию,​ т.е. если не назначен запуск других приложений. Для настройки запуска приложения для конкретного пользователя или группы необходимо создать подраздел имя которого будет соответствовать
 +[[+tab|идентификатор_безопасности_win_10_iot_enterprise|SID'​у пользователя или группы]],​ как это показано в примере для группы "​Администраторы"​.\\
 +В значении "​Shell"​ указывается полный путь к запускаемому приложению.\\
 +В значении "​DefaultReturnCodeAction"​ указывается действие выполняемое при закрытии приложения:​
 +  * 0 - перезапуск приложения
 +  * 1 - перезагрузка системы
 +  * 2 - выключение системы
 +  * 3 - действий не требуется
 +После настройки Shell Launcher'​а его необходимо включить. Для включения достаточно заменить запуск оболочки на запуск средства запуска оболочки
 +<​code>​
 +Windows Registry Editor Version 5.00
 +
 +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
 +"​Shell"​="​eShell.exe"​
 +</​code>​
 +===== Расширение возможностей запуска приложения =====
 +==== Запуск приложения с повышенными привилегиями ====
 +Для запуска классического приложения с повышенными привилегиями вместо оболочки системы необходимо использовать совместную работу Shell Launcher’а и планировщика заданий. Роль Shell Launcher’а – отключения запуска стандартной оболочки системы,​ это можно сделать,​ указав «0» вместо запускаемого приложения,​ а в качестве кода действия необходимо указать «3» - действий не требуется.
 +==== Настройка планировщика заданий для запуска приложений ====
 +  - Откройте [[+tab|оснастка_планировщик_заданий|планировщик заданий]]
 +  - Нажмите правой кнопкой мыши на пункте "​Библиотека планировщика заданий"​
 +  - Выберите пункт "​Создать задачу"​
 +  - На вкладке "​Общие":​
 +    - Введите имя задачи в параметре "​Имя:"​
 +    - В секции "​Параметры безопасности":​
 +      - Выберите пользователя,​ для которого будет запускаться приложение
 +      - Установите флажок для значения «Выполнять с наивысшими правами»
 +  - На вкладке "​Триггеры"​ нажмите на кнопку "​Создать…"​
 +    - В появившемся окне "​Создание триггера":​
 +      - Для значения "​Начать задачу"​ выберите значение "​При входе в систему"​
 +      - В разделе "​Параметры"​ установите значение "​Пользователь"​ и выберите пользователя,​ для которого настраиваете запуск приложения
 +      - Для завершения настройки триггера нажмите "​ОК"​
 +  - На вкладке "​Действия"​ нажмите кнопку "​Создать…"​
 +    - В появившемся окне "​Создание действия":​
 +      - Вариант с использованием стандартных средств (будет временное появление консоли)
 +        - В поле "​Программа или сценарий"​ впишите "​cmd"​
 +        - В поле "​Добавить аргументы"​ добавьте строку <​code>/​c start /min powershell -windowstyle hidden -command "​While(1) {Start-Process $Program -Wait}"</​code>​
 +      - Вариант и использованием стороннего ПО (без отображения консоли)
 +        - Запустите от имени администратора утилиту "​[[+tab|https://​www.nirsoft.net/​utils/​nircmd.html|NirCmd]]",​ в окне утилиты нажмите на кнопку "Copy To Windows Directory"​ и подтвердите копирование утилиты "​[[+tab|https://​www.nirsoft.net/​utils/​nircmd.html|NirCmd]]"​ в папку "​Windows"​.
 +        - В поле "​Программа или сценарий"​ впишите "​nircmd"​
 +        - В поле "​Добавить аргументы"​ добавьте строку <​code>​exec hide powershell -command "​While(1) {Start-Process $Program -Wait}"</​code>​
 +      - Переменную "​$Program"​ замените полным путем к запускаемой программе. Для проверки уровня привилегий можно использовать скрипт,​ который находится в данном наборе "​Tools\TestRunAs.bat"​
 +      - Если при завершении работы программы необходимо перезагрузить или выключить систему,​ то после аргумента «-Wait» добавьте символ ";"​ и одну из команд ";​Restart-Computer –Force"​ или ";​Stop-Computer –Force"​ соответственно
 +  - На вкладке "​Условия"​ снимите все флажки
 +  - На вкладке "​Параметры"​ снимите флажок в пункте "​Останавливать задачу,​ выполняемую дольше:"​
 +  - Нажмите "​ОК"​ для завершения настройки задачи
 +При необходимости запустить приложение в полноэкранном режиме необходимо добавить параметры "​-WindowStyle Maximized"​
 +==== Запуск множества приложений с отдельным контролем работы ====
 +Для запуска множества приложений с отдельным контролем работы необходимо создать множество действий,​ которые описаны в предыдущем подразделе.\\
 +\\
 +Если для некоторых приложений не нужны повышенные привилегии,​ то для таких задач необходимо снять флажок "​Выполнять с наивысшими правами"​ на вкладке "​Общие"​.\\
 +\\
 +Если никакие приложения не требуют повышенных привилегий,​ то для повышения безопасности,​ необходимо чтобы пользователь,​ под которым будут выполнятся приложения,​ находился в группе "​Пользователи"​.
 +===== Проблемы и решения =====
 +==== Система не загружается после запечатывания в режиме OOBE ====
 +Если для группы "​Пользователи"​ - "​S-1-5-32-545"​ настроен запуск приложения,​ то система не пройдет шаг "​OOBE"​. На время прохождения шага "​OOBE"​ необходимо отключить Shell Launcher.
 +===== Официальная документация =====
 +  * [[+tab|https://​docs.microsoft.com/​en-us/​windows-hardware/​customize/​enterprise/​shell-launcher|Shell Launcher]]
 +  * [[+tab|https://​docs.microsoft.com/​en-us/​windows-hardware/​customize/​desktop/​unattend/​microsoft-windows-embedded-shelllauncher|Microsoft-Windows-Embedded-ShellLauncher]]
shell_launcher_v1_win_10_iot_enterprise.txt · Последние изменения: 2020/10/28 18:54 — vladimir