Групповые политики/Управление logon-скриптами: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 14 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{Stub}}
== Описание ==
== Описание ==
Групповые политики позволяют запускать сценарии запуска и завершения работы компьютера, входа и выхода из системы пользователя. Возможно связать один или несколько файлов сценариев (scripts) с четырьмя инициируемыми событиями:
Групповые политики позволяют запускать сценарии запуска и завершения работы компьютера, входа и выхода из системы пользователя. Возможно связать один или несколько файлов сценариев (scripts) с четырьмя инициируемыми событиями:
* Для машины:
* Для машины:
** Запуск компьютера (Startup)
** Запуск компьютера (Startup)
** Выключение компьютера (Завершение работы)
** Выключение компьютера/Завершение работы (Shutdown)
* Для пользователя:
* Для пользователя:
** Вход пользователя (Logon)
** Вход пользователя (Logon)
Строка 10: Строка 9:


В случае, если указано более одного сценария, они будут выполняться согласно перечню в списке.
В случае, если указано более одного сценария, они будут выполняться согласно перечню в списке.
Система выполняет сценарии на языках, которые поддерживает клиентский компьютер. В среде Windows эту задачу выполняет Windows Script Host (WSH), который поддерживает языки сценариев, включая bat, cmd, VBScript и Jscript.  
Система выполняет сценарии на языках, которые поддерживает клиентский компьютер. В среде Windows эту задачу выполняет Windows Script Host (WSH), который поддерживает языки сценариев, включая bat, cmd, VBScript и Jscript.
 
{{Note|Если сценарии (scripts) хранятся в SYSVOL, они реплицируются между контроллерами домена. SYSVOL доступен всем членам домена, что гарантирует запуск сценария.}}


