Windows 2008 Könyvtár jogosultságok mentése

Az előzőekben bemutattam, hogy kell rsync szolgáltatást telepíteni Windows szerverre.  Sajnos ezzel a megoldással a fájl és könyvtár jogosultságokat nem tudjuk lementeni, de szerencsére van a windowsban beépített alkalmazás ennek a problémának a megoldására.

Az icacls parancs segítségével egy könyvtár (és annak tartalma) jogosultságait le tudjuk menteni és vissza is tudjuk állítani.
Mentés:
icacls c:\windows\* /save AclFile /T

Ekkor az AclFile fájlba menti a jogosultságokat


Visszaállítás:

icacls c:\windows\ /restore AclFile


Visszaállítás az AclFile-ból


Ha egy megosztott könyvtár megosztásánál beállított jogosultságokat is menteni akarjuk, akkor a registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Shares
alatti adatokat kell menteni.

A fent leírtak segítségével mentést készíthetünk egy Windows szerver megosztott könyvtárának adatairól és azok jogosultságairól.
Mivel ezt célszerű ütemezni, ezért készítettem egy PowerShell szkriptet, amelyet a feladatütemezőben futtatva a szerver önállóan is meg tudja oldani a feladatot.

Íme a szkript, ami a fenti adatokat lementi és a 30 nappal ezelőttieket törli. Mivel az icacls kimenete elég nagy lehet, ezért érdemes tömörítve tárolni.

$NAPOK_SZAMA=-30
$MENTES_HELY="f:\backup\ACL_BACKUP\"
$LOGFAJL="f:\backup\ACL_BACKUP\ACL_save.log"
$MA= (get-date).ToString('yyyy-MM-dd')
$REGINAP=( get-date ).AddDays($NAPOK_SZAMA).ToString('yyyy-MM-dd')
$REGISTRY_CMD="reg EXPORT HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Shares"

echo "$(get-date) ACL Mentes elkezdodott" >> $LOGFAJL
invoke-expression "icacls f:\kozos\* /save $MENTES_HELY/ACL.$MA /T /C"

echo "$(get-date) ACL tomorites" >> $LOGFAJL
invoke-expression "& 'c:\Program Files\7-Zip\7z.exe' a $MENTES_HELY\ACL.$MA.7z $MENTES_HELY\ACL.$MA"

echo "$(get-date) ACL Mentes vege " >> $LOGFAJL
invoke-expression "del $MENTES_HELY\ACL.$MA"
invoke-expression "del $MENTES_HELY\ACL.$REGINAP.7z"
echo "$(get-date) Regi ACL (ACL.$REGINAP.7z) totolve" >> $LOGFAJL

echo "$(get-date) Registry Mentes elkezdodott" >> $LOGFAJL
invoke-expression "$REGISTRY_CMD $MENTES_HELY\$MA.reg "
echo "$(get-date) Registry Mentes vege " >> $LOGFAJL

invoke-expression "del $MENTES_HELY\$REGINAP.reg"
echo "$(get-date) Registry ($REGINAP.reg) totolve" >> $LOGFAJL


Kulcsszavak: Windows, Server, 2008, ACL, mentés, backup

Új hozzászólás: