グループポリシー(GPO)をドメイン間で移動させる手順を解説

GPOを別ドメインへ「移動」する実務は、移行元GPOのバックアップを取得し、移行先で新規GPOへ設定をインポートし、ドメイン固有のユーザー・グループ・UNCパスを移行テーブルで置換する作業です。GPOリンク、セキュリティフィルター、WMIフィルター、委任、ソフトウェア配布元まで自動的に同一になるとは限りません。まず設定だけを未リンクの検証GPOへ取り込み、差分を確認してから段階的にリンクします。

移行元を削除してから移行先を試すのは「移動」ではなく復旧不能リスクです。移行が完了し、戻し試験が済むまで元GPOとバックアップを保持します。

目次

移行対象を棚卸しする

GPMCレポートをHTML/XMLで保存し、GPO名、GUID、User/Computer設定、リンク先、リンク順序、Enforced、継承、セキュリティフィルター、Delegation、WMIフィルターを一覧化します。Group Policy Preferencesのドライブマップ、プリンター、ファイル、ローカルグループには移行元ドメインのSIDやUNCが埋まっていることがあります。

移行先ドメインで同じ役割を持つグループ、サーバー、共有、証明書、スクリプト、アプリ配布パスを決めます。名前が似ていても権限や用途が同じとは限りません。SID履歴や信頼関係に依存して一時的に動く状態を成功とせず、移行後の正規プリンシパルへ置換します。

バックアップを取得する

GPMCでは移行元GPOを右クリックしてバックアップできます。PowerShellなら`Backup-GPO`を使い、説明、作業番号、保存場所を記録します。バックアップ先はアクセス制御された管理共有とし、SYSVOLをエクスプローラーで直接コピーして代用しません。

# ドメイン名・パス・GPO名は承認済みの実環境に置き換える
$sourceDomain = 'source.example'
$src = 'Legacy-Client-Policy'
$backupPath = 'D:\GPO-Backups\Change-20261020'
if (-not (Test-Path -LiteralPath $backupPath -PathType Container)) {
    throw 'バックアップ先フォルダーを事前に準備してください。'
}
$backup = Backup-GPO -Name $src -Domain $sourceDomain -Path $backupPath -Comment 'Approved migration backup' -ErrorAction Stop
$backup | Select-Object DisplayName, GpoId, Id, DomainName, CreationTime

Backup-GPOは保存先フォルダーを作成しません。事前に用意した場所を指定します。出力のIdは今回のバックアップID、GpoIdは元GPOのIDです。取り違えず、採用したバックアップのIDを作業記録へ残してください。同名GPOが複数ある場合は、確認した元GPOのGUIDを-Guidへ指定します。Backup-GPOの仕様

バックアップフォルダーにはGPO設定やスクリプトが含まれるため、一般利用者が読める場所やメール添付へ置きません。ハッシュ、作成時刻、実行者、移行元ドメイン、使用したDCを記録し、別管理端末でバックアップ一覧を読み取れることを確認します。

移行テーブルを作る

移行テーブルは、移行元のセキュリティプリンシパルとUNCパスを移行先の値へマップします。Migration Table EditorでGPOやバックアップから参照を取り込み、各行を「置換」「移行元を維持」「未指定」のどれにするかレビューします。未知のSIDを一括してDomain Usersへ置換するのは危険です。

ファイル配布元、ログオンスクリプト、ホームフォルダー、プリンターサーバー、ソフトウェア配布パッケージを実在確認します。移行先共有には対象コンピューターまたはユーザーの読み取り権限が必要です。パス置換後も、内容、署名、バージョンが正しいことをハッシュで確認します。

移行先へインポートする

  1. 移行先ドメインで用途が分かる新規GPO名を決め、検証OUにはまだリンクしません。
  2. GPMCの「設定のインポート」またはImport-GPOを使い、対象バックアップと移行テーブルを指定します。
  3. インポート後のGPOレポートを取得し、移行元レポートと設定項目数、値、無効/有効状態を比較します。
  4. セキュリティフィルター、委任、WMIフィルター、リンクは移行先の設計に従い別途設定します。
  5. 検証OUへリンクし、テストユーザーとテスト端末だけでgpresultと実動作を確認します。
# 記録したバックアップIDへ必ず置き換える(この文字列のままでは実行不可)
$backupId = '<確認済みバックアップIDのGUID>'
$params = @{
  BackupId = $backupId
  Domain = 'destination.example'
  Path = 'D:\GPO-Backups\Change-20261020'
  TargetName = 'Pilot-Client-Policy'
  MigrationTable = 'D:\GPO-Maps\ClientPolicy.migtable'
  CreateIfNeeded = $true
  WhatIf = $true
  ErrorAction = 'Stop'
}
Import-GPO @params

