Изменение настроек групповых политик в GPO (через Registry.pol)

Подкоманды samba-tool gpo load и samba-tool gpo remove позволяют вносить изменения в файлы Registry.pol, содержащие настройки групповых политик в каталоге SysVol.

Для удобства работы подкоманды принимают на вход настройки в формате JSON (в виде файла либо через стандартный ввод до достижения EOF).

Пример политики, задающей начальную страницу для веб-браузера Mozilla Firefox:

[
  {
    "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
    "valuename": "StartPage",
    "class": "MACHINE",
    "type": "REG_SZ",
    "data": "homepage"
  },
  {
    "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
    "valuename": "URL",
    "class": "MACHINE",
    "type": "REG_SZ",
    "data": "samba.org"
  }
]

Значения полей keyname и valuename соответствуют значениям изменяемых атрибутов из административных шаблонов (в данном случае — административных шаблонов Firefox).

Целевые объекты для политики указываются в поле class. Возможные значения — MACHINE|USER|BOTH.

В поле type указывается тип значения реестра — REG_NONE|REG_SZ|REG_EXPAND_SZ|REG_BINARY|REG_DWORD|REG_DWORD_BIG_ENDIAN|REG_LINK|REG_MULTI_SZ|REG_RESOURCE_LIST| REG_QWORD.

В поле data указывается задаваемое значение для политики.

Добавление настроек групповых политик в GPO

Для добавления настроек групповых политик в GPO путем изменения файла Registry.pol используется следующий формат вызова:

samba-tool gpo load <gpo> [options]

В качестве значения gpo ожидается GUID требуемого объекта групповой политики. Для получения GUID может использоваться подкоманда samba-tool gpo listall.

Для задания значений для атрибутов gPCMachineExtensionNames и gPCUserExtensionNames объекта GPO могут использоваться опции --machine-ext-name и --user-ext-name. В качестве значений данных атрибутов ожидаются GUID клиентских расширений, обеспечивающих применение политик на машине. Они необходимы для корректной работы политик на клиентах под управлением ОС Windows. Данное ограничение не распространяется на применение групповых политик на клиентах под управлением ОС Linux, для которых по умолчанию данным атрибутам присваивается значение {35378EAC-683F-11D2-A89A-00C04FBBCFA2}.

Настройки могут передаваться в виде JSON-файла, указанного с помощью параметра --content, или, если параметр --content не задан, через стандартный ввод (до достижения символа EOF).

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --content=FILE.JSON — имя файла с настройками политик в формате JSON;

  • --machine-ext-name=MACHINEXTNAME — имя клиентского расширения, обеспечивающего применение групповых политик к компьютеру, для добавления в атрибут gPCMachineExtensionNames (значение по умолчанию — {35378EAC-683F-11D2-A89A-00C04FBBCFA2});

  • --user-ext-name=USEREXTNAME — имя клиентского расширения, обеспечивающего применение групповых политик к пользователю, для добавления в атрибут gPCUserExtensionNames (значение по умолчанию — {35378EAC-683F-11D2-A89A-00C04FBBCFA2});

  • --replace — замена существующих групповых политик указанными при выполнении подкоманды вместо объединения.

Примеры

Пример JSON-файла для добавления настроек групповых политик в Registry.pol (policies.json):

[
    {
        "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
        "valuename": "StartPage",
        "class": "USER",
        "type": "REG_SZ",
        "data": "homepage"
    },
    {
        "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
        "valuename": "URL",
        "class": "USER",
        "type": "REG_SZ",
        "data": "google.com"
    },
    {
        "keyname": "Software\\Microsoft\\Internet Explorer\\Toolbar",
        "valuename": "IEToolbar",
        "class": "USER",
        "type": "REG_BINARY",
        "data": [0]
    },
    {
        "keyname": "Software\\Policies\\Microsoft\\InputPersonalization",
        "valuename": "RestrictImplicitTextCollection",
        "class": "USER",
        "type": "REG_DWORD",
        "data": 1
    }
]

Пример добавления настроек в Registry.pol с указанием имени JSON-файла:

samba-tool gpo load {1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2} \
   --content=/tmp/policies.json \
   -H ldap://dc1.elles.inno.tech \
   -U Administrator
Password for [ELLES\Administrator]:

Проверка корректности добавления настроек:

samba-tool gpo show {1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2} \
   -H ldap://dc1.elles.inno.tech \
   -U Administrator
