未应用 GPO

GPO not being applied

我正在使用 powershell GroupPolicy 模块来创建和 link 新的 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 文件后按预期开始工作

实际结果是该政策似乎形成良好,但从未应用

我自己设法解决了这个问题,在这里发帖以防其他人遇到同样的问题。如果您以编程方式而不是通过编辑器创建 GPO,则必须扩展 script/program 以将 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 的数组。