我正在使用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文件后能够按预期开始工作
实际结果是该政策看起来格式正确,但从未应用
答案 0 :(得分:0)
我设法自己解决了此问题,以防其他人遇到相同问题时在此处发布。如果要以编程方式而不是通过编辑器创建GPO,则必须扩展脚本/程序以将CSE(在这种情况下为驱动器映射)和SnapIn GUID添加到gPCUserExtensionNames。
[{00000000-0000-0000-0000-000000000000}{2EA1A81B-48E5-45E9-8BB7-A6E3AC170006}][{5794DAFD-BE60-433F-88A2-1A31939AC01F}{2EA1A81B-48E5-45E9-8BB7-A6E3AC170006}]
0000 ..是核心GPO引擎,23EA ..是首选项工具CSE GUID驱动器,5794 ..是首选项CSE GUID驱动器。
如果使用所需的更改手动创建策略,则可以打开dsa.msc,启用高级功能,然后查看策略对象属性。在gPCUserExtensionNames下,您将能够看到包含需要合并到软件中的GUID的阵列。