Password for [ELLES\Administrator]:
GPO          : {1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2}
display name : New Policy
path         : \\elles.inno.tech\sysvol\elles.inno.tech\Policies\{1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2}
Machine Exts : [{35378eac-683f-11d2-a89a-00c04fbbcfa2}]
User Exts    : [{35378eac-683f-11d2-a89a-00c04fbbcfa2}]
dn           : CN={1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2},CN=Policies,CN=System,DC=elles,DC=inno,DC=tech
version      : 65536
flags        : NONE
ACL          : O:S-1-5-21-3324729455-2135688933-2286696549-512G:S-1-5-21-3324729455-2135688933-2286696549-512D:P(A;CI;CCDCLCSWRPWPDTLOSDRCWDWO;;;S-1-5-21-3324729455-2135688933-2286696549-512)(A;CI;CCDCLCSWRPWPDTLOSDRCWDWO;;;S-1-5-21-3324729455-2135688933-2286696549-519)(A;CIIO;CCDCLCSWRPWPDTLOSDRCWDWO;;;CO)(A;;CCDCLCSWRPWPDTLOSDRCWDWO;;;S-1-5-21-3324729455-2135688933-2286696549-512)(A;CI;CCDCLCSWRPWPDTLOSDRCWDWO;;;SY)(A;CI;LCRPLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)S:AI(OU;CIIOIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIOIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
Policies     :
[
    {
        "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
        "valuename": "StartPage",
        "class": "USER",
        "type": "REG_SZ",
        "data": "homepage"
    },
    {
        "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
        "valuename": "URL",
        "class": "USER",
        "type": "REG_SZ",
        "data": "google.com"
    },
    {
        "keyname": "Software\\Microsoft\\Internet Explorer\\Toolbar",
        "valuename": "IEToolbar",
        "class": "USER",
        "type": "REG_BINARY",
        "data": [
            0
        ]
    },
    {
        "keyname": "Software\\Policies\\Microsoft\\InputPersonalization",
        "valuename": "RestrictImplicitTextCollection",
        "class": "USER",
        "type": "REG_DWORD",
        "data": 1
    }
]

Удаление настроек групповых политик из GPO

Для удаления настроек групповых политик из GPO путем изменения файла Registry.pol используется следующий формат вызова:

samba-tool gpo remove <gpo> [options]

В качестве значения gpo ожидается GUID требуемого объекта групповой политики. Для получения GUID может использоваться подкоманда samba-tool gpo listall.

Для удаления имен клиентских расширений из атрибутов gPCMachineExtensionNames и gPCUserExtensionNames объекта GPO могут использоваться опции --machine-ext-name и --user-ext-name.

Удаляемые настройки могут передаваться в виде JSON-файла, указанного с помощью параметра --content, или, если параметр --content не задан, через стандартный ввод (до достижения символа EOF).

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --content=FILE.JSON — имя файла с настройками политик в формате JSON;

  • --machine-ext-name=MACHINEXTNAME — имя клиентского расширения, обеспечивающего применение групповых политик к компьютеру, для удаления из атрибута gPCMachineExtensionNames;

  • --user-ext-name=USEREXTNAME — имя клиентского расширения, обеспечивающего применение групповых политик к пользователю, для удаления из атрибута gPCUserExtensionNames.

Примеры

Пример JSON-файла для удаления настроек групповых политик из Registry.pol (policies.json):

[
   {
      "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
       "valuename": "StartPage",
       "class": "USER",
   },
   {
      "keyname": "Software\\Policies\\Mozilla\\Firefox\\Homepage",
      "valuename": "URL",
      "class": "USER",
   },
   {
      "keyname": "Software\\Microsoft\\Internet Explorer\\Toolbar",
      "valuename": "IEToolbar",
      "class": "USER"
   },
   {
      "keyname": "Software\\Policies\\Microsoft\\InputPersonalization",
      "valuename": "RestrictImplicitTextCollection",
      "class": "USER"
   }
]

Пример удаления настроек из Registry.pol с указанием имени JSON-файла:

samba-tool gpo remove {31B2F340-016D-11D2-945F-00C04FB984F9} \
   -H ldap://dc1.elles.inno.tech \
   --content=policies.json
   -U Administrator
Password for [GMSA\Administrator]:

Проверка корректности удаления настроек:

samba-tool gpo show {1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2} \
   -H ldap://dc1.elles.inno.tech \
   -U Administrator
Password for [ELLES\Administrator]:
GPO          : {1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2}
display name : New Policy
path         : \\elles.inno.tech\sysvol\elles.inno.tech\Policies\{1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2}
Machine Exts : [{35378eac-683f-11d2-a89a-00c04fbbcfa2}]
User Exts    : [{35378eac-683f-11d2-a89a-00c04fbbcfa2}]
dn           : CN={1C18AE5F-AC1C-4B4F-8E24-4F17ECFB2AF2},CN=Policies,CN=System,DC=elles,DC=inno,DC=tech
version      : 65536
flags        : NONE
ACL          : O:S-1-5-21-3324729455-2135688933-2286696549-512G:S-1-5-21-3324729455-2135688933-2286696549-512D:P(A;CI;CCDCLCSWRPWPDTLOSDRCWDWO;;;S-1-5-21-3324729455-2135688933-2286696549-512)(A;CI;CCDCLCSWRPWPDTLOSDRCWDWO;;;S-1-5-21-3324729455-2135688933-2286696549-519)(A;CIIO;CCDCLCSWRPWPDTLOSDRCWDWO;;;CO)(A;;CCDCLCSWRPWPDTLOSDRCWDWO;;;S-1-5-21-3324729455-2135688933-2286696549-512)(A;CI;CCDCLCSWRPWPDTLOSDRCWDWO;;;SY)(A;CI;LCRPLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)S:AI(OU;CIIOIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIOIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)
Policies     :
[]