因此,我备份域控制器的所有GPO,我注意到备份-GPO备份GPO的方式是如此的不友好。默认情况下,它为每个以"ID“命名的GPO创建一个文件夹,该文件夹甚至与其"GPOID/GUID”不匹配。
下面是一个示例,我将只备份一个特定的GPO:
backup-gpo -guid ff8de365-0842-46ab-9ac7-64ebd8dd4614 -path C:\
DisplayName : N12 Workstation Policy
GpoId : ff8de365-0842-46ab-9ac7-64ebd8dd4614
Id : dd33c220-bac8-4ebd-a9d9-7729fcea9c38
BackupDirectory : C:\
CreationTime : 20/10/2015 17:41:43
DomainName : martyn.local这是在发出前一个命令之后创建的备份文件夹名:
{DD33C220-BAC8-4EBD-A9D9-7729FCEA9C38}如果我试图备份所有的GPO,我会为每个GPO提供一个文件夹。有没有任何方法可以根据GPO DisplayName而不是那个不友好的字符串来命名这些文件夹?
这就是我想得到的:
N12 Workstation Policy我之所以要这样做,是因为如果我想在将来重新导入一个GPO,并且我不记得GPO的名称,我怎么知道如果我使用那个糟糕的名称,哪个是要导入的GPO备份文件夹?
谢谢
发布于 2015-10-21 13:17:29
备份每个GPO以分离备份文件夹的子文件夹:
$invalidChars = ':\\/' + [RegEx]::Escape(-join [IO.Path]::InvalidPathChars)
$backupDir = 'C:\backup'
Get-GPO -All | ForEach-Object {
$name = $_.DisplayName -replace "[$invalidChars]", '_'
$gpoDir = Join-Path $backupDir -ChildPath $name
New-Item $gpoDir -Type Directory | Out-Null
Backup-GPO -Guid $_.Id -Path $gpoDir
}替换方法是从名称中删除路径中无效的字符(如果包含GPO的名称(例如,>),子文件夹的创建将失败)。正如@briantist在他的评论中所建议的,与其手工维护列表,不如从相应的IO.Path属性导出无效字符列表。但是,您可能需要手动添加其他有问题的字符,特别是:。冒号用于访问交替数据流,因此在技术上它是路径中的一个有效字符,但PowerShell不支持它。
https://stackoverflow.com/questions/33255813
复制相似问题