PowerShell:复制GPO失败HRESULT:0x8007000D

在尝试运行Copy-GPO cmdlet以使用预定义的迁移表复制组策略对象时,我收到此exception:

 System.Runtime.InteropServices.COMException (0x8007000D): The data is invalid. (Exception from HRESULT: 0x8007000D) at Microsoft.GroupPolicy.GPMResultClass.OverallStatus() at Microsoft.GroupPolicy.Gpo.CopyTo(GPDomain targetDomain, String newDisplayName, Boolean copyAcl, GPMigrationTable migrationTable, GPStatusMessageCollection& statusMessages) at Microsoft.GroupPolicy.Commands.CopyGpoCommand.ProcessRecord() at System.Management.Automation.CommandProcessor.ProcessRecord() At C:\Users\djedig\Documents\OUCopy.ps1:335 char:2 + NewGPOsFromTemplate "OU=$sSubDomain,OU=$sDivision,$sBaseRessourcenDN" $sTmplBas ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,NewGPOsFromTemplate 

这篇博客文章指出,这是由于迁移表内的目标帐户数据无法parsing,但我似乎无法弄清楚可迁移数据的“正确”格式。 事实上,在没有-MigrationTable参数的情况下运行Copy-GPO时,GPO复制得很好。

我的命令是:

 Copy-GPO -SourceName $sTemplateGPOName -TargetName $sNewGPOName -MigrationTable $sMigrationTableFile 

并且迁移表包含这两种types的一些条目:

 <?xml version="1.0" encoding="utf-16"?> <MigrationTable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.microsoft.com/GroupPolicy/GPOOperations/MigrationTable"> <Mapping> <Type>LocalGroup</Type> <Source>[email protected]</Source> <Destination>[email protected]</Destination> </Mapping> [...] <Mapping> <Type>Unknown</Type> <Source>Administrators</Source> <DestinationSameAsSource /> </Mapping> </MigrationTable> 

RA-K17-DE-allow-logon安全组作为本地域组存在,并且sAMAccountName属性确实设置为相同的值。

令我困惑的是,GPMC脚本示例集合中的CopyGPO.wsf脚本完全能够使用以下相同的迁移表创buildGPO副本:

 cscript "//NoLogo" "${env:ProgramFiles(x86)}\Microsoft Group Policy\GPMC Sample Scripts\CopyGPO.wsf" $sTemplateGPOName $sNewGPOName "/MigrationTable:`"$sMigrationTableFile`"" | Out-Null 

那么这里出了什么问题?

编辑:

源GPO对象只是定义了受限制的组和用户权限分配。 这些策略中使用的所有安全主体都包含在可迁移文件中。

我花了所有的60秒看这个,所以这是一个黑暗中的镜头,但是这个PowerShell对象的名字拼写正确的脚本? $sBaseRessourcenDN的double's'似乎$sBaseRessourcenDN ,更不要说随机'n'。