Как я использую PowerShell GPO cmdlets для установки защиты файлов?

Я должен автоматизировать создание несколько групп безопасности, затем создать и применить GPO, который включает OU / Группа безопасности определенные полномочия файла и аудит.

У меня есть OU и сделанное создание группы. Я могу сделать разрешение / контролирующий как ACLs, но должен применить их как GPO. Я могу связаться с OUs/Groups, и я могу скопировать существующий GPOS, но я все еще должен заменить определенные группы безопасности. У меня действительно есть создание ключей реестра на группу безопасности, но я не могу найти документацию относительно создания разрешения файла / аудит.

Исключая Случаем: Мы развертываем Виртуальные веб-серверы, которые присвоены определенным клиентам. У нас есть сценарий PS, который создает новый OUs и группы безопасности для нового сервера. Вместо того, чтобы должными быть повторно применять сценарий PS с ACLs, если бы мы должны повторно развернуть VM, мы хотели бы автоматизировать создание GPO, которое содержит ACLs для папок по умолчанию, таким образом, мы ничего не должны касаться повторно развертывания, после того как VM вернулся.

У меня есть сценарий ACL, и это хорошо работает, но это не хорошо для автоматизации в этом случае.

3
задан 25 March 2015 в 23:14
2 ответа

Таким образом, нет возможности напрямую настроить права доступа к файлам в объекте групповой политики с помощью Powershell. (Компьютер / Политики / Параметры Windows / Параметры безопасности / Файловая система)

Однако я смог обойти это, создав объект групповой политики и вручную создав его резервную копию (единовременно). Что касается конкретного ответа, который я искал, есть 3 файла, которые необходимо отредактировать в резервной копии GPO.

  • {SOME_GUID} \ Backup.xml
  • {SOME_GUID} \ gpreport.xml
  • {SOME_GUID } \ DomainSysvol \ GPO \ Machine \ microsoft \ windows nt \ SecEdit \ GptTmpl.inf

Вам нужно будет заменить имена групп пользователей и идентификаторы безопасности заполнителями [GROUP_NAME] и [GROUP_SID] (также может быть USER ) во всех трех файлах. Вам также потребуется обновить тег {Name} в gpreport.xml и {DisplayName} в backup.XML на новое имя объекта групповой политики. Я проделал это с другим заполнителем [GPO_NAME].

Это была сложная часть, на то, чтобы разобраться с ней, потребовалось время. Вы не можете просто импортировать этот новый объект. На самом деле вам нужно создать новый пустой объект групповой политики, сделать его резервную копию и вывести файлы, которые вы обновляете из шаблона, в эту резервную копию.

Вот код, который я использовал. Здесь есть несколько заполнителей. Замените их по мере необходимости для вашей среды. Похоже, что форматирование стека в сценариях Powershell немного не работает. Работает, как вставлено.

#root path for script and files.
$scriptPath = "c:\GPO_Deployment"

# Create new GPO 
write-host "Create new GPO"
new-GPO -Name  [GPO_NAME] 

# Backup New GPO to Named folder
$backup = backup-gpo -Name  [GPO_NAME]   -Path $scriptPath

#

# Files that need to be updated:
#  GPO_TEMPLATE_FILES\Backup.xml
#  GPO_TEMPLATE_FILES\gpreport.xml
#  GPO_TEMPLATE_FILES\DomainSysvol\GPO\Machine\microsoft\windows nt\SecEdit\GptTmpl.inf

# Create Output file strucures

$newXMLpath = New-Item -Path ("{" + $backup.Id + "}") -ItemType Directory -Force
$newGPOinfPath = New-Item -ItemType Directory -Path ("{" + $backup.Id + "}\\DomainSysvol\\GPO\\Machine\\microsoft\\windows nt\\SecEdit") -Force

#get the Group SIDS for the groups we created above
$GROUP_SID =  (New-Object System.Security.Principal.NTAccount("DOMAIN", [GROUP_NAME])).Translate([System.Security.Principal.SecurityIdentifier])

write-host "Applying tranforms to template files"

# read inf_template file, replace sids, and write out
$inf_template = join-path -Path ($scriptPath + "\GPO_TEMPLATE_FILES\DomainSysvol\GPO\Machine\microsoft\windows nt\SecEdit") -ChildPath "GptTmpl.inf"
$inf_outfile = Join-Path -Path $newGPOinfPath -ChildPath "GptTmpl.inf"

(Get-Content $inf_template) | ForEach-Object {
    $_ -replace '\[GROUP_SID\]', $GROUP_SID
} | Set-Content $inf_outfile


# read Backup XML template file, replace sids, and write out
$backup_template = join-path -Path ($scriptPath + "\GPO_TEMPLATE_FILES") -ChildPath "Backup.xml"
$backup_outfile = Join-Path -Path $newXMLpath -ChildPath "Backup.xml"

(Get-Content $backup_template) | ForEach-Object {
    $_ -replace '\[GROUP_SID\]', $GROUP_SID `
        -replace '\[GPO_NAME\]', $hostedclient
} | Set-Content $backup_outfile


# read GPO Report XML template file, replace sids, and write out
$gporeport_template = join-path -Path ($scriptPath + "\GPO_TEMPLATE_FILES") -ChildPath "gpreport.xml"
$gporeport_outfile = Join-Path -Path $newXMLpath -ChildPath "gpreport.xml"

(Get-Content $gporeport_template) | ForEach-Object {
    $_ -replace '\[GROUP_SID\]', $GROUP_SID `
        -replace '\[GPO_NAME\]', $hostedclient
} | Set-Content $gporeport_outfile


Write-Host "Saving updated GPO, linking it to the new OU and moving traget web server to new OU."

# Import GPO
import-gpo -BackupId $backup.Id  -Path $scriptPath -TargetName [GPO_NAME]  -CreateIfNeeded 

$updatedGPO = get-gpo  -Name [GPO_NAME]
# Link GPO to OU 
## NOTE:  If you are updating an existing GPO Link, use Set-GPLink here
New-GPLink -Guid $updatedGPO.Id -Target ("OU=[YOUR_OU],DC=domain,DC=local") -LinkEnabled Yes

# Move web server to OU
get-adcomputer [YOUR_SERVER] | Move-ADObject -TargetPath ("OU=[YOUR_OU],DC=domain,DC=local")


# Add another wait for GPO to settle before forcing update.
Write-Host "Pausing again to allow DC to catch-up again."
start-sleep -seconds 15

write-host "Forcing a GP Update on target webserver."

Invoke-GPUpdate -Computer [YOUR_SERVER] 
2
ответ дан 3 December 2019 в 06:32

Вам нужно сделать в конфигурации компьютера. Перейдите по адресу:

Конфигурация компьютера \ Политики \ Параметры Windows \ Безопасность. Настройки \ Файловая система

Щелкните правой кнопкой мыши пустое пространство на правой панели и выберите «Добавить файл». Если в какой-либо системе, в которой вы находитесь, нет нужной папки, вы можете создать ее в этом файловом браузере. После выбора папки назначьте разрешения NTFS.

1
ответ дан 3 December 2019 в 06:32

Теги

Похожие вопросы