== Настройка политики ==
== Настройка политики ==
=== На машине Альт ===
{{Note|Управление logon-скриптами реализовано в {{pkg|gpui}} начиная с версии 0.2.24.}}
{{Note|Для запуска сценариев для машин на базе ALT Linux, необходимо указывать в первой строке [https://ru.wikipedia.org/wiki/Шебанг_(Unix) шебанг] в них, например, <code>#!/usr/bin/env bash</code> }}
==== Сценарии для входа/выхода пользователя ====
Для того чтобы назначить сценарий для входа или выхода пользователя (User Logon/Logoff script), необходимо выполнить следующие действия:
'''Шаг 1.''' Для удобства можно скопировать нужные сценарии в папку {{path|User\Scripts\Logon}} (например, {{path|\\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\User\Scripts\Logon}}) или {{path|User\Scripts\Logoff}} соответствующей политики.
'''Шаг 2.''' На машине с установленными [[ADMC]] и [[Групповые_политики/GPUI|GPUI]] получить ключ Kerberos для администратора домена.
'''Шаг 3.''' В [[ADMC]] создать новый объект групповой политики (GPO) и связать его с OU.
'''Шаг 4.''' Запустить [[Групповые_политики/GPUI|GPUI]]:
*из [[ADMC|модуля удаленного управления базой данных конфигурации (ADMC)]], выбрав в контекстном меню объекта групповой политики пункт «Изменить…»:
*:[[File:Admc-gp-edit-logon.png|Запуск GPUI из ADMC]]
*или с указанием каталога групповой политики:
*:<syntaxhighlight lang="bash">$ gpui-main -p "smb://dc1.test.alt/SysVol/test.alt/Policies/{75411A5F-5A46-4616-BB1A-4DE7C3EEDBD1}"</syntaxhighlight>
*:где dc1.test.alt — имя контроллера домена, а {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX} — GUID шаблона групповой политики для редактирования.
Откроется окно редактирования групповых политик.
'''Шаг 5.''' Перейти в «Пользователь» -> «Настройки системы» -> «Скрипты». Щёлкнуть левой кнопкой мыши на политике «Вход в систему» или «Выход из системы» :
[[Файл:GPUI-scripts-05.png|GPUI. Сценарий (вход/выход из системы)]]
'''Шаг 6.''' В диалоговом окне свойств политики нажать кнопку «Добавить»:
[[Файл:GPUI-scripts-06.png|GPUI. Диалоговое окно свойств политики «Вход в систему»]]
'''Шаг 7.''' В диалоговом окне «Добавить скрипт» в поле «Имя скрипта» ввести путь к сценарию, а в поле «Аргументы скрипта» ввести необходимые параметры аналогично вводу этих параметров в командной строке.
Пример добавления сценария для ОС ALT:
[[Файл:GPUI-scripts-08.png.png|GPUI. Диалоговое окно добавления сценария для ОС ALT]]
{{Note|Применение локальных скриптов реализовано в механизме {{pkg|gpupdate}} версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.}}
Пример добавления сценария для ОС Windows (можно указать локальный скрипт на компьютере клиента):
[[Файл:GPUI-scripts-04.png.png|GPUI. Диалоговое окно добавления сценария для ОС Windows]]
При назначении нескольких сценариев они будут применяться в заданном порядке. Чтобы переместить сценарий в списке вверх/вниз, следует выбрать его в списке и нажать кнопку «Вверх»/«Вниз». Для того чтобы изменить сценарий, необходимо нажать кнопку «Изменить». Кнопка «Удалить» предназначена для удаления сценария из списка.
[[Файл:GPUI-scripts-07.png|GPUI. Список сценариев]]
На вкладке «Скрипты PowerShell» можно добавить сценарии с расширением *.ps1.
==== Сценарии для автозагрузки или завершения работы компьютера ====
Для того чтобы назначить сценарий для автозагрузки или завершения работы, необходимо выполнить следующие действия:
'''Шаг 1.''' Для удобства можно скопировать нужные сценарии в папку {{path|Machine\Scripts\Startup}} (например, {{path|\\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\Machine\Scripts\Startup}}) или {{path|Machine\Scripts\Shutdown}} соответствующей политики.
'''Шаг 2.''' На машине с установленными [[ADMC]] и [[Групповые_политики/GPUI|GPUI]] получить ключ Kerberos для администратора домена.
'''Шаг 3.''' В [[ADMC]] создать новый объект групповой политики (GPO) и связать его с OU.
'''Шаг 4.''' Запустить [[Групповые_политики/GPUI|GPUI]]:
*из [[ADMC|модуля удаленного управления базой данных конфигурации (ADMC)]], выбрав в контекстном меню объекта групповой политики пункт «Изменить…»:
*:[[File:Admc-gp-edit-logon.png|Запуск GPUI из ADMC]]
*или с указанием каталога групповой политики:
*:<syntaxhighlight lang="bash">$ gpui-main -p "smb://dc1.test.alt/SysVol/test.alt/Policies/{75411A5F-5A46-4616-BB1A-4DE7C3EEDBD1}"</syntaxhighlight>
*:где dc1.test.alt — имя контроллера домена, а {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX} — GUID шаблона групповой политики для редактирования.
Откроется окно редактирования групповых политик.
'''Шаг 5.''' Перейти в «Компьютер» -> «Настройки системы» -> «Скрипты». Щёлкнуть левой кнопкой мыши на политике «Запуск» или «Завершение работы» :
[[Файл:GPUI-scripts-02.png|GPUI. Сценарий (запуск/завершение)]]
'''Шаг 6.''' В диалоговом окне свойств политики нажать кнопку «Добавить»:
[[Файл:GPUI-scripts-06.png|GPUI. Диалоговое окно свойств политики «Сценарий завершения работы»]]
'''Шаг 7.''' В диалоговом окне «Добавить скрипт» в поле «Имя скрипта» ввести путь к сценарию, а в поле «Аргументы скрипта» ввести необходимые параметры аналогично вводу этих параметров в командной строке.
Пример добавления сценария для ОС ALT:
[[Файл:GPUI-scripts-08.png.png|GPUI. Диалоговое окно добавления сценария для ОС ALT]]
{{Note|Применение локальных скриптов реализовано в механизме {{pkg|gpupdate}} версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.}}
Пример добавления сценария для ОС Windows (можно указать локальных скрипт на компьютере клиента):
[[Файл:GPUI-scripts-04.png.png|GPUI. Диалоговое окно добавления сценария для ОС Windows]]
При назначении нескольких сценариев они будут применяться в заданном порядке. Чтобы переместить сценарий в списке вверх/вниз, следует выбрать его в списке и нажать кнопку «Вверх»/«Вниз». Для того чтобы изменить сценарий, необходимо нажать кнопку «Изменить». Кнопка «Удалить» предназначена для удаления сценария из списка.
На вкладке «Скрипты PowerShell» можно добавить сценарии с расширением *.ps1.
==== Включение «Экспериментальных групповых политик»====
Так как политики управления logon-скриптами относятся к экспериментальным, на машинах Альт где они применяются должны быть включены «Экспериментальные групповые политики».
Включить «Экспериментальные групповые политики» можно, выбрав в разделе  «Компьютер» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» пункт «Экспериментальные групповые политики» и установив в открывшемся окне отметку в поле «Включено»:
[[Файл:Gpui-global_experimental.png|GPUI. Включение политики «Экспериментальные групповые политики»]]
{{Note|Включить/отключить механизм групповых политик управления logon-скриптами можно, включив/отключив политики    «Модуль выполнения сценариев для компьютеров» или «Модуль выполнения сценариев для пользователей» («Компьютер» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» -> «Механизмы GPUpdate»):
[[Файл:Gpui-global_GPUpdate-logon.png|600px|GPUI. Механизмы GPUpdate]]}}
=== На машине Windows ===
=== На машине Windows ===
==== Сценарии для входа/выхода пользователя ====
==== Сценарии для входа/выхода пользователя ====


Для того чтобы назначить сценарий для входа или выхода пользователя (User logon/Logoff script) необходимо выполнить следующие действия:
Для того чтобы назначить сценарий для входа или выхода пользователя (User Logon/Logoff script), необходимо выполнить следующие действия:


'''Шаг 1.''' Для удобства можно скопировать нужные сценарии в папку {{path|User\Scripts\Logon}} или {{path|User\Scripts\Logoff}} соответствующей политики.  
'''Шаг 1.''' Для удобства можно скопировать нужные сценарии в папку {{path|User\Scripts\Logon}} (например, {{path|\\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\User\Scripts\Logon}}) или {{path|User\Scripts\Logoff}} соответствующей политики.  


'''Шаг 1.''' На машине с установленным RSAT открыть консоль «Управление групповыми политиками» (gpmc.msc).
'''Шаг 2.''' На машине с установленным RSAT открыть консоль «Управление групповыми политиками» (gpmc.msc).


'''Шаг 2.''' Создать новый объект групповой политики (GPO) и связать его с OU, в который входят учетные записи пользователей.
'''Шаг 3.''' Создать новый объект групповой политики (GPO) и связать его с OU, в который входят учетные записи пользователей.


'''Шаг 3.''' В контекстном меню GPO, выбрать пункт «Изменить»:
'''Шаг 4.''' В контекстном меню GPO выбрать пункт «Изменить»:


[[Файл:RSAT-scripts-01.png|RSAT. Открыть редактор GPO]]
[[Файл:RSAT-scripts-01.png|RSAT. Открыть редактор GPO]]


'''Шаг 4.''' Откроется редактор GPO. Перейти в «Конфигурация пользователя» -> «Политики» -> «Конфигурация Windows» ->  «Сценарий (вход/выход из системы)». Дважды щелкнуть левой кнопкой мыши на политике «Вход в систему» («Logon») или «Выход в систему» («Logoff»):
'''Шаг 5.''' Откроется редактор GPO. Перейти в «Конфигурация пользователя» -> «Политики» -> «Конфигурация Windows» ->  «Сценарий (вход/выход из системы)». Дважды щелкнуть левой кнопкой мыши на политике «Вход в систему» («Logon») или «Выход из системы» («Logoff»):


[[Файл:RSAT-scripts-05.png|RSAT. Сценарий (вход/выход из системы)]]
[[Файл:RSAT-scripts-05.png|RSAT. Сценарий (вход/выход из системы)]]


'''Шаг 5.''' В диалоговом окне свойств политики нажать кнопку «Добавить»:
'''Шаг 6.''' В диалоговом окне свойств политики нажать кнопку «Добавить»:


[[Файл:RSAT-scripts-06.png|RSAT. Диалоговое окно свойств политики «Вход в систему»]]
[[Файл:RSAT-scripts-06.png|RSAT. Диалоговое окно свойств политики «Вход в систему»]]


'''Шаг 6.''' В диалоговом окне «Добавление сценария», в поле «Имя сценария» ввести путь к сценарию (можно нажать на кнопку «Обзор» для поиска файла), а в поле «Параметры сценария» ввести необходимые параметры аналогично вводу этих параметров в командной строке.
'''Шаг 7.''' В диалоговом окне «Добавление сценария» в поле «Имя сценария» ввести путь к сценарию (можно нажать кнопку «Обзор», чтобы найти файл сценария в общей папке на контроллере домена), а в поле «Параметры сценария» ввести необходимые параметры аналогично вводу этих параметров в командной строке.


Пример добавления сценария для ОС ALT:
Пример добавления сценария для ОС ALT:
Строка 42: Строка 150:
[[Файл:RSAT-scripts-08.png|RSAT. Диалоговое окно добавления сценария для ОС ALT]]
[[Файл:RSAT-scripts-08.png|RSAT. Диалоговое окно добавления сценария для ОС ALT]]


Пример добавления сценария для ОС Windows:
{{Note|Применение локальных скриптов реализовано в механизме {{pkg|gpupdate}} версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.}}
 
Пример добавления сценария для ОС Windows (можно указать локальный скрипт на компьютере клиента):


[[Файл:RSAT-scripts-04.png|RSAT. Диалоговое окно добавления сценария для ОС Windows]]
[[Файл:RSAT-scripts-04.png|RSAT. Диалоговое окно добавления сценария для ОС Windows]]
Строка 54: Строка 164:
==== Сценарии для автозагрузки или завершения работы компьютера ====
==== Сценарии для автозагрузки или завершения работы компьютера ====


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


'''Шаг 1.''' Для удобства можно скопировать нужные сценарии в папку {{path|Machine\Scripts\Startup}} или {{path|Machine\Scripts\Shutdown}} соответствующей политики.  
'''Шаг 1.''' Для удобства можно скопировать нужные сценарии в папку {{path|Machine\Scripts\Startup}} (например, {{path|\\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\Machine\Scripts\Startup}}) или {{path|Machine\Scripts\Shutdown}} соответствующей политики.  


'''Шаг 2.''' На машине с установленным RSAT открыть консоль «Управление групповыми политиками» (gpmc.msc).
'''Шаг 2.''' На машине с установленным RSAT открыть консоль «Управление групповыми политиками» (gpmc.msc).
Строка 62: Строка 172:
'''Шаг 3.''' Создать новый объект групповой политики (GPO) и связать его с OU, в который входят машины.
'''Шаг 3.''' Создать новый объект групповой политики (GPO) и связать его с OU, в который входят машины.


'''Шаг 4.''' В контекстном меню GPO, выбрать пункт «Изменить»:
'''Шаг 4.''' В контекстном меню GPO выбрать пункт «Изменить»:


[[Файл:RSAT-scripts-01.png|RSAT. Открыть редактор GPO]]
[[Файл:RSAT-scripts-01.png|RSAT. Открыть редактор GPO]]
Строка 74: Строка 184:
[[Файл:RSAT-scripts-03.png|RSAT. Диалоговое окно свойств политики «Сценарий завершения работы»]]
[[Файл:RSAT-scripts-03.png|RSAT. Диалоговое окно свойств политики «Сценарий завершения работы»]]


'''Шаг 7.''' В диалоговом окне «Добавление сценария», в поле «Имя сценария» ввести путь к сценарию (можно нажать на кнопку «Обзор» для поиска файла сценария в общей папке Netlogon контроллера домена), а в поле «Параметры сценария» ввести необходимые параметры аналогично вводу этих параметров в командной строке.
'''Шаг 7.''' В диалоговом окне «Добавление сценария» в поле «Имя сценария» ввести путь к сценарию (можно нажать кнопку «Обзор» для поиска файла сценария в общей папке контроллера домена), а в поле «Параметры сценария» ввести необходимые параметры аналогично вводу этих параметров в командной строке.


Пример добавления сценария для ОС ALT:
Пример добавления сценария для ОС ALT:
Строка 80: Строка 190:
[[Файл:RSAT-scripts-08.png|RSAT. Диалоговое окно добавления сценария для ОС ALT]]
[[Файл:RSAT-scripts-08.png|RSAT. Диалоговое окно добавления сценария для ОС ALT]]


Пример добавления сценария для ОС Windows:
 
{{Note|Применение локальных скриптов реализовано в механизме {{pkg|gpupdate}} версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.}}
 
Пример добавления сценария для ОС Windows (можно указать локальных скрипт на компьютере клиента):


[[Файл:RSAT-scripts-04.png|RSAT. Диалоговое окно добавления сценария для ОС Windows]]
[[Файл:RSAT-scripts-04.png|RSAT. Диалоговое окно добавления сценария для ОС Windows]]
Строка 87: Строка 200:


На вкладке «Сценарии PowerShell» можно добавить сценарии с расширением *.ps1.
На вкладке «Сценарии PowerShell» можно добавить сценарии с расширением *.ps1.
==== Включение «Экспериментальных групповых политик»====
Так как политики управления logon-скриптами относятся к экспериментальным, на машинах Альт где они применяются, должны быть включены «Экспериментальные групповые политики».
Включить «Экспериментальные групповые политики» можно, выбрав в разделе  «Конфигурация компьютера» -> «Политики» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» пункт «Экспериментальные групповые политики»:
[[Файл:Experimental_Group_Policies_Packages.png|RSAT. Экспериментальные групповые политики]]
Дважды щелкнуть на политике «Экспериментальные групповые политики», в открывшемся окне установить отметку в поле «Включить»:
[[Файл:GPUpdate_global_experimental.png|RSAT. Диалоговое окно «Экспериментальные групповые политики»]]
{{Note|Включить/отключить механизм групповых политик управления logon-скриптами можно, включив/отключив политики «Модуль выполнения сценариев для компьютеров» или «Модуль выполнения сценариев для пользователей» («Конфигурация компьютера» -> «Политики» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» -> «Механизмы GPUpdate»):
[[Файл:RSAT-global_GPUpdate-logon.png|600px|RSAT. Механизмы GPUpdate]]}}
== Файлы настроек политики ==
Файлы сценариев (за исключением локальных) хранятся в каталогах: {{path|{GUID GPT}\User\Scripts\Logon}} и {{path|{GUID GPT}/User/Scripts/Logoff}}. Настройки политики для сценариев входа и выхода пользователя хранятся в файле {{path|{GUID GPT}/User/Scripts/scripts.ini}}. В файле {{path|scripts.ini}} перечисляются все программы, выполняемые в сценариях входа и выхода пользователя из системы. Сценарии входа начинаются с преамбулы [Logon], сценарии выхода начинаются с преамбулы [Logoff].
Пример файла {{path|scripts.ini}}:
<syntaxhighlight lang="ini">
[Logon]
0CmdLine=date.sh
0Parameters=test
1CmdLine=test.sh
1Parameters=new
[Logoff]
0CmdLine=touch.sh
0Parameters=
1CmdLine=Logoff.bat
1Parameters=1.txt
2CmdLine=C:\share\Logon.bat
2Parameters=
</syntaxhighlight>
Файлы сценариев (за исключением локальных) хранятся в каталогах: {{path|{GUID GPT}/Machine/Scripts/Shutdown}} и {{path|{GUID GPT}/Machine/Scripts/Startup}}. Настройки политики для сценариев запуска и завершения работы компьютера хранятся в файле {{path|{GUID GPT}/Machine/Scripts/scripts.ini}}. В файле {{path|scripts.ini}} перечисляются все скрипты, выполняемые в сценариях запуска и завершения работы компьютера. Сценарии запуска компьютера начинаются с преамбулы [Startup], сценарии завершения работы начинаются с преамбулы [Shutdown].
Пример файла {{path|scripts.ini}}:
<syntaxhighlight lang="ini">
[Startup]
0CmdLine=hello.bat
0Parameters=
1CmdLine=notescript.vbs
1Parameters=
2CmdLine=notescript2.vbs
2Parameters=
3CmdLine=touch.bat
3Parameters=
[Shutdown]
0CmdLine=touch.bat
0Parameters=
</syntaxhighlight>
Файл {{path|scripts.ini}} закодирован в формате UTF-16LE (little-endian).
{{Note|Настройки политики для скриптов PowerShell хранятся в файлах {{path|{GUID GPT}/User/Scripts/pgscripts.ini}} (для сценариев входа и выхода пользователя) и {{path|{GUID GPT}/Machine/Scripts/pgscripts.ini}} (для запуска и завершения работы компьютера).}}
== Права и разрешения ==
* По умолчанию разрешение на изменение параметров для редактирования GPO имеют члены групп безопасности «Администраторы домена», «Администраторы предприятия», «Владельцы-создатели групповой политики»;
* Сценарии запуска (Startup) и завершения работы выполняются под учетной записью локальной системы, и они имеют полные права, связанные с возможностью запуска под учетной записью локальной системы;
* Сценарии входа (Logon scripts) и выхода (Logoff scripts) запускаются от имени пользователя, а не администратора, и их права соответственно ограничены;
* В Windows Vista сценарии запуска по умолчанию выполняются асинхронно. Это поведение отличается от более ранних операционных систем;
* Настройка синхронного запуска сценариев запуска может привести к замедлению процесса загрузки;
* В Windows Vista сценарии запуска, выполняемые асинхронно, не будут видны. Включение параметра групповой политики Run Startup Scripts Visible не повлияет на асинхронный запуск сценариев запуска.
== Диагностика проблем при работе с политикой скриптов ==
=== На контроллере домена ===
* Проверить работоспособность загружаемого скрипта в дистрибутиве ALT;
* Убедиться, что кодировка файла со скриптом — UTF8;
* Убедиться, что скрипт расположен в каталоге (GPT) применяемого объекта групповой политики (GPO);
* Включить групповую политику «Экспериментальные групповые политики» или групповую политику «Управление logon-скриптами»;
* Убедиться, что целевой компьютер входит в подразделение (OU), к которому привязан объект групповой политики GPO.
=== На компьютере пользователя ===
* Проверить версию {{pkg|gpupdate}}. Политики скриптов выполняются с релиза 0.9.11-alt1.
* Убедиться, что механизм применения политик (gpupdate) запущен:
*:<syntaxhighlight lang="bash"># gpupdate-setup status</syntaxhighlight>
* Убедиться, что служба скриптов запущена:
*:<syntaxhighlight lang="bash"># systemctl status gpupdate-scripts-run.service</syntaxhighlight>
* Проверить содержимое каталога и права для загруженных скриптов:
*:<syntaxhighlight lang="bash"># ls -Rl /var/cache/gpupdate_scripts_cache/</syntaxhighlight>
* Проверить состояние службы запуска скриптов пользователя через вывод команды (от пользователя):
*:<syntaxhighlight lang="bash">$ systemctl --user status gpupdate-scripts-run-user.service</syntaxhighlight>
* Вывести журнал применения политик:
*:<syntaxhighlight lang="bash"># gpoa --loglevel 0</syntaxhighlight>
[[Категория:Групповые_политики]]
{{Category navigation|title=Групповые политики|category=Групповые_политики|sortkey={{SUBPAGENAME}}}}

Текущая версия от 16:14, 19 июля 2024

Описание

Групповые политики позволяют запускать сценарии запуска и завершения работы компьютера, входа и выхода из системы пользователя. Возможно связать один или несколько файлов сценариев (scripts) с четырьмя инициируемыми событиями:

  • Для машины:
    • Запуск компьютера (Startup)
    • Выключение компьютера/Завершение работы (Shutdown)
  • Для пользователя:
    • Вход пользователя (Logon)
    • Выход пользователя (Logoff)

В случае, если указано более одного сценария, они будут выполняться согласно перечню в списке. Система выполняет сценарии на языках, которые поддерживает клиентский компьютер. В среде Windows эту задачу выполняет Windows Script Host (WSH), который поддерживает языки сценариев, включая bat, cmd, VBScript и Jscript.

Примечание: Если сценарии (scripts) хранятся в SYSVOL, они реплицируются между контроллерами домена. SYSVOL доступен всем членам домена, что гарантирует запуск сценария.


Настройка политики

На машине Альт

Примечание: Управление logon-скриптами реализовано в gpui начиная с версии 0.2.24.


Примечание: Для запуска сценариев для машин на базе ALT Linux, необходимо указывать в первой строке шебанг в них, например, #!/usr/bin/env bash


Сценарии для входа/выхода пользователя

Для того чтобы назначить сценарий для входа или выхода пользователя (User Logon/Logoff script), необходимо выполнить следующие действия:

Шаг 1. Для удобства можно скопировать нужные сценарии в папку User\Scripts\Logon (например, \\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\User\Scripts\Logon) или User\Scripts\Logoff соответствующей политики.

Шаг 2. На машине с установленными ADMC и GPUI получить ключ Kerberos для администратора домена.

Шаг 3. В ADMC создать новый объект групповой политики (GPO) и связать его с OU.

Шаг 4. Запустить GPUI:

  • из модуля удаленного управления базой данных конфигурации (ADMC), выбрав в контекстном меню объекта групповой политики пункт «Изменить…»:
    Запуск GPUI из ADMC
  • или с указанием каталога групповой политики:
    $ gpui-main -p "smb://dc1.test.alt/SysVol/test.alt/Policies/{75411A5F-5A46-4616-BB1A-4DE7C3EEDBD1}"
    
    где dc1.test.alt — имя контроллера домена, а {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX} — GUID шаблона групповой политики для редактирования.

Откроется окно редактирования групповых политик.

Шаг 5. Перейти в «Пользователь» -> «Настройки системы» -> «Скрипты». Щёлкнуть левой кнопкой мыши на политике «Вход в систему» или «Выход из системы» :

GPUI. Сценарий (вход/выход из системы)

Шаг 6. В диалоговом окне свойств политики нажать кнопку «Добавить»:

GPUI. Диалоговое окно свойств политики «Вход в систему»

Шаг 7. В диалоговом окне «Добавить скрипт» в поле «Имя скрипта» ввести путь к сценарию, а в поле «Аргументы скрипта» ввести необходимые параметры аналогично вводу этих параметров в командной строке.

Пример добавления сценария для ОС ALT:

GPUI. Диалоговое окно добавления сценария для ОС ALT

Примечание: Применение локальных скриптов реализовано в механизме gpupdate версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.


Пример добавления сценария для ОС Windows (можно указать локальный скрипт на компьютере клиента):

GPUI. Диалоговое окно добавления сценария для ОС Windows

При назначении нескольких сценариев они будут применяться в заданном порядке. Чтобы переместить сценарий в списке вверх/вниз, следует выбрать его в списке и нажать кнопку «Вверх»/«Вниз». Для того чтобы изменить сценарий, необходимо нажать кнопку «Изменить». Кнопка «Удалить» предназначена для удаления сценария из списка.

GPUI. Список сценариев

На вкладке «Скрипты PowerShell» можно добавить сценарии с расширением *.ps1.

Сценарии для автозагрузки или завершения работы компьютера

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

Шаг 1. Для удобства можно скопировать нужные сценарии в папку Machine\Scripts\Startup (например, \\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\Machine\Scripts\Startup) или Machine\Scripts\Shutdown соответствующей политики.

Шаг 2. На машине с установленными ADMC и GPUI получить ключ Kerberos для администратора домена.

Шаг 3. В ADMC создать новый объект групповой политики (GPO) и связать его с OU.

Шаг 4. Запустить GPUI:

  • из модуля удаленного управления базой данных конфигурации (ADMC), выбрав в контекстном меню объекта групповой политики пункт «Изменить…»:
    Запуск GPUI из ADMC
  • или с указанием каталога групповой политики:
    $ gpui-main -p "smb://dc1.test.alt/SysVol/test.alt/Policies/{75411A5F-5A46-4616-BB1A-4DE7C3EEDBD1}"
    
    где dc1.test.alt — имя контроллера домена, а {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX} — GUID шаблона групповой политики для редактирования.

Откроется окно редактирования групповых политик.

Шаг 5. Перейти в «Компьютер» -> «Настройки системы» -> «Скрипты». Щёлкнуть левой кнопкой мыши на политике «Запуск» или «Завершение работы» :

GPUI. Сценарий (запуск/завершение)

Шаг 6. В диалоговом окне свойств политики нажать кнопку «Добавить»:

GPUI. Диалоговое окно свойств политики «Сценарий завершения работы»

Шаг 7. В диалоговом окне «Добавить скрипт» в поле «Имя скрипта» ввести путь к сценарию, а в поле «Аргументы скрипта» ввести необходимые параметры аналогично вводу этих параметров в командной строке.

Пример добавления сценария для ОС ALT:

GPUI. Диалоговое окно добавления сценария для ОС ALT


Примечание: Применение локальных скриптов реализовано в механизме gpupdate версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.


Пример добавления сценария для ОС Windows (можно указать локальных скрипт на компьютере клиента):

GPUI. Диалоговое окно добавления сценария для ОС Windows

При назначении нескольких сценариев они будут применяться в заданном порядке. Чтобы переместить сценарий в списке вверх/вниз, следует выбрать его в списке и нажать кнопку «Вверх»/«Вниз». Для того чтобы изменить сценарий, необходимо нажать кнопку «Изменить». Кнопка «Удалить» предназначена для удаления сценария из списка.

На вкладке «Скрипты PowerShell» можно добавить сценарии с расширением *.ps1.

Включение «Экспериментальных групповых политик»

Так как политики управления logon-скриптами относятся к экспериментальным, на машинах Альт где они применяются должны быть включены «Экспериментальные групповые политики».

Включить «Экспериментальные групповые политики» можно, выбрав в разделе «Компьютер» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» пункт «Экспериментальные групповые политики» и установив в открывшемся окне отметку в поле «Включено»:

GPUI. Включение политики «Экспериментальные групповые политики»

Примечание: Включить/отключить механизм групповых политик управления logon-скриптами можно, включив/отключив политики «Модуль выполнения сценариев для компьютеров» или «Модуль выполнения сценариев для пользователей» («Компьютер» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» -> «Механизмы GPUpdate»): GPUI. Механизмы GPUpdate


На машине Windows

Сценарии для входа/выхода пользователя

Для того чтобы назначить сценарий для входа или выхода пользователя (User Logon/Logoff script), необходимо выполнить следующие действия:

Шаг 1. Для удобства можно скопировать нужные сценарии в папку User\Scripts\Logon (например, \\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\User\Scripts\Logon) или User\Scripts\Logoff соответствующей политики.

Шаг 2. На машине с установленным RSAT открыть консоль «Управление групповыми политиками» (gpmc.msc).

Шаг 3. Создать новый объект групповой политики (GPO) и связать его с OU, в который входят учетные записи пользователей.

Шаг 4. В контекстном меню GPO выбрать пункт «Изменить»:

RSAT. Открыть редактор GPO

Шаг 5. Откроется редактор GPO. Перейти в «Конфигурация пользователя» -> «Политики» -> «Конфигурация Windows» -> «Сценарий (вход/выход из системы)». Дважды щелкнуть левой кнопкой мыши на политике «Вход в систему» («Logon») или «Выход из системы» («Logoff»):

RSAT. Сценарий (вход/выход из системы)

Шаг 6. В диалоговом окне свойств политики нажать кнопку «Добавить»:

RSAT. Диалоговое окно свойств политики «Вход в систему»

Шаг 7. В диалоговом окне «Добавление сценария» в поле «Имя сценария» ввести путь к сценарию (можно нажать кнопку «Обзор», чтобы найти файл сценария в общей папке на контроллере домена), а в поле «Параметры сценария» ввести необходимые параметры аналогично вводу этих параметров в командной строке.

Пример добавления сценария для ОС ALT:

RSAT. Диалоговое окно добавления сценария для ОС ALT

Примечание: Применение локальных скриптов реализовано в механизме gpupdate версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.


Пример добавления сценария для ОС Windows (можно указать локальный скрипт на компьютере клиента):

RSAT. Диалоговое окно добавления сценария для ОС Windows

При назначении нескольких сценариев они будут применяться в заданном порядке. Чтобы переместить сценарий в списке вверх/вниз, следует выбрать его в списке и нажать кнопку «Вверх»/«Вниз». Для того чтобы изменить сценарий, необходимо нажать кнопку «Изменить». Кнопка «Удалить» предназначена для удаления сценария из списка.

RSAT. Список сценариев

На вкладке «Сценарии PowerShell» можно добавить сценарии с расширением *.ps1.

Сценарии для автозагрузки или завершения работы компьютера

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

Шаг 1. Для удобства можно скопировать нужные сценарии в папку Machine\Scripts\Startup (например, \\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\Machine\Scripts\Startup) или Machine\Scripts\Shutdown соответствующей политики.

Шаг 2. На машине с установленным RSAT открыть консоль «Управление групповыми политиками» (gpmc.msc).

Шаг 3. Создать новый объект групповой политики (GPO) и связать его с OU, в который входят машины.

Шаг 4. В контекстном меню GPO выбрать пункт «Изменить»:

RSAT. Открыть редактор GPO

Шаг 5. Откроется редактор GPO. Перейти в «Конфигурация компьютера» -> «Политики» -> «Конфигурация Windows» -> «Сценарий (запуск/завершение)». Дважды щелкнуть левой кнопкой мыши на политике «Автозагрузка» («Startup») или «Завершение работы» («Shutdown»):

RSAT. Сценарий (запуск/завершение)

Шаг 6. В диалоговом окне свойств политики нажать кнопку «Добавить»:

RSAT. Диалоговое окно свойств политики «Сценарий завершения работы»

Шаг 7. В диалоговом окне «Добавление сценария» в поле «Имя сценария» ввести путь к сценарию (можно нажать кнопку «Обзор» для поиска файла сценария в общей папке контроллера домена), а в поле «Параметры сценария» ввести необходимые параметры аналогично вводу этих параметров в командной строке.

Пример добавления сценария для ОС ALT:

RSAT. Диалоговое окно добавления сценария для ОС ALT


Примечание: Применение локальных скриптов реализовано в механизме gpupdate версии 0.9.11, в версиях ниже скрипты для ОС ALT должны находиться в GPT настраиваемого объекта групповой политики.


Пример добавления сценария для ОС Windows (можно указать локальных скрипт на компьютере клиента):

RSAT. Диалоговое окно добавления сценария для ОС Windows

При назначении нескольких сценариев они будут применяться в заданном порядке. Чтобы переместить сценарий в списке вверх/вниз, следует выбрать его в списке и нажать кнопку «Вверх»/«Вниз». Для того чтобы изменить сценарий, необходимо нажать кнопку «Изменить». Кнопка «Удалить» предназначена для удаления сценария из списка.

На вкладке «Сценарии PowerShell» можно добавить сценарии с расширением *.ps1.

Включение «Экспериментальных групповых политик»

Так как политики управления logon-скриптами относятся к экспериментальным, на машинах Альт где они применяются, должны быть включены «Экспериментальные групповые политики».

Включить «Экспериментальные групповые политики» можно, выбрав в разделе «Конфигурация компьютера» -> «Политики» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» пункт «Экспериментальные групповые политики»:

RSAT. Экспериментальные групповые политики

Дважды щелкнуть на политике «Экспериментальные групповые политики», в открывшемся окне установить отметку в поле «Включить»:

RSAT. Диалоговое окно «Экспериментальные групповые политики»

Примечание: Включить/отключить механизм групповых политик управления logon-скриптами можно, включив/отключив политики «Модуль выполнения сценариев для компьютеров» или «Модуль выполнения сценариев для пользователей» («Конфигурация компьютера» -> «Политики» -> «Административные шаблоны» -> «Система ALT» -> «Групповые политики» -> «Механизмы GPUpdate»): RSAT. Механизмы GPUpdate


Файлы настроек политики

Файлы сценариев (за исключением локальных) хранятся в каталогах: {GUID GPT}\User\Scripts\Logon и {GUID GPT}/User/Scripts/Logoff. Настройки политики для сценариев входа и выхода пользователя хранятся в файле {GUID GPT}/User/Scripts/scripts.ini. В файле scripts.ini перечисляются все программы, выполняемые в сценариях входа и выхода пользователя из системы. Сценарии входа начинаются с преамбулы [Logon], сценарии выхода начинаются с преамбулы [Logoff].

Пример файла scripts.ini:

[Logon]
0CmdLine=date.sh
0Parameters=test
1CmdLine=test.sh
1Parameters=new
[Logoff]
0CmdLine=touch.sh
0Parameters=
1CmdLine=Logoff.bat
1Parameters=1.txt
2CmdLine=C:\share\Logon.bat
2Parameters=

Файлы сценариев (за исключением локальных) хранятся в каталогах: {GUID GPT}/Machine/Scripts/Shutdown и {GUID GPT}/Machine/Scripts/Startup. Настройки политики для сценариев запуска и завершения работы компьютера хранятся в файле {GUID GPT}/Machine/Scripts/scripts.ini. В файле scripts.ini перечисляются все скрипты, выполняемые в сценариях запуска и завершения работы компьютера. Сценарии запуска компьютера начинаются с преамбулы [Startup], сценарии завершения работы начинаются с преамбулы [Shutdown].

Пример файла scripts.ini:

[Startup]
0CmdLine=hello.bat
0Parameters=
1CmdLine=notescript.vbs
1Parameters=
2CmdLine=notescript2.vbs
2Parameters=
3CmdLine=touch.bat
3Parameters=
[Shutdown]
0CmdLine=touch.bat
0Parameters=

Файл scripts.ini закодирован в формате UTF-16LE (little-endian).

Примечание: Настройки политики для скриптов PowerShell хранятся в файлах {GUID GPT}/User/Scripts/pgscripts.ini (для сценариев входа и выхода пользователя) и {GUID GPT}/Machine/Scripts/pgscripts.ini (для запуска и завершения работы компьютера).


Права и разрешения

  • По умолчанию разрешение на изменение параметров для редактирования GPO имеют члены групп безопасности «Администраторы домена», «Администраторы предприятия», «Владельцы-создатели групповой политики»;
  • Сценарии запуска (Startup) и завершения работы выполняются под учетной записью локальной системы, и они имеют полные права, связанные с возможностью запуска под учетной записью локальной системы;
  • Сценарии входа (Logon scripts) и выхода (Logoff scripts) запускаются от имени пользователя, а не администратора, и их права соответственно ограничены;
  • В Windows Vista сценарии запуска по умолчанию выполняются асинхронно. Это поведение отличается от более ранних операционных систем;
  • Настройка синхронного запуска сценариев запуска может привести к замедлению процесса загрузки;
  • В Windows Vista сценарии запуска, выполняемые асинхронно, не будут видны. Включение параметра групповой политики Run Startup Scripts Visible не повлияет на асинхронный запуск сценариев запуска.

Диагностика проблем при работе с политикой скриптов

На контроллере домена

  • Проверить работоспособность загружаемого скрипта в дистрибутиве ALT;
  • Убедиться, что кодировка файла со скриптом — UTF8;
  • Убедиться, что скрипт расположен в каталоге (GPT) применяемого объекта групповой политики (GPO);
  • Включить групповую политику «Экспериментальные групповые политики» или групповую политику «Управление logon-скриптами»;
  • Убедиться, что целевой компьютер входит в подразделение (OU), к которому привязан объект групповой политики GPO.

На компьютере пользователя

  • Проверить версию gpupdate. Политики скриптов выполняются с релиза 0.9.11-alt1.
  • Убедиться, что механизм применения политик (gpupdate) запущен:
    # gpupdate-setup status
    
  • Убедиться, что служба скриптов запущена:
    # systemctl status gpupdate-scripts-run.service
    
  • Проверить содержимое каталога и права для загруженных скриптов:
    # ls -Rl /var/cache/gpupdate_scripts_cache/
    
  • Проверить состояние службы запуска скриптов пользователя через вывод команды (от пользователя):
    $ systemctl --user status gpupdate-scripts-run-user.service
    
  • Вывести журнал применения политик:
    # gpoa --loglevel 0