HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

E-Mail küldése automatikusan induló szolgáltatás leállásakor


Példaprogram letöltése

506 bájt

Nem lehet állandóan egy kiszolgáló előtt ülni és figyelni, hogy minden rendben van-e a szolgáltatásokkal, de fontos megtudni, ha valami baj van. Cikkünkben bemutatunk egy példát arra, hogy lehet e-mail-t küldeni a Microsoft Outlook programmal akkor, ha egy automatikusan induló szolgáltatás valamilyen oknál fogva leállt az operációs rendszerben. Ha már e-mail-t tudunk küldeni, akkor csak egy lépés, hogy ez mobiltelefonra SMS formájában is megérkezzen.
A probléma megoldásában az alábbi fő kérdések merülhetnek fel:
  • Melyik gépen?
  • Van-e leállt automatikusan induló szolgáltatás?
  • Hogy küldünk e-mail-t?
  • Hogy hajtjuk végre időről-időre az ellenőrzést?

Legegyszerűbb (és legolcsóbb) megoldás, ha Windows beépített szolgáltatásaira támaszkodva írunk egy szkriptet, amelyik az első három kérdésben felmerülteket végrehajtja. Példánkban VBScriptet használunk, de nincs akadálya átírni más nyelvre is.

Melyik gépen?

A WMI (Windows Management Instrumentation) segítségével lehet az operációs rendszer állapotára vonatkozó információkhoz jutni, hozzákapcsolódni a "GetObject("winmgmts:" futtatásával lehet. A "Win32_ComputerSystem" objektum " System .Caption" paramétere tartalmazza a helyi gép nevét, ezt elhelyezzük egy "CompName" nevű változóba, későbbi felhasználás céljából.
Set NetInfo = GetObject("winmgmts:").InstancesOf ("Win32_ComputerSystem")
for each System in NetInfo
 CompName = System.Caption
next

Van-e leállt automatikusan induló szolgáltatás?

Szkriptből a szolgáltatások (services) elérése a "Win32_Service" adatbázison keresztül lehetséges szintén a WMI használatával. A rendszernek át kell adni a bejelentkezett felhasználó adatait ("impersonationLevel=impersonate"), ezért rendszergazdai jogosultságokra van szükség. Az adatbázisból egy SQL lekérdezéssel juthatunk hozzá a leállt szolgáltatásokhoz, ahol feltételnek megadjuk az automatikus indítást. Az eredményt egy FOR ciklussal feldolgozzuk. A szkript így néz ki:
Set ServiceSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from
    Win32_Service where State='Stopped' and StartMode='Auto'")
for each Service in ServiceSet
…
next

Hogy küldünk e-mail-t?

A ciklustörzs ("…") csak akkor hajtódik végre, ha volt a lekérdezésnek eredménye, tehát van olyan szolgáltatás, amelyik automatikusan indult, de közben leállt. Ide beszúrjuk az e-mail küldését megvalósító részt. Példánkban a Microsoft Outlook-kal küldünk levelet. Itt használjuk fel a "CompName" változót az e-mail törzsében (Body) és szolgáltatás leírását (Service.Description). A következő objektum tulajdonságokat fogjuk használni: "To"=címzett, "Subject"=tárgy, "Body"=maga az e-mail üzenet és végül a "Send" metódussal elküldjük.
Set FApplication = WScript.CreateObject("Outlook.Application")
Set FMailItem=FApplication.CreateItem(olMailItem)
FMailItem.To="valaki@valahol.hu"
FMailItem.Subject="A kiszolgálón leállt egy szolgáltatás"
FMailItem.Body="A "+CompName+" kiszolgálón leállt automatikusan induló szolgáltatás neve: "+Service
   .Description
FMailItem.Send

A teljes szkriptet mentsük el .VBS kiterjesztéssel a merevlemezre.

Hogy hajtjuk végre időről-időre az ellenőrzést?

Használhatunk bármilyen feladatütemező programot a szkript elindítására. Mi a Windows 2000 beépített feladatütemezőjét (Vezérlőpult > Ütemezett feladatok) választottuk, ami nem biztosítja a legkényelmesebb megoldást, de mindig kéznél van.
Nyissuk meg az "Ütemezett feladat hozzáadása" varázslót, a második oldalon a "Tallózás" gombbal válasszuk ki az elmentett szkriptet. A feladat végrehajtása történjen naponta. Válasszuk ki a futtatás időpontját (pl.: 10:00 óra) és hajtsuk végre "Minden nap". Következik a felhasználói név és jelszó megadása, itt adjuk meg egy rendszergazdai fiók adatait.
Most következik a kényelmetlenség: ez naponta csak 1 ellenőrzést jelent, ha továbbiakat is hozzá akarunk adni (célszerű óránként vagy félóránként futtatni a szkriptet), akkor ezeket a lépéseket meg kell ismételni. Léteznek egyéb programok, amelyekkel kényelmesebben megoldható az ütemezés.

Mobilszolgáltatóknál lehet igényelni saját e-mail címet, amire ha érkezik egy levél, elküldik a tulajdonos mobiltelefonjára SMS formában. Nincs más teendő, mint a címzett részben megadni ezt az e-mail címet, és számítógép értesíti a rendszergazdát a szolgáltatás leálltakor.



Cikksorozat

#IDKategóriaCikk címeSorozat
2598WindowsBeépített tűzfal - Internet Connection Firewall (ICF)1. rész
2605WindowsNetwork Bridge2. rész
2643WindowsRemote Desktop3. rész
2648WindowsInternetes időszinkronizálás4. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2001 évkönyv 181. 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 |