Windows - Titkosított a mappa? Állapítsuk meg programból.

WMI 16. rész

forráskód letöltése
NTFS fájlrendszer használatakor lehetőség van egyes fájlok, mappák vagy teljes kötetek tartalmának titkosítására. Ezáltal csak az a felhasználó férhet hozzá az állományokhoz, aki kódolta őket. Több módszer is rendelkezésünkre áll annak eldöntésére, hogy egy mappa tartalma titkosított-e. Cikkünkben bemutatunk néhányat, köztük a programból való megvalósítás lépéseit is.
Cikkünkhöz mellékeltünk egy szkriptet "Encrypted.vbs" néven. Futtatva kiírja, hogy az F:\TEMP mappa tartalma titkosítva van-e. Felhasználása előtt az elérési utat változtassuk meg, hogy egy valós mappára mutasson.
Az állománytitkosítást a Windows Encrypting File System (EFS) szolgáltatása az NTFS fájlrendszerhez szorosan kapcsolódva végzi. Célja a fájlok tartalmának kétkulcsú rendszerben történő titkosítása. Az eljárás lényege, hogy a titkosítást végző személy (pontosabban felhasználói fiók) adatai bekerülnek a kódolási eljárásba és így más számára nem lesz hozzáférhető az adott állomány. Még akkor sem, ha a merevlemezt áthelyezik egy másik gépbe másodlagos meghajtóként és közvetlenül próbálják elérni a fájlrendszert. A titkosítás a tömörítéshez hasonlóan valós időben, a háttérben történik, a felhasználó úgy használhatja tovább a rendszert, mint amikor kódolatlanul szerepeltek az adatok. Hogy dönthető el, hogy egy mappa vagy egy fájl titkosított-e?
Attribútumok vizsgálatával
Nyissuk meg a Windows Intézőt (Windows Explorer) és kattintsunk a vizsgálandó mappára a jobboldali egérgombbal. A megjelenő menüben lépjünk a "Tulajdonságok" ("Properties") sorra a beállítás ablak megnyitásához. Itt az "Általános" ("General") oldalon kattintsunk a "Speciális" ("Advanced") nyomógombra. Ha a következő ablakban aktív a "Tartalom titkosítása az adatvédelem érdekében" ("Encrypt contents to secure data"), akkor az adott állomány titkosított.
Eltérő színnel való megjelenítéssel
Lehetőség van az Intézőn belül más színnel megjeleníteni a titkosított tartalmú fájlokat és mappákat. Ehhez az alábbi jelölőnégyzetet kell bekapcsolni
Windows XP alatt (alapértelmezésben be van kapcsolva):
Vezérlőpult > (Megjelenés és témák) > Mappa beállításai > Nézet > Titkosított és tömörített NTFS-fájlok megjelenítése színekkel (Control Panel > (Appearance and Themes) > Folder Options > View > Show encrypted or compressed NTFS files in color).
Programból történő vizsgálattal
Ehhez a módszerhez a Windwos Management Instrumentation (WMI) szolgáltatás "Win32_Directory" osztályához kell fordulni. VB szkriptből az alábbi módon:
A "Winmgmts" interfészen keresztül küldjünk egy WQL lekérdezést a WMI-nak. Az osztály logikailag kapcsolódik a fájlrendszerhez. Hogy éppen melyik mappájához azt a "Name" tulajdonság tárolja. Használjuk példának a C:\TEMP mappát és mint egy szűrőfeltételt küldjük el. Fontos, hogy mindenhol duplán használjuk a \ jelet, különben hibajelzést kapunk. Az aktuálisan bejelentkezett felhasználó - aki a szkriptet is futtatja - nevével és jelszavával (impersonationLevel = impersonate) történik a lekérdezés végrehajtása. Amennyiben az adott személy nem rendelkezik megfelelő jogosultsággal a mappa felett, a szkript futtatása sikertelen lesz.
Set EnryptSet = GetObject ("winmgmts: {impersonationLevel = impersonate}").ExecQuery ("select * from Win32_Directory where Name='F:\\temp'")
Dolgozzuk fel a WMI-tól visszakapott eredményt: ellenőrizzük, hogy a vizsgált objektumpéldány "Encrypted" tulajdonsága milyen értékkel rendelkezik. Ha -1-el, akkor a mappa titkosított. Ha 0-val, akkor nem.
for each Enrypt in EnryptSet
 if Enrypt.Encrypted=-1 then Wscript.Echo "A mappa titkosított."
 if Enrypt.Encrypted=0 then Wscript.Echo "A mappa nem titkosított."
next

WMI cikksorozat