Я использую модуль PowerShell GroupPolicy для создания и связывания новых объектов групповой политики. Мне нужно создать большое количество объектов групповой политики, и поэтому я хочу автоматизировать процесс, не взаимодействуя с редактором групповой политики.
При создании объектов групповой политики в редакторе я заметил, что каждый объект политики будет содержаться либо в одном, либо в нескольких файлах XML или файлах .INI.
Отметив выше, я начал создавать объекты групповой политики с помощью команды New-GPO, передавая флаги -Name и -Domain. После того, как объект групповой политики будет успешно создан, я (с помощью своего сценария) сгенерирую XML-файл, содержащий всю информацию, которую будет использовать политика. Ниже показан фрагмент XML-файла, который я бы создал для настройки политики подключенных дисков.
При проверке политики в редакторе все выглядит нормально. Отображаются правильные диски, и все настройки кажутся правильными. Однако политика никогда не применяется. Если я создам идентичную политику вручную через редактор групповой политики, все политики начнут работать, включая те, которые я создал с помощью powershell.
Таким образом, ошибка, по-видимому, заключается в том, что контроллер домена никогда не узнает об изменениях, но они применяются, когда вносятся изменения вручную.
Я попытался запустить gpupdate /force, который, похоже, не обновляет и не распространяет изменения.
New-Item \\$($MappedDrivesGPO.DomainName)\SYSVOL\$($MappedDrivesGPO.DomainName)\Policies\$("{"+$MappedDrivesGPO.Id+"}")\User\Preferences\Drives\Drives.xml -ItemType File -Force
Set-Content \\$($MappedDrivesGPO.DomainName)\SYSVOL\$($MappedDrivesGPO.DomainName)\Policies\$("{"+$MappedDrivesGPO.Id+"}")\User\Preferences\Drives\Drives.xml $xml
<?xml version="1.0" encoding="utf-8"?>
<Drives clsid="{8FDDCC1A-0C3C-43cd-A6B4-71A6DF20DA8C}">
<Drive clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" name="P:" status="P:" image="2" changed="2019-04-26 10:41:54" uid="{$guid1}" bypassErrors="1">
<Properties action="U" thisDrive="NOCHANGE" allDrives="NOCHANGE" userName="" path="\\fs1\Projects" label="Projects" persistent="0" useLetter="1" letter="P"/>
<Filters>
<FilterGroup bool="AND" not="0" name="$($domainName)\Drive P Access" sid="$($filterGroupSidDriveP)" userContext="1" primaryGroup="0" localGroup="0"/>
</Filters>
</Drive>
<Drive clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" name="S:" status="S:" image="2" changed="2019-04-26 10:39:21" uid="{$guid2}" bypassErrors="1">
<Properties action="U" thisDrive="NOCHANGE" allDrives="NOCHANGE" userName="" path="\\as1\Software" label="Software" persistent="0" useLetter="1" letter="S"/>
<Filters>
<FilterGroup bool="AND" not="0" name="$($domainName)\Drive S Access" sid="$($filterGroupSidDriveS)" userContext="1" primaryGroup="0" localGroup="0"/>
</Filters>
</Drive>
</Drives>
Я ожидал, что политика начнет работать должным образом после создания XML-файла.
Фактический результат заключается в том, что политика кажется хорошо сформированной, но никогда не применялась.