Редактирование локальной групповой политики для Windows 11 без доменной интеграции с помощью скрипта

Вопрос или проблема

Я применяю CIS Benchmark для Windows 11 на массовых машинах, не входящих в домен.

  • использование Set-ItemProperty -Path $Path -Name $Name -Value $Value изменяет только значения реестра, а не локальную групповую политику.
  • Я ищу сценарий, который я могу запустить удаленно на нескольких машинах для применения необходимых конфигураций на уровне локальной групповой политики.

Ответ или решение

Изменение локальной групповой политики для неподключенных к домену Windows 11 с помощью скрипта

Актуальность применения стандартов безопасности, таких как CIS Benchmark для Windows 11, становится всё более важной, особенно в контексте организаций, использующих неподключенные к домену машины. Для достижения этой цели необходимо корректно настроить локальную групповую политику (GPO), поскольку изменения в реестре не могут обеспечить тот же уровень конфигурации.

Основные задачи

  1. Изменение локальных параметров групповой политики: Для успешного применения CIS Benchmark необходимо управлять локальными политиками, а не только реестровыми значениями.
  2. Удаленное управление: Мы стремимся создать скрипт, который позволит выполнять изменения на множествах машин удалённо, минимизируя затраты времени и ресурсов.

Решение

Использование PowerShell для изменения локальных групповых политик — наиболее эффективный метод для выполнения данной задачи. В Windows 11 локальные политики хранятся в отдельной базе данных, и для их изменения можно использовать встроенные инструменты.

Пример скрипта PowerShell

Этот скрипт позволит вам изменять локальные групповые политики в соответствии с требованиями CIS Benchmark:

# Задайте необходимые параметры
$computers = @("PC1", "PC2", "PC3") # Список компьютеров для работы
$policyPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows"

# Функция для изменения локальной групповой политики
function Set-LocalGPO {
    param (
        [string]$computer,
        [string]$gpo,
        [string]$value
    )

    # Проверка на наличие доступа к удаленному компьютеру
    try {
        Invoke-Command -ComputerName $computer -ScriptBlock {
            param ($gpo, $value)

            # Определение пути к групповой политике
            $gpoPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\$gpo"

            # Проверка наличия ключа, если нет - создаем
            if (-not (Test-Path $gpoPath)) {
                New-Item -Path $gpoPath -Force
            }

            # Установка значения
            Set-ItemProperty -Path $gpoPath -Name "Value" -Value $value
        } -ArgumentList $gpo, $value
    } catch {
        Write-Host "Ошибка при доступе к $computer: $_"
    }
}

# Конфигурации для CIS Benchmark
$configurations = @{
    "NoAutoUpdate" = 1
    "EnableLUA" = 0
    # Добавьте другие параметры конфигурации по мере необходимости
}

# Применение конфигураций на каждой машине
foreach ($computer in $computers) {
    foreach ($gpo in $configurations.Keys) {
        Set-LocalGPO -computer $computer -gpo $gpo -value $configurations[$gpo]
    }
}

Объяснение скрипта

  1. Список компьютеров: Перечислите имена компьютеров, на которых вы хотите применить настройки.
  2. Функция Set-LocalGPO: Эта функция будет вызываться для каждого компьютера и каждой настройки. Она проверяет наличие доступа к удаленному компьютеру и вносит изменения в локальную политику.
  3. Конфигурации: В словаре $configurations вы можете настроить различные параметры, соответствующие рекомендациям CIS Benchmark.
  4. Цикл: Проход по каждому компьютеру и каждому параметру, применяя нужные изменения.

Заключение

Запуск данного PowerShell-скрипта даст возможность своевременно адаптировать акции по повышению безопасности, соответствуя требованиям CIS Benchmark. Это не только обеспечит соответствие требованиям безопасности, но и упростит процесс управления множественными неподключенными к домену машинами.

Оцените материал
Добавить комментарий

Капча загружается...