#1 Powershell备份组策略
PS脚本代码如下:
$a=Get-Date -Format "yyyyMd"
#example yyymd=2023128
$path="D:\GPOBackup"
#change it
New-Item $path -ItemType Directory -Name $a
$abcs=get-GPO -all
foreach ($abc in $abcs)
{
$c=$abc.DisplayName
New-Item $path\$a -ItemType Directory -Name $abc.displayname
Backup-GPO -Name $abc.displayname -Path "$path\$a\$c"
}
在域上建一个任务计划,每天运行。
它会在d:\gpobackup目录内建一个当前日期的文件夹,然后把每个组策略都备份进去。
效果如图:
每个文件夹都是组策略的名字,里面是它的GUID的本体。
这里的{}内的数字式backupid,每次都不一样的,不用去在意这个。
#2 Powershell还原组策略
Restore-GPO -Name "New Group Policy Object0128" -Path "D:\GPOBackup\2023128\New Group Policy Object0128"
还原目的不是某个GPO被删除后还原,是源GPO还在的时候,配置变化了,还原回之前的版本。
还原必须是原GPO还在的时候,就是那个GUID必须一致的情况下。
如果新建了一个,再还原,虽然能成功,但是会出现两个同样名字的GPO,也很怪。
如果已经被删了,就要用Import-gpo命令通过Backupid导入。
#3Powershell导入组策略(可以跨域)
$path="D:\GPOBackup\2023128"
$as=(Get-ChildItem -Path $path).Name
foreach ($a in $as)
{
$b=Get-ChildItem -Path $path\$a
import-gpo -BackupId "$b" -TargetName "$a" -Path $path\$a -CreateIfNeeded
}
用这个脚本的前提是用#1中的方法备份了组策略。
它会循环读取$path下的文件夹名和下一级的文件夹名。
然后作为backupid和targetname导入到(另一个)域内。
测试正常。
标签:GPO,跨域,组策略,abc,还原,Powrershell,Path,path From: https://blog.51cto.com/xifanliang/6026245