Групповая политика Windows - Могу ли я изменить с помощью VBscript?

Во-первых, я не специалист по написанию сценариев для Windows или групповой политики, но одна из моих задач - настроить компьютеры с ОС XP, которые НЕ предназначены для работы в сети. Следовательно, я использовал VBScript для изменения параметров реестра, но теперь у меня есть некоторые параметры в групповой политике, которые я в данный момент настраиваю вручную, но хочу их настроить или каким-то образом автоматизировать.

Может кто-нибудь сказать мне, если я могу внести изменения в групповую политику с помощью VBscript или мне нужно использовать что-то еще?

Я нашел эту страницу, которая описывает некоторые возможности, но там не так много деталей, и я пока не могу найти последующие статьи.

** Дополнительная информация **

Используя gpedit.msc, я в настоящее время вручную устанавливаю следующие настройки в графическом интерфейсе:

  1. Конфигурация компьютера> Административные шаблоны> Система> Вход в систему> Всегда ожидать сеть при запуске компьютера и входе в систему
  2. Конфигурация компьютера> Административные шаблоны> Система> Отключить автозапуск
  3. Конфигурация компьютера> Настройки Windows> Настройки безопасности> Назначение прав пользователя> Доступ к этому компьютеру из сети
  4. Конфигурация компьютера> Настройки Windows> Настройки безопасности> Назначение прав пользователя> Запретить доступ к этому компьютеру из сети
  5. Конфигурация компьютера> Конфигурация Windows> Настройки безопасности> Назначение прав пользователя> Запретить локальный вход
  6. Конфигурация компьютера> Настройки Windows> Настройки безопасности> Назначение прав пользователя> Локальный вход
  7. Конфигурация компьютера> Параметры Windows> Параметры безопасности> Параметры безопасности> Доступ к сети: общие ресурсы, к которым можно получить доступ из сети

Я хочу быть в состоянии записать эти изменения с помощью VBScript или других средств (возможно,.NET?)

Я обнаружил, что для нескольких вышеуказанных настроек я могу изменить их непосредственно в реестре, но эти изменения не отображаются в редакторе групповой политики (gpedit.msc).

2 ответа

Решение

Это возможно, да.

Не очень рекомендуется, потому что поддерживаемый и рекомендуемый способ сделать это через gpedit.msc инструмент (или объекты групповой политики в домене). В результате, выполнение этого сценария в лучшем случае является полу-документированным, и вы сталкиваетесь с некоторыми странностями.

Если вы все еще решили попробовать, эти настройки на самом деле просто ключи реестра. Если можно выяснить, какие ключи изменены, тривиально написать что-то, чтобы импортировать все эти ключи реестра и получить желаемую конфигурацию. Честно говоря, я бы просто использовал командный файл.

Проблема, с которой вы столкнетесь, заключается в том, что эти изменения необходимо сохранить в %SYSTEM ROOT%\System32\GroupPolicy\User\Registry.pol быть примененным в качестве локальной групповой политики, и я не знаю хорошего сценариев для этого решения, поэтому общий обходной путь должен установить это так, как вы хотите на второй машине, и скопировать %SYSTEM ROOT%\System32\GroupPolicy\User папки и файлы на ваших целевых машинах.

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

Существует инструмент под названием GPO Registry Editor, который может редактировать / обновлять локальную групповую политику для каждой команды без перезаписи всех существующих политик (большое преимущество - просто скопировать и вставить Registry.pol). Чтобы использовать этот инструмент сначала вы можете получить исходный код. GRE написана в AutoItScript. Чтобы создать исполняемый файл, вам необходимо скомпилировать его, например, с помощью редактора AutoItScript.

Теперь у вас должен быть gre.exe, который имеет следующие параметры командной строки:

GPO Registry Editor provides read/write capabilities for registry policy files.

Usage:
-a  --add    Add the entry specified by the key, value, type, and data parameters.
-r  --remove Remove the entry specified by the key and value parameters.
-d  --data   Specifies the data of the registry entry.
-f  --file   Specifies the registry file to load or modify.
             Use `computer` or `user` to specify the system policy files.
-k  --key    Specifies the key of the registry entry.
-s  --silent Perform the operation silently (no GUI).
-t  --type   Specifies the type of the registry entry.     
-v  --value  Specifies the value of the registry entry.
-h  --help   Display this message.     
-?  --?      Display this message.

Чтобы выяснить, какие ключи соотв. значения, необходимые для установки, вы можете запустить gpedit.msc и установить настройки, которые вы хотите установить. Поскольку gpedit.msc применяет политики напрямую, вы можете открыть файл regedit.exe и перейти по адресу HKLM\SOFTWARE\Policies resp. HKCU\SOFTWARE\Policies, чтобы проверить, какой ключ был установлен.

[РЕДАКТИРОВАТЬ] Я нашел инструмент под названием Registry.pol Viewer Utility, который может читать файл политики реестра (Registry.pol), который находится в папке%SYSTEMROOT%\System32\GroupPolicy\Machine соответственно. %SYSTEMROOT%\System32\GroupPolicy\User. Он показывает, какие ключи и значения с его данными были применены к групповой политике. Такое можно легко использовать с gre.[/РЕДАКТИРОВАТЬ]

Например, для политики " Конфигурация компьютера"> "Административные шаблоны"> "Система"> "Вход в систему"> "Всегда ждать сети при запуске компьютера" и "войти в систему" можно использовать команду gre:

gre --add -s -f=computer -k="Software\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon" -v="SyncForegroundPolicy" -t REG_DWORD -d="1"

Затем можно добавить несколько команд gre в пакетный скрипт и добавить следующую команду, чтобы применить обновленную групповую политику:

gpupdate /force

Такой сценарий можно легко запустить на целевом компьютере для применения необходимых политик. Или же он может быть использован выбранным вами инструментом развертывания, таким как WPKG.

Другие вопросы по тегам