Backup-GPO -ALLでとったGPOをまとめてリストアする
GPOバックアップを取るとmanufest.xmlというファイルができます。
そのxmlを読み込んで、importしていくよ
「PsBase」というのがよく分からないけど、Powershellでない別のPSプロバイダー(ここではXML)へアクセスできるようにしているみたい。
ちなみに、XMLを読み込むとXMLElementという型になって、[string]変数名とか、ToStringをしても、型変換できない。
イマイチよくわからん・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# パスを指定 $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 } |
使い方