【发布时间】:2019-05-21 11:02:54
【问题描述】:
我正在使用 powershell GroupPolicy 模块来创建和链接新的 GPO。我有大量的 GPO 需要创建,因此我希望自动化该过程而无需与组策略编辑器交互。
我在通过编辑器创建 GPO 时注意到,每个策略对象都将包含在一个或多个 XML 文件或 .INI 文件中。
如上所述,我开始使用 New-GPO 命令创建 GPO,并传递 -Name 和 -Domain 标志。成功创建 GPO 后,我将(通过我的脚本)生成一个 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 文件后开始按预期工作
实际结果是,策略看起来格式正确,但从未应用
【问题讨论】:
标签: powershell active-directory gpo