PowerShell: Falha na cópia do GPO com HRESULT: 0x8007000D

4

Ao tentar executar o cmdlet Copy-GPO para copiar um Objeto de Diretiva de Grupo usando uma Tabela de migração predefinida, estou recebendo essa exceção:

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

Este artigo do blog sugere que seria ser devido a dados de contas de destino não resolvidos dentro da tabela de migração, mas parece que não consigo descobrir o formato "correto" dos dados migtable. Na verdade, o GPO copia muito bem quando executa Copy-GPO sem o parâmetro -MigrationTable .

Meu comando é:

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

e a tabela de migração contém algumas entradas desses dois tipos:

<?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>

O grupo de segurança RA-K17-DE-allow-logon é presente como um grupo de domínio local e o atributo sAMAccountName é realmente definido com o mesmo valor.

O que mais me intriga é o fato de que o CopyGPO.wsf da coleção de amostras de scripts do GPMC é perfeitamente capaz de criar uma cópia de GPO usando a mesma tabela de migração como esta:

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

Então, o que está errado aqui?

Editar:

O objeto de GPO de origem apenas define grupos restritos e atribuições de direitos de usuário. Todas as entidades de segurança usadas nessas políticas estão incluídas no arquivo migtable.

    
por the-wabbit 26.03.2013 / 16:55

2 respostas

0

Isso não é mais um problema nas versões mais recentes do Powershell. Eu testei basicamente a mesma sintaxe no Powershell 5 e 5.1 (depois de instalar a versão apropriada do WMF no Server 2008 R2) e ele funciona perfeitamente. Então, isso parece ser um bug no Powershell 2.

    
por 12.09.2018 / 10:02
0

Eu gastei todos os 60 segundos olhando para isso, então isso é um tiro no escuro, mas este nome de objeto do PowerShell está escrito corretamente no seu script? $sBaseRessourcenDN O dobro 's' em Recurso parece fora de lugar, sem mencionar o aleatório 'n'.

    
por 25.04.2014 / 15:59