HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Az XP eseménynaplójának lekérdezése programból, szkriptből



A Windows XP beépített támogatást ad a programozóknak és rendszergazdáknak az eseménynapló (Event Viewer) bejegyzéseinek lekérdezésére. Az eredmény megjeleníthető a képernyőn (de nem ez az elsődleges célja) vagy tárolható fájlban, olyan formában, hogy táblázatkezelő programokba lehessen importálni.
Mindez egy szkripten keresztül valósul meg, amit kivételesen nem nekünk kell megírni, mert rendelkezésre áll a %systemroot%\system32 könyvtárban "eventquery.vbs" néven. Nem kell mást tenni, mint megfelelően paraméterezve meghívni. Akár más mappákba is átmásolható, önállóan is működőképes és nincs helyhez kötve. Programozóknak ideális interfészt tud biztosítani, programból meghívható és szabályozható, hogy milyen kimenetet produkáljon. Kifejezetten Windows XP alá készült, támaszkodik a képességeire, ezért változtatás nélkül Windows 2000 alá nem vihető át. Az eseménynapló megnyitása a Control Panel > (Performance and Maintenace) > Administrative Tools > Event Viewer ikonnal lehetséges.
A szkriptet parancssorból a "cscript"-en keresztül lehet elindítani. Hívjunk be egy parancssori ablakot (Start > All Programs > Accessories > Command Prompt), váltsunk át a %systemroot%\system32 könyvtárra és vegyük sorra, hogy milyen paraméterekkel használható:

Az alábbiakban végrehajtott lekérdezések mind a helyi gépen történnek és rendszergazdai jogosultságokat igényelnek. Ha nem paraméterezzük, megjeleníti a képernyőn az eseménynapló minden bejegyzését:
cscript eventquery.vbs

Általában nem vagyunk kíváncsiak minden eseményre, csak bizonyos naplókéra. Ekkor a /l kapcsolót kell használni és utána megadni a napló fajtáját a következők szerint:
application - alkalmazásnapló, system - rendszernapló, "DNS server" - DNS kiszolgálónapló (csak szerver verzióknál), security - biztonsági napló illetve saját naplófájlunkat az elérési útjával. A példából mindez érthetőbb, listázzuk ki a rendszer alkalmazásnaplójának bejegyzéseit:
cscript eventquery.vbs /l application

Ez még mindig nem a tökéletesen személyre szabható kimenet, de még nem végeztünk. A /r kapcsolóval számszerűsíthető a végeredmény. Ha a kapcsoló után egy pozitív egész számot írunk, akkor annyi darab esemény fog szerepelni a megjelenő listában és ezek az időben utolsók lesznek. Negatív szám esetén időben az első események és egy intervallumnál a megadott eseménysorszámok közöttiek jelennek meg úgy, hogy a kisebb szám a korábbiakat jelöli. Tehát listázzuk ki az utolsó 5 db eseményt az alkalmazásnaplóból:
cscript eventquery.vbs /l application /r 5
Listázzuk ki az első 5 db-ot:
cscript eventquery.vbs /l application /r -5
Végül listázzuk ki az 5-10. eseményig terjedőket:
cscript eventquery.vbs /l application /r 5-10

Az Event Viewer konzolon egy szűrőn is átvezethető a megjelenő lista és így csak a feltételeknek megfelelőek jelennek meg. Itt is megvalósítható mindez. A szűrő kapcsolója: /fi (filter), a szűrési feltételeket egy sztringben kell megadni. Azzal bonyolódik a helyzet, hogy csak saját utasításait fogadja el. Ezek a következők:
Listánkban elöl a szűrő feltétel neve, a kötőjel után az alkalmazható operátorok szerepelnek.
  • Category - eq,ne
  • Computer - eq,ne
  • Datetime - eq,ne,ge,le,gt,lt
  • ID - eq,ne,or,ge,le,gt,lt
  • User - eq,ne
  • Source - eq,ne
  • Type - eq,ne,or
