如何使用PowerShell从已导出的GPT文件创建新组策略?
从GPT文件用PowerShell创建新组策略
可以实现,下面是具体步骤和脚本:
前提准备
确保你已将SomeCustomPolicy.gpt文件放到组策略模板的默认存储路径:
- 本地环境:
C:\ProgramData\Microsoft\Group Policy\Templates - 域环境:域控制器的
\\<你的域名>\SysVol\<你的域名>\Policies\PolicyDefinitions
方法一:使用GPMC COM对象(推荐,支持全类型策略)
这是最可靠的方式,能完整导入模板中的所有设置:
# 初始化GPMC COM对象 $gpmc = New-Object -ComObject GPMgmt.GPM $gpmConst = $gpmc.GetConstants() # 连接到目标域(本地环境可留空域名参数) $gpmDomain = $gpmc.GetDomain("", $null, $gpmConst.UseAnyDC) # 创建新GPO $newGPO = $gpmDomain.CreateGPO() $newGPO.DisplayName = "NewCustomPolicyFromGPT" $newGPO.Description = "从SomeCustomPolicy.gpt模板创建" # 加载GPT模板 $templateCollection = $gpmc.GetTemplateCollection() $templateCollection.Load("C:\ProgramData\Microsoft\Group Policy\Templates\SomeCustomPolicy.gpt") # 将模板设置合并到新GPO的用户配置节点 $newGPO.GetUserConfiguration().Merge($templateCollection, $gpmConst.MergeReplaceAll) # 保存GPO $newGPO.Save()
方法二:针对注册表类策略的快速方式
如果你的模板仅包含注册表设置,可手动解压GPT文件(本质是zip包),然后用Import-GPRegistryValue导入:
# 解压GPT文件到临时目录 Expand-Archive -Path "SomeCustomPolicy.gpt" -DestinationPath "C:\Temp\GPTPolicy" -Force # 创建新GPO New-GPO -Name "NewCustomPolicyFromGPT" -Comment "从GPT模板导入注册表设置" # 导入注册表设置到新GPO的用户配置 Import-GPRegistryValue -Name "NewCustomPolicyFromGPT" -User -Path "C:\Temp\GPTPolicy\User\registry.pol"
验证与刷新
# 查看新GPO的信息 Get-GPO -Name "NewCustomPolicyFromGPT" # 强制刷新本地组策略(用户节点) Invoke-GPUpdate -Target User -Force
注意事项
- 必须以管理员权限运行PowerShell
- 域环境下需确保你有创建GPO的权限,且模板已同步到域中央存储
- GPT模板文件不可随意修改文件名,否则可能无法正常加载
内容的提问来源于stack exchange,提问作者Vishwakalyan
相关产品推荐
相关产品推荐

