Pošiljanje pošte iz PowerShell-a

Že sem govoril o tem, kako lahko prek telneta pošljete pošto iz ukazne vrstice. Zdaj je bila naloga napisati skript za sistem spremljanja, ki bo v primeru dogodka odgovorni osebi poslal elektronsko sporočilo.

Ker je v zadnjem času vse pogosteje potrebno uporabljati skripte na PowerShellu, sem se odločil, da bom na njem implementiral skript za pošiljanje pošte. Ta majhen skript PowerShell pošlje e-poštno sporočilo določenemu prejemniku, ki je naveden v kodi. Ta skript se uporablja v samo-napisanem nadzornem sistemu za določeno storitev, ki ni Microsoftova storitev, ki deluje v sistemu Windows Server 2008. Če se storitev ustavi, se tehnični podpori pošlje tehnično obvestilo. Moja koda PowerShell je naslednja:

$ EmailFrom = "[email protected]"
$ EmailTo = “[email protected]
$ Subject = »Preveri storitev v sistemu Windows Server 2008 ZDAJ«
$ Body = "Storitev spremljanja je ustavljena !!"
$ SmtpServer = “smtp.winitpro.ru”
$ smtp = Nov-objekt net.mail.smtpclient ($ SmtpServer)
$ smtp.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body)

Uporaba skriptov PowerShell obstaja več. Iz varnostnih razlogov skripta PowerShell ni mogoče zagnati, če dvokliknete datoteko .PS1. Če želite zagnati skript PowerShell iz načrtovalnika opravil ali na kakšen drug avtomatiziran način, lahko ustvarite skript VBS, ki bo pozval skript PowerShell:

Nastavite objShell = CreateObject ("WScript.Shell")
objShell.Run ("powershell.exe c: \ script \ send_email.ps1>")

Posledično bi morali dobiti dve datoteki: ena vsebuje kodo vbs (razširitev .VBS), druga pa vsebuje kodo PowerShell za pošiljanje pošte (razširitev .PS1).

Če uporabljate Windows Server 2008, ne pozabite omogočiti podporne funkcije PowerShell, sicer skripte PS ne bodo delovale.
C ++ koda se mi zdi koristna za skrivanje okna: Kako skriti okno druge osebe.