2

PowerShell スクリプトを使用して、GUID (デフォルト) として保存した GPO をインポートしています。

GPO を別のシステムにインポートしたいのですが、この時点で GPO は CD に保存されています。したがって、単一の GPO をインポートする簡単な方法は次のようになります。

$domain=[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().Name

$import_array = get-childitem ($current_drive + $gpo_backup_location) | Select name
foreach ($GPO in $import_array) {
Import-GPO |
-backupgponame $GPO.name -path ($Current_Drive + $gpo_backup_location) |
-domain $domain | 
-Targetname $GPO.name |
-migrationtable ($Current_drive + $mig_table_path) |
-Createifneeded;
}
}

$import_array コマンドでフォルダー名がわかります

Name
----------
GPO-1
GPO-2
GPO-3
GPO-4
and so on...

これらを繰り返して、それぞれをインポートしたいと思います。GPO は、GPO を表示名としてバックアップする別のコード ブロックを使用して保存されます。(GPO-1、GPO-2など)

私は一生、フォルダ名を見てこれらをインポートする方法を理解することはできません

編集


バックアップは次のコードで作成されました。

Function GPO_Backup_DisplayName ($MenuChoice) {
    write 'Backing Up GPOs by Display Name'
    Foreach ($GPO in $GPO_Temp_Backup) {
        $GPOBackup = Backup-GPO `
            -name $GPO.DisplayName `
            -path ($Current_drive + $GPO_Backup_Location) `
            -Domain $domain;
        Get-GPOReport $GPO.DisplayName `
            -reporttype HTML `
            -Domain $domain `
            -path ($Current_drive + $GPO_Backup_HTML_Report + $GPO.DisplayName + ".html");
        Rename-item 
            -path ($Current_drive + $GPO_Backup_Location + "{" + $GPOBackup.Id + "}") `
            -newname $GPO.DisplayName
    }
}
4

2 に答える 2

1

各 GPO を独自のフォルダーにエクスポートし、そのフォルダーに GPO にちなんで名前を付ける場合、これらのフォルダーをforeachループで反復処理して GPO をインポートし、ターゲット名をフォルダー名に設定できます。このようなものが動作するはずです:

Get-ChildItem "C:\backup" | % {
  $name = $_.name
  $id = (get-childitem $_) -replace '[{}]', ''
  Import-GPO -BackupId $id -TargetName $name -path $_.Path -CreateIfNeeded
}

前提条件は、次のような方法でバックアップを作成したことです。

Get-GPO -All | % {
  $name = $_.DisplayName
  $dir = New-Item "C:\backup\$name" -Type Directory
  Backup-GPO -Guid $_.Id -Path $dir
}

また、バックアップ ディレクトリには、単一の GPO バックアップを含むフォルダーのみを含める必要があります。そうしないと、 と の間にフィルターを追加する必要がGet-ChildItemありForEach-Objectます。

于 2013-04-13T00:26:25.107 に答える