Az operátorok jelentése a következő:
  • eq - equal to (egyenlő)
  • ne - not equal (nem egyenlő)
  • or - or (vagy)
  • ge - greater then or equal to (nagyobb vagy egyenlő)
  • le - less than or equal to (kisebb vagy egyenlő)
  • gt - greater then (nagyobb mint)
  • lt - less than (kisebb mint)
A gyakorlatban ez így valósul meg: Listázzuk ki az összes eseménynaplóban a 2001 azonosítójú eseményeket:
cscript eventquery.vbs /fi "ID eq 2001"
Most csak azokat, amelyek 2001 november 1-je 17:00 óra után keletkeztek (a dátum és idő formátuma: HH/NN/ÉÉ(ÉÉÉÉ),ÓÓ,PP,MMAM(PM)).
cscript eventquery.vbs /fi "DateTime ge 11/01/2001,05:00:00PM"
Aztán azokat, ahol az esemény típusa: Error (hiba). Ezenkívül az Information, Warning, SuccessAudit és FailureAudit típusok léteznek.
cscript eventquery.vbs /fi "Type eq Error"
Végül listázzunk ki minden eseményt az alkalmazás- és rendszernaplókból, ami 2001 október 29-e délutánja óta történt és Warning (figyelmeztetés) típusú:
cscript eventquery.vbs /l application /l system /fi "DateTime ge 10/29/01,12:00:00PM" /fi "Type eq
    Warning"

Most már tudjuk, hogy kell a lekérdezéseket kivitelezni, áttérhetünk a megjelenítés módjaira. Eddig táblázatos formában jelent meg minden információ, de nem ez az egyetlen lehetőség. Jelenítsük meg egy listában:
cscript eventquery.vbs /fo list
A CSV formátum annyit takar, hogy a mezők idézőjelek között, egymástól vesszővel elválasztva szerepelnek és a sorok végén újsor karakter található. Előnye, hogy táblázatkezelő programokban (pl.: Microsoft Excel) importálható. Ilyen kimenetet így kapunk:
cscript eventquery.vbs /fo csv
Az alapértelmezett a táblázat volt:
cscript eventquery.vbs /fo table

Ahol mindig megjelent a fejlécben az oszlopok neve. A /nh (no headers) ez letiltható:
cscript eventquery.vbs /nh

Minden eseményhez tartoznak megjegyzések, eddig rejtve voltak előttünk, de a /v kapcsolóval belekerülnek a listába. Írassuk ki az alkalmazásnapló bejegyzéseit megjegyzésekkel együtt:
cscript eventquery.vbs /l application /v

A fentiekkel nem csak a helyi gép, hanem a hálózat másik gépének az eseményeihez is hozzá lehet férni (ha be vagyunk jelentkezve). Listázzuk ki az Orange nevű gép alkalmazásnaplóját:
cscript eventquery.vbs /s Orange /l application

Nem csak gépneveket, hanem IP címeket is lehet használni:
cscript eventquery.vbs /s 192.168.0.2 /l application

Tegyük fel, hogy nem rendszergazdai jogokkal vagyunk a másik gépen bejelentkezve. Ez esetben meg kell adnunk egy rendszergazda felhasználónevét és jelszavát:
cscript eventquery.vbs /s Orange /l application /u felhasználónév /p jelszó

Természetesen minden lista átirányítható a képernyő helyett fájlba is. Tegyük ezt az EventList.txt fájlba:
cscript eventquery.vbs /l system /fo csv > EventList.txt
A keletkezett szöveges állomány ezután beemelhető az Excel-be vagy feldolgozható egyéb módokon.

Eddig minden alkalommal megjelent a cscript logo-ja az első sorokban. Letiltani így lehet:
cscript eventquery.vbs /l system /fo csv > EventList.txt //nologo






Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2001 évkönyv 257. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |