- Графическая оболочка X-Windows System.
- Использование средства запуска оболочки для создания терминала на базе Windows 10 Use Shell Launcher to create a Windows 10 kiosk
- Различия между shell Launcher v1 и Shell Launcher v2 Differences between Shell Launcher v1 and Shell Launcher v2
- Требования Requirements
- Включить функцию запуска shell Enable Shell Launcher feature
- Настройка настраиваемой оболочки в MDM Configure a custom shell in MDM
- Конфигурация XML для запуска shell XML for Shell Launcher configuration
- Настраиваемый параметр OMA-URI Custom OMA-URI setting
- Настройка настраиваемой оболочки с помощью PowerShell Configure a custom shell using PowerShell
- действие по умолчанию, настраиваемые действия, код выхода default action, custom action, exit code
Графическая оболочка X-Windows System.
В начале немного истории . Представим, что нам нужно написать программу, которая будет работать в графическом режиме. Нам потребуется: опрашивать клавиатуру, снимать события и координаты мыши, рисовать на экране.
Как это делалось на MS-DOSе? Очень просто. Пишем одну большую программу, в ней — все: и логика, и обработка событий, и слежение за перемещениями мыши, ну а когда требуется что-то нарисовать, мы даем команду на запись в порты EGA контроллера, рисуем пиксель… Через год появляется контроллер VGA, еще через год SVGA 800×600, 16 цветов, вслед за ним UVGA 1024×768, 256 цветов, затем XGA 1280×1024, 16Мб цветов…
Основная идея X Windows.
Есть две независимые программы. Одна из них ,умеет рисовать на графическом мониторе, и обслуживать все это железо. И называется она X-сервер. Вторая программа — клиент X Windows, рисовать физически не умеет. Но она знает, что именно надо рисовать, и умеет командовать. Команды типа: «нарисовать прямоугольник», «провести линию», «открыть окно», «вывести символ в заданном фонте», «опросить координаты мыши», и т.п. передаются X-серверу, а тот их исполняет — рисует. Формат и спецификации этих команд опубликованы,стандартизованы, и широко известны. Все вместе они называются «Протокол X Windows«.
Итак :
X-сервер. Программа, которая написана специально под конкретное физическое устройство (имеется в виду — монитор, графконтроллер, мышь и клавиатура), умеет на нем рисовать, и умеет понимать команды рисования по протоколу X Windows System.
X-клиент . Прикладная программа, обеспечивающая графический интерфейс с пользователем. Команды для рисования на экране передает X серверу по протоколу X Windows System.
X-терминал . Ящик (монитор, графконтроллер, мышь, клавиатура, ну и, естественно, процессор и оперативная память), на котором запущена программа X-сервер.
X-терминалом может служить самая обыкновенная графическая Unix-рабочая станция, на которой X сервер выполняется, как одна из многих прикладных задач.
Специализированный X-terminal — ящик, на котором запускается только X сервер, и ничего кроме. Можно использовать PC под MS-DOSом, на котором запущена DOSовская программа, реализующая X сервер.
Xlib — библиотека C-ишных функций, реализующих протокол X Windows System. С помощью этой библиотеки можно писать графические программы — X-клиенты.
Что из этого получаеться.
Мы получаем универсальный GAPI — (Graphical Application Programming Interface) — средство программирования графических приложений. Пользовательские графические программы при этом полностью отвязаны от железа, от конкретного графконтроллера.О железе пусть беспокоится X-сервер. Протокол X Windows умеет «ездить» по сети: например по TCP/IP, или по DEC-net. Поэтому X сервер может крутиться на одной машине, а X-клиент — на другой. То есть, картинка рисуется на одной машине, а программа, которая ее обеспечивает — крутится на другой.
X-сервер способен обслуживать сразу много клиентов, причем всех — одновременно.
На нашем графическом экране может быть открыто сразу много окон — каждое окно порождается его собственным X клиентом. Клиенты эти могут быть запущены и на нашей машине (к которой подключена графическая подсистема), и на удаленных машинах, соединенных с нами по сети.
Чего нам это стоит .
Понятно чего. Ресурсов. X Windows очень любит ресурсы — память, процессор, диск.Способен съесть их в неограниченных количествах. А еще ведь надо программировать. (К счастью, не всем надо). Кто видел, как выглядят программы для MS Windows или Mac, может представить себе внешний вид исходных текстов X-овой программы.
Как это запускается.
Пусть в нашей сети есть машина с графической подсистемой и X сервером, и сетевой адрес этой машины pcat107.foms.msk.ru на pcat107 нужно выполнить команду:
xhost + # разрешить X-овым программам с ЛЮБОЙ машины # рисовать на экране машины pcat107Запускаем на нашем компьютере X-овую программу, так, чтобы ее окошко рисовалось на мониторе pcat107. Для этого на нашем компьютере нужно выполнить команду:
xterm -display pcat107:0.0 &Библиотеки, Motif, и война круглых и квадратных кнопок.
Можно писать X-овые программы, используя библиотеку Xlib. Многие так и пишут, хотя это весьма тяжело — уж больно невысок уровень Xlib’а. В помощь программистам было создано несколько toolkit’ов — библиотек более высокого уровня, в которых реализованы различные widget’ы. Widget — непереводимый термин X Windows. Склеен из двух слов — Window и Gadget (приспособление), является графическим объектом с привязанными к нему свойствами и реакциями на действия пользователя. Примеры widgetow: «кнопка», «менюшка», «окошко с текстом»,
«линейка прокрутки»,…
Известны следующие toolkit’ы:
Xaw — Anthena Widgets. Очень черно-белый, очень плоский, весьма небогатый.
Зато — бесплатный. Посмотрите, как выглядят программы xterm, xedit, xman.
Они сделаны на Xaw.
xview — Набор библиотек и объектов, использованных в реализации набора пользовательских утилит Sun-овской версии X Windows — «Open Windows».
Весьма симпатично.Круглые кнопки, «шприцы-иголки» (замечательная вещь!),очень хорошо продуманный интерфейс пользователя, в том числе активно используемая трех-кнопочная мышь. Исходные тексты библиотек xview открыты, предоставляются бесплатно. Однако набор DeskSet — 15 пользовательских утилит входящих в OpenWindows, сделанный на библиотеке xview, SunSoft готов предоставить только за плату. В бинарном виде — весьма дешево ($100). В исходных текстах — весьма дорого ($200K)
Motif — Библиотека поставляются организацией OSF за не совсем маленькую плату. Исходные тексты библиотек недоступны, либо чрезмерно дороги. Кнопки — квадратные, да и вообще Motif’овские приложения до безобразия напоминают MS Windows (что, IMHO, является серьезным преступлением)
В борьбе BSD и Unix V победил, как известно, System V, а в войне круглых и квадратных кнопок выиграл Motif.
Конфигурирование X Windows
В Linux используется X11 в реализации XFree86. Чтобы его сконфигурировать,выполните команду xf86config
Запуск X Windows.
На некоторых машинах он сам запускается. А также иногда удается запустить его вручную командами: startx и/или openwin Solaris:
Установите переменные окружения:
2.OPENWINHOME=/usr/openwin export OPENWINHOME3. LD_LIBRARY_PATH=/usr/openwin/lib export LD_LIBRARY_PATH4. PATH=/usr/openwin/bin:$PATH export PATH5. XAPPLERESDIR=/usr/openwin/lib/app-defaults export XAPPLERESDIRЗапустите X Windows командой openwin
«Нормальные» Unix’ы:
Установите переменные окружения:
2.PATH=/usr/bin/X11:$PATH3. XAPPLERESDIR=/usr/lib/X11/app-defaultsЗапустите X Windows командой startx
«Ненормальные» Unix’ы (Unixware).
Когда регистрируете пользователя, ответьте Yes на вопрос «Хотите графический DeskTop». Тогда после login’а X Windows будет запускаться автоматически. Если вы прозевали, и ответили No, то никаким осмысленным способом запустить X Windows для себя вам не удастся.
Настройки пользовательского окружения X Windows
При наличии пользовательских настроечных файлов, лежащих в домашнем каталоге пользователя, используются они. Если их нет, используются стандартные,общественные, обычно лежащие в каталоге /usr/lib/X11 или /usr/openwin/lib .
Использование средства запуска оболочки для создания терминала на базе Windows 10 Use Shell Launcher to create a Windows 10 kiosk
Относится к: Applies to
- Windows 10 Ent, Edu Windows 10 Ent, Edu
С помощью оболочки Launcher можно настроить устройство, которое запускает приложение в качестве пользовательского интерфейса, заменив оболочку по умолчанию (explorer.exe). Using Shell Launcher, you can configure a device that runs an application as the user interface, replacing the default shell (explorer.exe). В shell Launcher v1, доступном в Windows 10, можно указать только настольное приложение Windows в качестве оболочки замены. In Shell Launcher v1, available in Windows 10, you can only specify a Windows desktop application as the replacement shell. В windows10 версии 1809 и выше в версии 1809 можно также указать приложение UWP в качестве оболочки замены. In Shell Launcher v2, available in Windows 10, version 1809 and above, you can also specify a UWP app as the replacement shell. Чтобы использовать shell Launcher v2 в версии 1809, необходимо установить обновление KB4551853. To use Shell Launcher v2 in version 1809, you need to install the KB4551853 update.
Shell Launcher управляет приложением, которое пользователь видит в качестве оболочки после входной записи. Shell Launcher controls which application the user sees as the shell after sign-in. Это не мешает пользователю получать доступ к другим настольным приложениям и системным компонентам. It does not prevent the user from accessing other desktop applications and system components.
Методы управления доступом к другим настольным приложениям и системным компонентам можно использовать в дополнение к использованию ракеты-носителя. Methods of controlling access to other desktop applications and system components can be used in addition to using the Shell Launcher. Эти методы включают, но не ограничиваются: These methods include, but are not limited to:
- Групповой политики — пример: предотвращение доступа к средствам редактирования реестра Group Policy — example: Prevent access to registry editing tools
- AppLocker — политики управления приложениями AppLocker — Application control policies
- Управление мобильными устройствами — управление корпоративными политиками безопасности устройств Mobile Device Management — Enterprise management of device security policies
Настраиваемую оболочку можно применить через shell Launcher с помощью PowerShell. You can apply a custom shell through Shell Launcher by using PowerShell. В Windows 10 версии 1803 и более поздней версии можно также использовать управление мобильными устройствами (MDM) для применения настраиваемой оболочки через Shell Launcher. In Windows 10, version 1803 and later, you can also use mobile device management (MDM) to apply a custom shell through Shell Launcher.
Различия между shell Launcher v1 и Shell Launcher v2 Differences between Shell Launcher v1 and Shell Launcher v2
Shell Launcher v1 заменяет оболочку по умолчанию, с помощью которой можно explorer.exe eshell.exe запустить настольное приложение Windows. Shell Launcher v1 replaces explorer.exe , the default shell, with eshell.exe which can launch a Windows desktop application.
Shell Launcher v2 explorer.exe заменяется customshellhost.exe . Shell Launcher v2 replaces explorer.exe with customshellhost.exe . Этот новый исполняемый файл может запустить настольное приложение Windows или приложение UWP. This new executable file can launch a Windows desktop application or a UWP app.
В дополнение к использованию приложения UWP для вашей оболочки замены, Shell Launcher v2 предлагает дополнительные улучшения: In addition to allowing you to use a UWP app for your replacement shell, Shell Launcher v2 offers additional enhancements:
- Вы можете использовать настраиваемые приложения для рабочего стола Windows, которые затем могут запускать приложения UWP, такие как Параметры и сенсорная клавиатура. You can use a custom Windows desktop application that can then launch UWP apps, such as Settings and Touch Keyboard.
- Из пользовательской оболочки UWP можно запускать вторичные представления и запускать на нескольких мониторах. From a custom UWP shell, you can launch secondary views and run on multiple monitors.
- Настраиваемая оболочка приложения выполняется на полном экране и может запускать другие приложения на полном экране по требованию пользователя. The custom shell app runs in full screen, and can run other apps in full screen on user’s demand.
Примеры конфигураций XML для различных комбинаций приложений см. в примере Примеры для shell Launcher v2. For sample XML configurations for the different app combinations, see Samples for Shell Launcher v2.
Требования Requirements
Windows 10 не поддерживает настройку пользовательскую оболочку до запуска при первом включении компьютера. Windows 10 doesn’t support setting a custom shell prior to OOBE. Если вы поддерживаете эту функцию, вы не сможете развернуть полученный образ. If you do, you won’t be able to deploy the resulting image.
Средства запуска оболочки не поддерживают пользовательскую оболочку с приложением, которое запускает другой процесс и затем завершает работу. Shell Launcher doesn’t support a custom shell with an application that launches a different process and exits. Например, нельзя указать write.exe в средстве запуска оболочки. For example, you cannot specify write.exe in Shell Launcher. Средство запуска оболочки запускает пользовательскую оболочку и отслеживает процесс для идентификации завершения работы пользовательской оболочки. Shell Launcher launches a custom shell and monitors the process to identify when the custom shell exits. Write.exe создает 32-разрядный процесс wordpad.exe и завершает работу. Write.exe creates a 32-bit wordpad.exe process and exits. Поскольку средство запуска оболочки не распознает созданный процесс wordpad.exe, средство запуска оболочки будет действовать в соответствии с кодом завершения Write.exe, например перезапуск пользовательской оболочки. Because Shell Launcher is not aware of the newly created wordpad.exe process, Shell Launcher will take action based on the exit code of Write.exe, such as restarting the custom shell.
Домен, Azure Active Directory или учетная запись локального пользователя. A domain, Azure Active Directory, or local user account.
Приложение Windows, установленное для этой учетной записи. A Windows application that is installed for that account. Можно использовать собственное приложение вашей компании или стандартное приложение типа Internet Explorer. The app can be your own company application or a common app like Internet Explorer.
Включить функцию запуска shell Enable Shell Launcher feature
Чтобы настроить настраиваемую оболочку, сначала включите функцию Запуска оболочки, а затем можно настроить настраиваемую оболочку в качестве настраиваемой оболочки по умолчанию с помощью PowerShell или MDM. To set a custom shell, you first turn on the Shell Launcher feature, and then you can set your custom shell as the default using PowerShell or MDM.
Включение средства запуска оболочки в компонентах Windows To turn on Shell Launcher in Windows features
Откройте «Панель управления» > Программы и компоненты > Включение или отключение компонентов Windows. Go to Control Panel > Programs and features > Turn Windows features on or off.
Разверните узел Блокировка устройств. Expand Device Lockdown.
Выберите Средство запуска оболочки и нажмите кнопку ОК. Select Shell Launcher and OK.
Кроме того, вы можете включить запуск оболочки с помощью конструктора конфигурации Windows в пакете подготовка, с помощью средства обслуживания и управления изображениями развертывания SMISettings > ShellLauncher (DISM.exe). Alternatively, you can turn on Shell Launcher using Windows Configuration Designer in a provisioning package, using SMISettings > ShellLauncher , or you can use the Deployment Image Servicing and Management (DISM.exe) tool.
Включение средства запуска оболочки с помощью DISM To turn on Shell Launcher using DISM
Откройте окно командной строки от имени администратора. Open a command prompt as an administrator.
Введите следующую команду. Enter the following command.
Настройка настраиваемой оболочки в MDM Configure a custom shell in MDM
Для настройки запуска shell в MDM можно использовать XML и настраиваемый параметр OMA-URI. You can use XML and a custom OMA-URI setting to configure Shell Launcher in MDM.
Конфигурация XML для запуска shell XML for Shell Launcher configuration
Следующий пример XML работает для Shell Launcher v1: The following XML sample works for Shell Launcher v1:
Для shell Launcher v2можно использовать тип приложения UWP, указав пространство имен v2, и указать тип, как показано в Shell следующем v2:AppType примере. For Shell Launcher v2, you can use UWP app type for Shell by specifying the v2 namespace, and use v2:AppType to specify the type, as shown in the following example. Если v2:AppType не указано, это означает, что оболочка — это приложение Win32. If v2:AppType is not specified, it implies the shell is Win32 app.
В XML для shell Launcher v2 обратите внимание на атрибут AllAppsFullScreen. In the XML for Shell Launcher v2, note the AllAppsFullScreen attribute. При наборе Trueзапуск оболочки будет запускать каждое приложение на полном экране или максимально использовать для настольных приложений. When set to True, Shell Launcher will run every app in full screen, or maximized for desktop apps. Если этот атрибут заданной для False или не заданной, только настраиваемая оболочка приложения запускается на полном экране; другие приложения, запущенные пользователем, будут работать в окне. When this attribute is set to False or not set, only the custom shell app runs in full screen; other apps launched by the user will run in windowed mode.
Настраиваемый параметр OMA-URI Custom OMA-URI setting
В службе MDM можно создать настраиваемый параметр OMA-URI для настройки shell Launcher v1 или v2. In your MDM service, you can create a custom OMA-URI setting to configure Shell Launcher v1 or v2. (XML, который используется для настройки, определит, применяет ли вы shell Launcher v1 или v2.) (The XML that you use for your setting will determine whether you apply Shell Launcher v1 or v2.)
Путь OMA-URI является ./Device/Vendor/MSFT/AssignedAccess/ShellLauncher . The OMA-URI path is ./Device/Vendor/MSFT/AssignedAccess/ShellLauncher .
Для значения можно выбрать тип данных и ввести необходимое содержимое файла String конфигурации в поле значения. For the value, you can select data type String and paste the desired configuration file content into the value box. Если вы хотите загрузить xml вместо вклейки контента, выберите тип String (XML file) данных. If you wish to upload the xml instead of pasting the content, choose data type String (XML file) .
После настройки профиля, содержащего настраиваемый параметр запуска оболочки, выберите Все устройства или выбранные группы устройств для применения профиля. After you configure the profile containing the custom Shell Launcher setting, select All Devices or selected groups of devices to apply the profile to. Не назначайте профиль пользователям или группам пользователей. Don’t assign the profile to users or user groups.
Настройка настраиваемой оболочки с помощью PowerShell Configure a custom shell using PowerShell
Сценарии для Shell Launcher v2 см. в примере сценариев WMI моста Shell Launcher v2. For scripts for Shell Launcher v2, see Shell Launcher v2 Bridge WMI sample scripts.
Для shell Launcher v1 измените следующий сценарий PowerShell по мере необходимости. For Shell Launcher v1, modify the following PowerShell script as appropriate. Комментарии в примере сценария поясняют назначение каждого раздела и подсказывают, где следует изменить сценарий для ваших целей. The comments in the sample script explain the purpose of each section and tell you where you will want to change the script for your purposes. Сохраните сценарий с расширением .ps1, откройте Windows PowerShell от имени администратора и запустите его на устройстве в режиме терминала. Save your script with the extension .ps1, open Windows PowerShell as administrator, and run the script on the kiosk device.
действие по умолчанию, настраиваемые действия, код выхода default action, custom action, exit code
Пусковая компания Shell определяет 4 действия для обработки выходов приложений, можно настроить пусковую статью оболочки и использовать эти действия на основе другого кода выхода. Shell launcher defines 4 actions to handle app exits, you can customize shell launcher and use these actions based on different exit code.
Значение Value | Описание Description |
---|---|
0 0 | Перезапуск оболочки Restart the shell |
1 1 | Перезапуск устройства Restart the device |
2 2 | Отключение устройства Shut down the device |
3 3 | Ничего не делать Do nothing |
Эти действия можно использовать в качестве действия по умолчанию или можно соедеть с определенным кодом выхода. These action can be used as default action, or can be mapped to a specific exit code. Обратитесь к пусковике Shell, чтобы узнать, как эти коды с WMI запуска shell Launcher. Refer to Shell Launcher to see how these codes with Shell Launcher WMI.