そこで、何が起こっているのかをデバッグできるように、コードを少し変更することにしました。と を追加writeout $GPOBackup
しましwriteout $GPO
た。興味深いことに、これは私が見たものと似ています。(マイクロソフトのページからの例)
writeout $GPOBackup
私に提供しました:
C:\PS>
Backup-Gpo -Name TestGPO -Path C:\GpoBackups -Comment "Weekly Backup"
DisplayName : TestGPO
GpoId : 35c12ab3-956c-45d5-973b-46b17d225f47
Id : 2b509d4e-40f5-4337-82f7-458584555d0c
BackupDirectory : C:\GpoBackups
CreationTime : 2/25/2009 8:48:19 PM
DomainName : contoso.com
Comment : Weekly Backup
writeout $GPO
私に提供しました:
Id: 35c12ab3-956c-45d5-973b-46b17d225f47
DisplayName : TestGPO
Path: cn={35c12ab3-956c-45d5-973b-46b17d225f47}
最初の出力でわかるように、GpoId と Id があります。2 番目のコマンドの出力では、ID が元の GpoID に突然変更されます。backup-gpo
コマンドが GPO を保存するとき、コードの最初のブロックから受け取った Id を使用して保存します。その後、ID は に変わりますGpoId
。なぜこれが起こるのかはわかりませんが、とにかく、これを理解したら、修正は簡単でした. 次のコードにより、次のことが可能になりましbackup GPOs
たDisplayName
Foreach ($GPO in $GPO_Temp_Backup) {
$GPOBackup = Backup-GPO -name $GPO.DisplayName -path ($Current_drive + $GPO_Backup_Location + "\" + "{" + $GPO.Id + "}") -domain $domain
rename-item -path ($Current_drive + $GPO_Backup_Location + "\" + "{" + $GPOBackup.Id + "}") -newname $GPO.DisplayName
}
$oldfilename = ($Current_drive + $GPO_Backup_Location + "\" + "{" + $GPOBackup.Id + "}")
write $oldfilename