我正在使用 powershell 脚本导入已保存为 GUID(默认)的 GPO。
我希望在不同的系统上导入 GPO,此时 GPO 已保存到 CD。因此,导入单个 GPO 的简单方法是:
$domain=[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().Name
$import_array = get-childitem ($current_drive + $gpo_backup_location) | Select name
foreach ($GPO in $import_array) {
Import-GPO |
-backupgponame $GPO.name -path ($Current_Drive + $gpo_backup_location) |
-domain $domain |
-Targetname $GPO.name |
-migrationtable ($Current_drive + $mig_table_path) |
-Createifneeded;
}
}
$import_array 命令给了我我的文件夹名称
Name
----------
GPO-1
GPO-2
GPO-3
GPO-4
and so on...
我想遍历这些并导入每一个。使用另一个代码块保存 GPO,以将 GPO 备份为它们的显示名称。(GPO-1、GPO-2 等)
我一生都无法弄清楚如何强制它查看文件夹名称并导入这些
编辑
备份是使用以下代码创建的:
Function GPO_Backup_DisplayName ($MenuChoice) {
write 'Backing Up GPOs by Display Name'
Foreach ($GPO in $GPO_Temp_Backup) {
$GPOBackup = Backup-GPO `
-name $GPO.DisplayName `
-path ($Current_drive + $GPO_Backup_Location) `
-Domain $domain;
Get-GPOReport $GPO.DisplayName `
-reporttype HTML `
-Domain $domain `
-path ($Current_drive + $GPO_Backup_HTML_Report + $GPO.DisplayName + ".html");
Rename-item
-path ($Current_drive + $GPO_Backup_Location + "{" + $GPOBackup.Id + "}") `
-newname $GPO.DisplayName
}
}