Backup-GPO -ALLでとったGPOをまとめてリストアする
GPOバックアップを取るとmanufest.xmlというファイルができます。
そのxmlを読み込んで、importしていくよ
「PsBase」というのがよく分からないけど、Powershellでない別のPSプロバイダー(ここではXML)へアクセスできるようにしているみたい。
ちなみに、XMLを読み込むとXMLElementという型になって、[string]変数名とか、ToStringをしても、型変換できない。
イマイチよくわからん・・・

# パスを指定
$PATH = $args[0]
# XML読み込み
$XML = [XML](Get-Content -Path $PATH\manifest.xml -Encoding UTF8)
$COUNT = $XML.Backups.BackupInst.Count
# バックアップされたGPOからのインポート
for ($i=0; $i -lt $COUNT; $i++){
$ID = $XML.Backups.BackupInst.ID[$i].PsBase.InnerText
$TARGET = $XML.Backups.BackupInst[$i].GPODisplayName.PsBase.InnerText
Import-GPO -CreateIfNeeded -BackupId $ID -TargetName $TARGET -Path $PATH
}
使い方
![]()
