Вопрос или проблема
Я применяю CIS Benchmark для Windows 11 на массовых машинах, не входящих в домен.
- использование Set-ItemProperty -Path $Path -Name $Name -Value $Value изменяет только значения реестра, а не локальную групповую политику.
- Я ищу сценарий, который я могу запустить удаленно на нескольких машинах для применения необходимых конфигураций на уровне локальной групповой политики.
Ответ или решение
Изменение локальной групповой политики для неподключенных к домену Windows 11 с помощью скрипта
Актуальность применения стандартов безопасности, таких как CIS Benchmark для Windows 11, становится всё более важной, особенно в контексте организаций, использующих неподключенные к домену машины. Для достижения этой цели необходимо корректно настроить локальную групповую политику (GPO), поскольку изменения в реестре не могут обеспечить тот же уровень конфигурации.
Основные задачи
- Изменение локальных параметров групповой политики: Для успешного применения CIS Benchmark необходимо управлять локальными политиками, а не только реестровыми значениями.
- Удаленное управление: Мы стремимся создать скрипт, который позволит выполнять изменения на множествах машин удалённо, минимизируя затраты времени и ресурсов.
Решение
Использование 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]
}
}
Объяснение скрипта
- Список компьютеров: Перечислите имена компьютеров, на которых вы хотите применить настройки.
- Функция
Set-LocalGPO
: Эта функция будет вызываться для каждого компьютера и каждой настройки. Она проверяет наличие доступа к удаленному компьютеру и вносит изменения в локальную политику. - Конфигурации: В словаре
$configurations
вы можете настроить различные параметры, соответствующие рекомендациям CIS Benchmark. - Цикл: Проход по каждому компьютеру и каждому параметру, применяя нужные изменения.
Заключение
Запуск данного PowerShell-скрипта даст возможность своевременно адаптировать акции по повышению безопасности, соответствуя требованиям CIS Benchmark. Это не только обеспечит соответствие требованиям безопасности, но и упростит процесс управления множественными неподключенными к домену машинами.