Tűzfal, vírusellenőrző már aktív?

Tűzfal, vírusellenőrző már aktív?
2006-05-18T10:35:12+02:00
2006-05-22T21:32:13+02:00
2022-10-30T21:25:50+01:00
TobiasPm
Sziasztok!

Szeretnék egy olyan scriptet irni (lehetőleg javascriptben) amely automatikusan elindulna amikor bejelentkezik valaki a windows xp-ben és addig várakozna (valami okkosságot megjelenítve addig pl: egy loader progressbar-t), míg be nem töltődik rendesen az outpost tűzfal, a nod32 és el nem indul a PPPoE net kapcsolatom.

Szerintem a Windows Scripting Host segítségével lehetne, csak azt nem tudom, hogy mely objektum kell hozzá és milyen metódusokkal lehetne ezt megoldani.

Az biztos kevés, hogy megnézzem fut e már az outpost, mert kicsit lassan indul el a szolgáltatás. Pont emiatt szeretnék egy betöltő képernyőt, mert amíg nem megy a tűzfal és a vírus gyilkos addig nem nagyon lehet semmit csinálni, vagy legalábbis kínszenvedés.

Nos ehhez szeretnék valami segítséget kérni. Merre induljak el. Esetleg, hogyan lehet ellenőrizni egy szolgáltatás betöltődését? Valami ilyesmi.

Köszike
Mutasd a teljes hozzászólást!
A WMI COM objektumokat használ, ezért amelyik nyelv tud COM objektumot kezelni, az tudja a WMI-t használni is.

Kódot meg elvből nem nagyon szeretek adni (amúgyis csak VB-t tudnék)...

Az egészhez kelleni fog egy SWbemServices objektum, ami az aszinkron értesítési lekérdezést indítja a ExecNotificationQueryAsync() metódussal. Ennek a lekérdezésnek a segítségével kapod meg a figyelt objektumokról a változást. Az SWbemServices objektumot a kérdéses gép \ROOT\CIMV2 névterére kell irányítani. Ha gépnév helyett "." karaktert használsz, akkor a localhost-ra fog csatlakozni.

ExecNotificationQueryAsync()-nek 2 paramétere van: EventSink és a lekérdezés. Az EventSink az egy SWbemSink típusú objektum, ami az értesítési lekérdezés eseményeit továbbítja a progid felé. Neked az OnProgress és az OnObjectReady eseményeket kell majd kezelned.

A win szolgáltatásokat WMI-ben a WIN32_Service objektumok kezelik le. A hálózati interfészeket pedig (szerintem) a WIN32_NetworkAdapter-ek.

1. Töltsed le a WMI SDK-t az MS oldaláról. Teljes dokumentáció és rengeteg hasznos eszköz jön vele (pl. WMI Object Browser).

2. Scriptomatic letöltése szintén az MS oldaláról. Ez egy HTA, ami demonstrálja, hogyan is kell egyszerűbb WMI lekérdezéseket írni - VB-ben. A kódot legenerálja.
Mutasd a teljes hozzászólást!

  • Szkripttel WMI segítségével lehet kiválasztott szolgáltatások állapotát monitorozni, még talán a webkapcsolat lértejöttét is. De nem tudod letiltani a felhasználó tevékenységét belőle, hasak vki nem ír egy COM objektumot, amit te a szkriptből meg tudsz hívni.

    A WMI SWbemServices objektum ExecNotificationQueryAsync() metódusát kell meghívnod a szervizek változásainak figyeléséhez. A lekérdezés vmi ehhez hasonló lesz: SELECT * FROM __InstanceModificationEvent WITHIN 1.0 WHERE TargetInstance ISA 'Win32_Service' AND TargetInstance.Name=...

    PPoE figyeléshez viszont nincs ötletem.
    Mutasd a teljes hozzászólást!
  • A PPPoE kapcsolat létrejöttét valószínűleg a megfelelő WIN32_NetworkAdapter objektum Availability tulajdonságával lehet lekérdezni. Erre is lehet egy aszinkron értesítési lekérést írni.
    Mutasd a teljes hozzászólást!
  • Huh ez most így bonyolult elsőre.
    Nem tudnál egy példát is adni.

    Amúgy a WMI csak VBScript-el megy? Vagy lehet JScript is (javascript).

    Ezt az gészet egy hta fájlba tenném, ami szintén automatikusan elindulna. Ezzel lehet a teljes képernyőt "eltakarni" amiben mehetne egy loading, ée ha a WMI vel megfelelő értéket kapnék akkor bezárnám. Igaz ez konkrétan nem blokkolja a felhasználói tevékenységet, de legalább eltakarhatja a felületet ezzel akadályozva a tevékenységet. Ez laikus felhasználóknak lenne, hogy ne püföljék feleslegesen a billentyűzetet. (nem akarják megérteni, hogy várni kellene egy kicsikét)

    Köszi
    Mutasd a teljes hozzászólást!
  • A WMI COM objektumokat használ, ezért amelyik nyelv tud COM objektumot kezelni, az tudja a WMI-t használni is.

    Kódot meg elvből nem nagyon szeretek adni (amúgyis csak VB-t tudnék)...

    Az egészhez kelleni fog egy SWbemServices objektum, ami az aszinkron értesítési lekérdezést indítja a ExecNotificationQueryAsync() metódussal. Ennek a lekérdezésnek a segítségével kapod meg a figyelt objektumokról a változást. Az SWbemServices objektumot a kérdéses gép \ROOT\CIMV2 névterére kell irányítani. Ha gépnév helyett "." karaktert használsz, akkor a localhost-ra fog csatlakozni.

    ExecNotificationQueryAsync()-nek 2 paramétere van: EventSink és a lekérdezés. Az EventSink az egy SWbemSink típusú objektum, ami az értesítési lekérdezés eseményeit továbbítja a progid felé. Neked az OnProgress és az OnObjectReady eseményeket kell majd kezelned.

    A win szolgáltatásokat WMI-ben a WIN32_Service objektumok kezelik le. A hálózati interfészeket pedig (szerintem) a WIN32_NetworkAdapter-ek.

    1. Töltsed le a WMI SDK-t az MS oldaláról. Teljes dokumentáció és rengeteg hasznos eszköz jön vele (pl. WMI Object Browser).

    2. Scriptomatic letöltése szintén az MS oldaláról. Ez egy HTA, ami demonstrálja, hogyan is kell egyszerűbb WMI lekérdezéseket írni - VB-ben. A kódot legenerálja.
    Mutasd a teljes hozzászólást!
  • Jó a VB is át tudom írni js-re (csak egy kis időbe telik). Ha mégis lenne kedved privátban küldhetnél kódot.

    Megnézem és letöltöm a dolgokat és próbálkozok.

    Nagyon köszönöm!
    Mutasd a teljes hozzászólást!
  • Köszönöm a választ.

    Már nagyon sokat próbálkoztam vele, de még egyenlőre nem sikerült megoldani teljesen a dolgot.

    Úgy döntöttem, hogy magam indítom el a kérdéses szolgáltatásokat miután bejelentkezett az xp (automatikusan). Ehhez viszont figyelnem kell, hogy a logonui.exe még fut-e. Ha a hta-ból kérdezem le (WMI-vel), akkor kifagy az egész amíg választ nem tud adni a WMI. Ezért ezt a lekérdezést külön scriptbe helyeztem és úgy futtatom a WSH run metódusával. Viszont ez (csak) kisaméretben tudja futtatni. A kérdés még az lenne, hogy van-e valami lehetőség arra, hogy teljesen a háttérben futtassak egy programot.

    Köszike
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd