Windows - Felügyeleti eszközök listázása

forráskód letöltése
Felügyeleti eszközkonzolok az operációs rendszer több tárolójában is megtalálhatók. Egy konzol jelenléte arra is utal, hogy telepítve van-e az adott szolgáltatás. Az alábbi szkripttel kilistázzuk az adott gépre telepített összes konzol nevét, függetlenül attól, hogy hol található és milyen szerepet lát el. Mindez csak a felügyeleti eszközökre vonatkozik, az egyéb más konzolokra nem.
Cikkünkhöz mellékeltük a szóban forgó szkriptet "AdminTools.vbs" néven. Futtatása nem igényel módosítást a forráskódban.
A felügyeleti eszközök (administrative tools) csoportját a H2f hexadecimális érték azonosítja a "Shell.Application" névtérben. Tehát minden objektum, amely felveszi ezt az értéket, felügyeleti eszközkonzol. Határozzunk meg egy konstanst a szkript elején, mely felveszi a H2f számot. Igazából ennek a későbbi kód könnyebb olvashatóságában van jelentősége, főleg akkor, ha több helyen is használjuk.
Const ADMINISTRATIVE_TOOLS = &H2f&
Létrehozunk egy "Text" nevű változót a kapott lista elemeinek tárolására. Helyezzünk el a változóban egy fejlécszöveget és adjunk hozzá egy üres sort.
Text = "Felügyeleti eszközök listája:" & chr(13) & chr(10) & chr(13) & chr(10)
Most következik a fent említett "Shell.Application" objektummal való kapcsolat kialakítása, egy új objektum létrehozásával.
Set objShell = CreateObject("Shell.Application")
Ezután objektum kapcsolatot alakítunk ki a "Namespace" komponenssel, átadva a H2f konstans értékét paraméterként. A "Namespace" kezeli a fájlrendszert, a hálózati nyomtatókat, a számítógép objektumokat, a lomtárat, a Vezérlőpult elemeit és minden más a Windows Shell-hez tartozó objektumot. Elsődleges szerepe tehát egy általános kapcsolófelület kialakítása az operációs rendszer és a felhasználói alkalmazások között. Számos virtuális objektumot kezel, melyek nem tartoznak egy jól elkülöníthető fizikai csoporthoz, csoportosításuk és elkülönülésük a többi objektumtól logikailag történik (tipikusan ilyen a lomtár).
Set objFolder = objShell.Namespace(ADMINISTRATIVE_TOOLS) 
A visszatérési értékben kapott adatok egyenlők a felügyeleti konzolok neveivel.
Set objTools = objFolder.Items
Dolgozzuk fel az eredményt egy FOR ciklus segítségével.
For i = 0 to objTools.Count - 1
Minden egyes példányt helyezzük el a "Text" változóban és minden új sorban.
    Text = Text & objTools.Item(i) & chr(13) & chr(10)
Zárjuk a ciklust.
Next
Jelenítsük meg a változó tartalmát a képernyőn.
    Wscript.Echo Text