例のドメイン名、パス、IDは実環境に置き換え、移行先の権限を持つ管理セッションで実行します。-Domainを省略すると通常は実行ユーザーのドメインが使われるため、移行元・移行先を明示します。セッションのドメインと対象ドメインが異なる場合は信頼関係の要件があります。信頼関係を追加する前提にはせず、それぞれの管理環境でバックアップとインポートを分ける運用を検討してください。

-BackupGpoNameは同じGPOの最新バックアップを選びます。レビュー済みの版を固定するため、上の例では記録した-BackupIdを指定しています。-CreateIfNeededは「存在しないときに作る」指定であり、既存GPOへの上書きを拒否する安全装置ではありません。実行直前にも移行先ドメインと対象名を照合し、同名GPOがないこと、未リンクの検証用GPOを対象にしていることを確認します。既存GPOを更新する必要がある場合は別の変更として、対象GUID、バックアップ、承認を用意してください。Import-GPOのパラメーターと動作

最初は-WhatIfの出力を対象確認と承認記録に使います。ただし実際のインポートは行われず、権限、移行テーブルの内容、クライアント適用結果まで検証できた証拠にはなりません。承認後の実行ではWhatIfを外し、未リンクの検証GPOで実際の設定差分を確認します。-Serverを使う場合は複製が正常な書き込み先DCを明示します。本例は手順説明用で、このページの更新時にActive Directory環境で実行したものではありません。

インポートされないものを補う

GPOバックアップのインポートは設定を対象とします。リンク先OUやサイト、リンク順序、Enforced、ブロック継承はActive Directory側の構成です。WMIフィルター、GPO ACL、委任、Starter GPO、IPsecや証明書依存も個別確認します。元と同じリンク順序を機械的に再現せず、移行先の既存GPOとの競合をRSoPで評価します。

ソフトウェアインストール設定は、移行先クライアントからパッケージに到達でき、署名、アーキテクチャ、再起動条件が適切かを確認します。古いMSIやスクリプトを移行できたこと自体は、2026年時点で安全に使える根拠になりません。製品サポートが切れている設定は更改対象にします。

検証と段階展開

`gpresult /h`、イベントログ、レジストリやファイルの期待値、業務アプリ動作を確認します。ユーザー設定とコンピューター設定を分け、再起動と再サインインを必要回数行います。低速リンク、VPN、別サイト、標準ユーザー、管理端末で同じ結果になるかを試します。

パイロットの次は少数部署、一般部署、例外端末の順に広げます。展開中はヘルプデスク問い合わせ、サインイン時間、アプリ起動失敗、プリンター接続、ファイル配布エラーを監視します。移行元と移行先を同時適用して二重設定にしないよう、グループとリンク期間を管理します。

切り戻しと廃止

問題が出たら移行先GPOのリンクを無効化し、移行前の対象グループとリンクを復元します。PreferencesのReplace/Deleteやスクリプトが既に端末データを変更した場合、GPOを外すだけでは戻りません。各設定の逆操作やバックアップ復元を変更計画に含めます。

全対象で安定した後も、移行元GPOを直ちに削除せず、読み取り専用の証跡として期限付きで保持します。廃止時はGPO名とGUID、最終バックアップ、リンクなし、参照なし、承認者を二者確認します。バックアップの保持期限と安全な廃棄も決めます。

移行完了チェック

  • 移行テーブルに未解決SID・旧UNCが残っていない
  • 設定レポートの差分を説明できる
  • リンク、WMI、委任、フィルターを移行先設計で再設定した
  • 標準ユーザーと複数サイトでRSoPと実動作を確認した
  • 失敗時に旧リンクへ戻し、端末変更も復元できる
  • 移行元削除の承認と保持済みバックアップがある

GPO内スクリプトと証明書を精査する

スタートアップ/ログオンスクリプト、証明書自動登録、セキュリティオプション、ファイアウォール、監査設定は、移行先の名前解決やPKI、ログ収集先へ強く依存します。ファイルがインポートされたことだけで有効とせず、署名、実行アカウント、到達先、終了コード、タイムアウトを検証します。旧ドメインの管理者グループを移行先ローカル管理者へ残さないようにします。

移行先に同名のGPOが既にある場合は、表示名で判断せずGUIDとレポートを比較します。既存GPOへインポートすると設定が置換されるため、事前バックアップと変更承認が必須です。競合解消はGPOを一つにまとめるか、責任範囲ごとに分けるかを決め、リンク順で偶然勝たせる設計を避けます。

複製とバックアップの健全性

移行前後にAD複製とSYSVOLのDFSR状態を確認します。複製障害中にインポートすると、管理端末が接続したDCによって見える版が異なります。GPOのUser/Computerバージョン、最終変更時刻、各DCの収束を確認し、バックアップから別の検証ドメインへ読み込めることを定期的に試します。

公式情報・参考資料

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメント一覧 (2件)

コメントする

目次