Windows - IIS biztonsági másolatok listázása szkriptekből

forráskód letöltése
Az Internet Information Services (IIS) szolgáltatás konfigurációs beállításait tároló metaadatbázis biztonsági mentései több módszerrel is végrehajthatók, újságunkban írtunk már a felügyeleti konzol és szkriptek segítségével végzett mentési megoldásokról is. Most a meglévő biztonsági másolatok listázásának és tulajdonságainak megjelenítésével foglalkozunk.
Mellékelten megtalálható az alábbi szkript "EnumBackup.vbs" néven. Futtatásával megjelenítjük a képernyőn a helyi gép IIS metaadatbázisának eddig elkészült biztonsági mentéseit (rendszergazdai jogosultságot igényel).
Biztonsági mentések megtekintése
Nyissuk meg az "Internet szolgáltatáskezelő" ("Internet Services Manager") felügyeleti konzolt, kattintsunk az egér jobboldali gombjával a számítógép objektumra, majd a "Konfiguráció biztonsági mentése/visszaállítása" ("Backup/Restore Configuration") menüre. A megjelenő ablak listájában láthatók az eddigi mentések, minden bejegyzéshez tartozik egy sorszám (#), dátum, idő és egy név.
A biztonsági másolat a %systemroot%\system32\inetsrv\MetaBack mappában jön létre "mentésneve.md*" néven. A "*" helyén a lista "#" oszlopában lévő verziószám kerül és a "mentésneve" értelemszerűen az általunk beírt név.
Biztonsági mentések megjelenítése szkriptből
A fenti lista szkriptek segítségével is lekérhető, de nincs szükség a %systemroot%\system32\inetsrv\MetaBack mappa tartalmának közvetlen kiolvasására, mert az IIS tartalmaz egy a célnak megfelelő metódust, "EnumBackups" néven.
Szkriptünk elején hozzunk létre egy változót "Text" néven, ebben fogjuk létrehozni és tárolni a listát, első lépésben töröljük a tartalmát.
Text=""
Hagyjunk figyelmen kívül miden hibát, mely a szkript futása közben keletkezik. Akkor is létrejöhetnek a futtatást felfüggesztő hibák, ha a lista lekérése egyébként sikeres lenne, ezért utasítsuk a WSH-t (Windows Scripting Host) a hibák mellőzésére.
 On Error Resume Next 
Kapcsolatot teremtünk az IIS szolgáltatással a helyi gépen (localhost).
 Set CompObj = GetObject("IIS://LocalHost") 
Az "Index" változóban tároljuk a biztonsági másolatok számát.
 Index = 0 
Egy ciklus segítségével végezzük a listakészítést, mert nem tudhatjuk előre hány mentéssel van dolgunk.
 Do While True 
Most következik a fent említett "EnumBackups" metódus meghívása, visszatérési értékei a következők:
  • "" (üres sztring) = mentés helye maximum 100 karakter hosszan, ha nincs megadva az alapértelmezett helyen történik a keresés.
  • Index = mentés sorszáma (mi kezeljük)
  • Version = mentés verziószáma
  • Location = fájlnév
  • GMTDate = dátuma és ideje GMT szerint
CompObj.EnumBackups "", Index, Version, Location, GMTDate 
Ha hiba keletkezik a lekérdezés során, kilépünk a ciklusból. Alapesetben akkor kapjuk az első hibakódot, ha nincs több megjelenítendő mentés.
    If Err.Number <> 0 Then 
     Exit Do 
    End If 
Minden egyes bejegyzést elhelyezünk a "Text" változóba.
  Text=Text & Version & ", " & Location & ", " & GMTDate & chr(10) & chr(13)
Egyesével növeljük az "Index" változó értékét.
  Index = Index + 1 
Zárjuk a ciklust.
 Loop 
Végül megjelenítjük a "Text" változó értékét a képernyőn.
Wscript.echo Text