====== Shell Launcher V1 ====== **Информация в данном разделе актуальна для Windows 10: 1607, 1809.**\\ \\ "Shell Launcher V1" - средство запуска оболочки для запуска одного классического приложения вместо оболочки системы и контроля его работы. Основные возможности Shell Launcher'а: * Запуск определенного приложения для каждого пользователя или группы пользователей * Выполнение действия после завершения работы запущенного приложения: выключение, перезагрузка, перезапуск приложений При совместной работе Shell Launcher'а и [[+tab|оснастка_планировщик_заданий|планировщика заданий]] можно настроить: * Запуск множества приложений с отдельным контролем работы каждого приложения * Запуск приложения от имени администратора ===== Настройка средства запуска оболочки ===== Для работы Shell Launcher'а сначала необходимо [[+tab|добавление_компонентов_win_10_iot_enterprise|добавить его компонент]] в систему. Добавить компонент можно с помощью выполнения нижеуказанной команды, [[+tab|powershell|выполненной в среде]] с повышенными привилегиями. 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 Для применения вышеуказанных настроек вы можете [[+tab|реестр_windows#С помощью REG-файла|создать reg-файл]] с их содержимым и применить настройки reg-файла двойным нажатием левой кнопки мыши. В основном разделе "Shell Launcher" указывается приложение запускаемое по умолчанию, т.е. если не назначен запуск других приложений. Для настройки запуска приложения для конкретного пользователя или группы необходимо создать подраздел имя которого будет соответствовать [[+tab|идентификатор_безопасности_win_10_iot_enterprise|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» - действий не требуется. ==== Настройка планировщика заданий для запуска приложений ==== - Откройте [[+tab|оснастка_планировщик_заданий|планировщик заданий]] - Нажмите правой кнопкой мыши на пункте "Библиотека планировщика заданий" - Выберите пункт "Создать задачу" - На вкладке "Общие": - Введите имя задачи в параметре "Имя:" - В секции "Параметры безопасности": - Выберите пользователя, для которого будет запускаться приложение - Установите флажок для значения «Выполнять с наивысшими правами» - На вкладке "Триггеры" нажмите на кнопку "Создать…" - В появившемся окне "Создание триггера": - Для значения "Начать задачу" выберите значение "При входе в систему" - В разделе "Параметры" установите значение "Пользователь" и выберите пользователя, для которого настраиваете запуск приложения - Для завершения настройки триггера нажмите "ОК" - На вкладке "Действия" нажмите кнопку "Создать…" - В появившемся окне "Создание действия": - Вариант с использованием стандартных средств (будет временное появление консоли) - В поле "Программа или сценарий" впишите "cmd" - В поле "Добавить аргументы" добавьте строку /c start /min powershell -windowstyle hidden -command "While(1) {Start-Process $Program -Wait}" - Вариант и использованием стороннего ПО (без отображения консоли) - Запустите от имени администратора утилиту "[[+tab|https://www.nirsoft.net/utils/nircmd.html|NirCmd]]", в окне утилиты нажмите на кнопку "Copy To Windows Directory" и подтвердите копирование утилиты "[[+tab|https://www.nirsoft.net/utils/nircmd.html|NirCmd]]" в папку "Windows". - В поле "Программа или сценарий" впишите "nircmd" - В поле "Добавить аргументы" добавьте строку exec hide powershell -command "While(1) {Start-Process $Program -Wait}" - Переменную "$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]]