簡體   English   中英

基於GPO DisplayName而不是Id的備份GPO

[英]Backup GPOs basing on GPO DisplayName rather than Id

所以我正在備份域控制器的所有GPO,我注意到Backup-GPO cmdlet備份GPOS的方式非常不友好。 默認情況下,它為每個以“ID”命名的GPO創建一個文件夾,該ID甚至不匹配其“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備份文件夾到如果我使用那個可怕的名字導入?

謝謝

將每個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不支持它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM