Csoportházirend-objektumok (GPO-k) biztonsági mentése és visszaállítása
A csoportházirend-objektumok kritikusak a Windows Server infrastruktúra kezeléséhez. A súlyos szolgáltatási problémák elkerülése érdekében az adminisztrátoroknak gondosan kell konfigurálniuk a csoportházirend-objektumokat, és fel kell készülniük a módosítások gyors visszaállítására úgy, hogy biztonsági másolatot készítenek róluk, mielőtt módosítanák őket.
Csoportházirend-frissítés
Mielőtt belevágnánk a csoportházirend-objektumok biztonsági mentésébe és helyreállításába, tekintsünk át néhány fontos részletet a csoportházirend-objektumok létrehozásáról és használatáról.
GPO-összetevők
Amikor új csoportházirend-objektumot hoz létre, a rendszer hozzárendel egy egyedi azonosítót, amelyet GUID-nek neveznek. Minden csoportházirend-objektum két részből áll:
- Csoportházirend-sablon (GPT) - A GPT a SYSVOL fájlmegosztásban található mappák egy csoportját tartalmazza („C:\WindowsSYSVOLdomainPolicies{GUID}”). Ezek a mappák a csoportházirend-objektumok tartalmának többségének tárolására szolgálnak, beleértve a sablonokat, beállításokat, parancsfájlokat és az MSI-csomagok részleteit. A GPT-t a tartomány minden DC-jére replikálja a fájlreplikációs szolgáltatások (FRS) vagy az elosztott fájlrendszer-replikáció (DFSR), a Windows verziójától függően. Valójában a csoportházirend-objektumok gyakorlatilag tartományspecifikusak, mivel a SYSVOL csak egy tartományon belül replikálódik.
- Csoportházirend-tároló (GPC) - A GPC egy groupPolicyContainer objektum, amely a tartománynév-kontextusban található a CN=System,CN=Policies alatt. Ennek az AD-objektumnak az attribútumai a csoportházirend-objektumhoz kapcsolódó hivatkozási információk tárolására szolgálnak. Jelentős, hogy ez magában foglalja a gPCFileSysPath attribútumot, amely tartalmazza a csoportházirend-objektum GPT-jének elérési útját a SYSVOL-ban. A GPT-vel ellentétben a GPC-t az Active Directory tartományi szolgáltatások replikálják a konfigurált replikációs költségnek, ütemezésnek és időköznek megfelelően.
GPO-szövetségek
A csoportházirend-objektum létrehozása után egy vagy több Active Directory-objektumhoz társítható: szervezeti egységekhez (OU-k), tartományokhoz és webhelyekhez. Ezt a társítást nem a csoportházirend-objektum tartja fenn, hanem a társított AD-objektumok mindegyike a gPLink attribútumában. Az objektum gPLink attribútumának értéke az objektumhoz társított minden csoportházirend-objektum GPC-útvonalainak listája. Amikor egy csoportházirend-objektum objektumhoz társítása létrejön vagy törlődik, csak az érintett objektum gPLink attribútumának értéke módosul.
Fontos megjegyzés, hogy bár a SYSVOL replikációja hatékonyan tartományspecifikussá teszi a csoportházirend-objektumokat, az a tény, hogy a csoportházirend-objektumok egy helyobjektumhoz kapcsolhatók, azt jelenti, hogy a csoportházirend-objektumokkal kapcsolatos információk nem feltétlenül korlátozódnak egy tartományra. A helyobjektumok az Active Directory konfigurációs partíción vannak tárolva, amely az erdő összes tartományvezérlőjére replikálódik. Ez azt eredményezi, hogy a gPLink attribútumban található csoportházirend-objektum GPC-jének elérési útja kikerül a tartományból az Active Directory replikációja során.
Csoportházirend-feldolgozási rendelés
Az Active Directory a csoportházirend-objektumokat a következő sorrendben alkalmazza:
- Helyi csoportházirend-objektumok
- Webhelyhez kapcsolódó csoportházirend-objektumok
- Domainhez kapcsolt csoportházirend-objektumok
- Szervezeti szervezeti egységhez kapcsolt csoportházirend-objektumok (a gyökértől kezdve dolgozzák fel, így a beágyazott szervezeti egységhez kapcsolt GPO elsőbbséget élvez a szülő szervezeti egységhez kapcsolt csoportházirend-objektumokkal szemben)
Az utoljára alkalmazott házirend „nyer” (kivéve, ha az „Enforce” opciót használják, amely megakadályozza, hogy egy házirendet felülírjon egy később alkalmazott házirend).
Felhasználói és számítógépes konfigurációk
Egy utolsó dolog, amit meg kell jegyezni, hogy a csoportházirend-objektumok számítógép- és felhasználói konfigurációt is tartalmaznak. Ezek az alcsoportok közel azonos házirend-beállításokat tartalmaznak, de eltérnek a csoportházirend-objektum-beállítások alkalmazásakor.
A számítógép-konfiguráció beállításai a rendszerindításkor, a felhasználói konfigurációs beállítások pedig bejelentkezéskor érvényesek a számítógépekre. Ez azt jelenti, hogy a Számítógép-konfiguráció beállításai mindig a társított számítógépekkel szemben, míg a Felhasználói konfiguráció beállításai csak akkor érvényesülnek, ha egy társított felhasználói fiók be van jelentkezve a számítógépre.
Ha egy felhasználó bejelentkezik a számítógépre, és ütközés van a Számítógép konfigurációja és a Felhasználói konfiguráció beállítása között, mindig a Számítógép konfigurációja beállítás élvez elsőbbséget.
A csoportházirend-objektum biztonsági mentési és visszaállítási folyamata a PowerShell használatával
Ha ezeket a kulcsfontosságú fogalmakat teljesen megértjük, továbbléphetünk a csoportházirend-objektumok biztonsági mentésére és visszaállítására.
Kezdjük a két vonatkozó PowerShell csoportházirend-parancsmaggal, amelyek a Microsoft Windows Remote Server felügyeleti eszközeinek részeként érhetők el:
- Backup-GPO - Ezzel a parancsmaggal nagyon egyszerűen készíthet pillanatfelvételt egy tartomány összes csoportházirend-objektumáról vagy egyetlen megadott csoportházirend-objektumról.
- GPO visszaállítása - Ez a parancsmag vissza tudja állítani a csoportházirend-objektumot a Backup-GPO parancsmag által készített biztonsági másolatban rögzített állapotába.
Biztonsági másolat készítése az összes csoportházirend-objektumról
A következő PowerShell-szkript a Backup-GPO parancsmag -All paraméterét használja a megadott tartomány összes csoportházirend-objektumának biztonsági másolatának létrehozásához egy megadott DC használatával:
$BackupPath = '\HOSTNAMEGPOBackup'
$Domain = 'domain.local'
$DomainController = 'DC.domain.local'
$BackupFolder = New-Item -Path $BackupPath -Name (Get-Date -format yyyyMMddTHHmmss) -ItemType Directory
Backup-GPO -All -Domain $Domain -Server $DomainController -Path $BackupFolderA Backup-GPO parancsmag kimenete egy külön almappából áll minden csoportházirend-objektum biztonsági mentési információi számára, valamint egy manifest.xml fájlból, amely tartalmazza az egyes almappáknak a megfelelő csoportházirend-objektumhoz való társításához szükséges információkat:
Az egyik almappába nézve azt találjuk, hogy minden biztonsági másolat egy mappából és három XML-fájlból áll:
A mappa a csoportházirend-objektum GPT-jének másolatát tartalmazza, az XML-fájlok pedig a csoportházirend GPC-jének adatait, a biztonsági mentés végrehajtására vonatkozó információkat és a csoportházirend-objektum tartalmát leíró jelentést tartalmazzák.
Biztonsági mentés verzió-ellenőrzés
A csoportházirend-objektumok egyetlen helyre történő ismételt biztonsági mentése támogatott, de a parancsfájl minden egyes végrehajtása egyedi almappát hoz létre a kimenetéhez. Az almappák elnevezése a parancsmag-végrehajtás során generált biztonsági másolat-specifikus GUID-k segítségével történik, ami kiküszöböli annak lehetőségét, hogy az ismétlődő biztonsági mentések ütközéseket egyetlen helyre nevezzenek el.
Az egyes végrehajtások kimenetének egyedi mappákba történő szétválasztása nem feltétlenül szükséges, de a Restore-GPO parancsmag viselkedése előnyt jelent ehhez. A Restore-GPO parancsmag lehetővé teszi az összes csoportházirend-objektum egyidejű visszaállítását, de a manifest.xml fájlban azonosított csoportházirend-objektumok legfrissebb biztonsági másolatát fogja használni. A biztonsági másolatok mindegyikének saját mappába való szétválasztásával biztosíthatja, hogy minden biztonsági másolatkészlet megkapja a saját manifest.xml fájlját. Ez lehetővé teszi az összes csoportházirend-objektum visszaállítását ezen biztonsági mentési készletek bármelyikében egyetlen műveletben.
A Backup-GPO parancsmag -All paraméterének használatának hátránya, hogy minden végrehajtásakor biztonsági másolatot készít a tartomány összes csoportházirend-objektumáról, nem pedig csak a megváltozott objektumokról. A probléma megkerülésének egyik módja az alábbihoz hasonló szkript használata. Arra kényszeríti a Backup-GPO parancsmagot, hogy a szkript által a frissítési mappában létrehozott fájlt használja a szkript utolsó futási idejének időbélyegének megőrzése érdekében. Ha a fájl létezik, a szkript biztonsági másolatot készít a tartomány minden olyan csoportházirend-objektumáról, amely a fájlban szereplő időbélyeg óta módosult. Ha a fájl nem létezik, a szkript létrehozza a fájlt, beállítja az időbélyeget, és biztonsági másolatot készít a tartomány összes csoportházirend-objektumáról.
$BackupPath = '\DCGPOBackup'
$Domain = 'domain.local'
$DomainController = 'DC.domain.local'
$BackupPathTracker = "$BackupPathLastBackup.txt"
if((Test-Path "$BackupPathTracker")) {
$LastBackup = Get-Date (Get-Content -Path "$BackupPathTracker")
Set-Content -Path "$BackupPathTracker" -Value (Get-Date)
$GPOs = Get-GPO -All -Domain $Domain -Server $DomainController
$GPOs | Where-Object { $_.ModificationTime -gt $LastBackup } | ForEach-Object {
Backup-GPO -Guid $_.Id -Domain $Domain -Server $DomainController -Path $BackupPath
}
} else {
Set-Content -Path "$BackupPathTracker" -Value (Get-Date)
Backup-GPO -All -Domain $Domain -Server $DomainController -Path $BackupPath
}Bár ez a megközelítés helyet takarít meg a szükségtelen biztonsági mentések korlátozásával, az általa készített biztonsági másolatok ugyanabba a mappába kerülnek, ami megnehezíti a csoportházirend-objektumok visszaállítását egy adott időpontban.
A két forgatókönyvben alkalmazott megközelítések kombinálása minden problémát megoldana, igaz?
BackupPath = '\HOSTNAMEGPOBackup'
$Domain = 'domain.local'
$DomainController = 'DC.domain.local'
$BackupPathTracker = "$BackupPathLastBackup.txt"
$BackupFolder = New-Item -Path $BackupPath -Name (Get-Date -format yyyyMMddTHHmmss) -ItemType Directory
if((Test-Path "$BackupPathTracker")) {
$LastBackup = Get-Content -Path "$BackupPathTracker"
Set-Content -Path "$BackupPathTracker" -Value (Get-Date)
$GPOs = Get-GPO -All -Domain $Domain -Server $DomainController
$GPOs | Where-Object { $_.ModificationTime -gt $LastBackup } | ForEach-Object {
Backup-GPO -Guid $_.Id -Domain $Domain -Server $DomainController -Path $BackupFolder
}
}
else {
Set-Content -Path "$BackupPathTracker" -Value (Get-Date)
Backup-GPO -All -Domain $Domain -Server $DomainController -Path $BackupFolder
}Mint kiderült, az egyes biztonsági mentési eredmények elkülönítése a saját mappájukban valójában mindent sokkal rosszabbá tesz. Ez a megközelítés a manifest.xml fájlokat is elkülöníti a saját mappájukban, mindkettő hatékonyan kiküszöböli az összes csoportházirend-objektum egyidejű visszaállításának lehetőségét, miközben hihetetlenül megnehezíti az adott csoportházirend-objektumhoz társított biztonsági másolatok megtalálását.
GPO-k visszaállítása biztonsági másolatból
A gyakorlatban ezek a megközelítések a Restore-GPO parancsmag korlátaiba ütköznek: a Restore-GPO visszaállíthat egy adott csoportházirend-objektumot vagy a manifest.xml fájlban hivatkozott legfrissebb biztonsági másolatból, vagy egy megadott biztonsági másolatból - de visszaállítja az összes A tartomány csoportházirend-objektumai egyszerre csak a legfrissebb biztonsági másolatok használatára korlátozódnak egy megadott manifest.xml fájlban.
# Restore a single GPO from its most recent backup
Restore-GPO -Name 'GpoName' -Path '\HOSTNAMEGPOBackup' -Domain 'domain.local' -Server 'DC.domain.local'
# Restore a single GPO from a specific backup
Restore-GPO -BackupId 12345678-09ab-cdef-1234-567890abcdef -Path '\HOSTNAMEGPOBackup' -Domain 'domain.local' -Server 'DC.domain.local'
# Restore all of a domain’s GPOs from their most recent backup
Restore-GPO -All -Path '\HOSTNAMEGPOBackup' -Domain 'domain.local' -Server 'DC.domain.local'Amikor egy csoportházirend-objektumot visszaállítanak a biztonsági másolatból, a csoportházirend-objektum verziója a visszaállítási folyamat részeként növekszik, hogy a replikációt a csoportházirend-objektum visszaállított példányának előnyben részesítsék.
Hogyan kerülhetnek szinkronba a verziószámok
A Restore-GPO parancsmag kimenete két verziószám-készletet tartalmaz, egyet a számítógép konfigurációjához, egyet pedig a felhasználói konfigurációhoz.
A GPT és a GPC egyaránt felelős a saját verziószámának fenntartásáért, a külön UserVersion és ComputerVersion értékeket a Felhasználói konfiguráció verziószámából, illetve a Számítógép konfiguráció verziószámából számítják ki. Ez a verziószám növelésének módja miatt lehetséges. Ez 1-gyel növekszik, ha egy csoportházirend-objektum számítógép-konfigurációja módosul, és 65536-tal minden alkalommal, amikor a felhasználói konfigurációt módosítják.
Minderre azért van szükség, mert a fentebb leírtak szerint a csoportházirend-objektum GPT-jét és GPC-jét külön-külön replikálják a különböző szolgáltatások, ami azt eredményezheti, hogy a csoportházirend-objektum GPT-jének és GPC-jének verziószáma bármely adott tartományvezérlőn nincs szinkronban - ami megakadályozza annak feldolgozását.
Törölt csoportházirend-objektum visszaállítása
A Restore-GPO parancsmag dokumentált korlátja, hogy nem használható a törölt csoportházirend-objektumok helyreállítására, mert nem fogja megtalálni a csoportházirend-objektum GPC-részét az Active Directoryban. A törölt csoportházirend-objektum helyreállításának megkísérlése a következő hibát eredményezi:
Ha azonban először vissza tudja állítani a GPC-t, a Restore-GPO használható a törölt GPO helyreállítására. Ehhez használhatjuk a Restore-ADObject parancsmagot a csoportházirend-objektum Active Directory-részének teljes helyreállításához az Active Directory Lomtárból, majd a Restore-GPO parancsmag vissza tudja állítani a GPO-t:
Bár ez a folyamat helyreállíthatja a törölt csoportházirend-objektumokat, nem tudja visszaállítani a csoportházirend-objektum törlése előtt létező gPLink-értékeket. Ennek az az oka, hogy ezek az értékek csak a csatolt objektumokon léteztek. Az egyetlen biztonságos módja ennek a korlátozásnak a gPLink-értékeket tartalmazó Active Directory külső biztonsági másolatainak kihasználása.
GPMC és AGPM használata a csoportházirend-objektumok biztonsági mentéséhez és visszaállításához
A csoportházirend PowerShell-parancsmagok nem az egyetlen lehetőség a csoportházirend-objektumok biztonsági mentésére és visszaállítására. A Microsoft a Csoportházirend-kezelő konzolt (GPMC) is biztosítja, egy MMC beépülő modult, amely a csoportházirend-objektumok biztonsági mentésére és visszaállítására használható. A Backup-GPO parancsmaghoz hasonlóan képes biztonsági másolatot készíteni egyetlen megadott csoportházirend-objektumról vagy a tartomány összes csoportházirend-objektumáról. A Restore-GPO parancsmagtól eltérően, egyszerre csak egyetlen csoportházirend-objektum visszaállítására korlátozódik.
A GPMC biztosít egy módszert a törölt csoportházirend-objektumok visszaállítására a biztonsági másolatból, de valójában nem állítja helyre a törölt csoportházirend-objektumot; valójában csak létrehoz egy új csoportházirend-objektumot, és feltölti a biztonsági másolatban található információk felhasználásával.
A GPMC másik előnye a GPO-mentések tartalmának jobb láthatósága, bár továbbra is nehéz összehasonlítani a biztonsági mentés beállításait az élő csoportházirend-objektum jelenlegi beállításaival.
A Microsoft Advanced Group Policy Management (AGPM) eszköze, amely a Microsoft Desktop Optimization Pack részeként érhető el, kibővíti a GPMC-t verziókezelési funkcióval, amely segít megtekinteni és megérteni a biztonsági másolatok tartalmát. Az AGPM előnyeit azonban általában két tényező felülmúlja: úgy tűnik, nem túl jól karbantartott, és arról híres, hogy nem játszik jól másokkal (például egy AGPM által kezelt csoportházirend-objektum AGPM-en kívüli módosítása az AGPM adatbázis megrongálódását eredményezheti). Ennek ellenére nem feltétlenül rossz eszköz; Csak azt javaslom, hogy egy kicsit foglalkozzon vele laborkörnyezetben, mielőtt megpróbálná bevezetni a termelésbe.
Hogyan segíthet a Netwrix?
A Netwrix Recovery for Active Directory egységes webes felületet biztosít, amely lehetővé teszi az Active Directory-objektumok és a csoportházirend-objektumok biztonsági mentését egyetlen pillanatfelvételben, a biztonsági mentések keresését és kezelését, az élő objektumok attribútum-módosításainak visszaállítását, valamint a törölt csoportházirend-objektumok és a
GYIK
Milyen paranccsal állíthatok vissza egy csoportházirend-objektumot biztonsági másolatból?
A Windows PowerShell-parancsmag Restore-GPO visszaállít egy csoportházirend-objektumot vagy az összes csoportházirend-objektumot az eredeti tartományba.
Hogyan importálhatok csoportházirend-objektumot fájlból?
Ha rendelkezik a Speciális csoportházirend-kezelés (AGPM) rendszergazdájaként szükséges jogosultságokkal, és exportált egy csoportházirend-objektumot egy CAB-fájlba, akkor az itt megadott lépéseket követve importálhatja a csoportházirend-objektum beállításait egy új vagy egy meglévő csoportházirend-objektumba.







