E-mail küldés a PowerShell-ből

Már beszéltünk arról, hogyan lehet telnet segítségével leveleket küldeni a parancssorból. Most volt a feladat egy szkript írása a felügyeleti rendszer számára, amely esemény esetén e-mailt küld a felelős személynek.

Mivel a közelmúltban egyre inkább szkripteket kell használni a PowerShell-en, úgy döntöttem, hogy implementálom a levélküldő szkriptet. Ez a kis PowerShell-parancsfájl e-mail üzenetet küld a kódjában megadott címzettnek. Ezt a szkriptet a Windows Server 2008 rendszeren futó, egy nem Microsoft szolgáltatás saját írásbeli megfigyelő rendszerében használják. Ha a szolgáltatás leáll, akkor technikai értesítést küld a technikai támogatásnak. A PowerShell-kódom a következő:

$ EmailFrom = “[email protected]
$ EmailTo = “[email protected]
$ Tárgy = “Ellenőrizze a szolgáltatást a Windows Server 2008 rendszeren MOST”
$ Body = “Megfigyelő szolgáltatás stop !!”
$ SmtpServer = “smtp.winitpro.ru”
$ smtp = Új objektum net.mail.smtpclient ($ SmtpServer)
$ smtp.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body)

A PowerShell parancsfájlok használatának számos korlátozása van. Biztonsági okokból a PowerShell-parancsfájl nem futtatható egyszerűen dupla kattintással a .PS1 fájlra. Ezért, ha a PowerShell szkriptet futtatni szeretné a feladatütemezőből, vagy valamilyen más automatizált módon, létrehozhat egy VBS szkriptet, amely viszont meghívja a PowerShell szkriptet:

Set objShell = CreateObject (“WScript.Shell”)
objShell.Run (“powershell.exe c: \ script \ send_email.ps1>”)

Ennek eredményeként két fájlt kell kapnia: az egyik tartalmaz vbs kódot (.VBS kiterjesztés), a második tartalmaz PowerShell kódot az e-mailek küldéséhez (.PS1 kiterjesztés)..

Ha Windows Server 2008-at használ, ne felejtse el engedélyezni a PowerShell támogatási funkciót, különben a PS szkriptek nem fognak működni.
A C ++ kódot hasznosnak találtam egy ablakot tartalmazó ablak elrejtésében: Hogyan lehet elrejteni egy másik személy ablakot.