Изпращане на поща от PowerShell

Вече говорих за това как можете да изпращате поща от командния ред, използвайки telnet. Сега имаше задачата да напише скрипт за системата за мониторинг, който в случай на събитие ще изпрати имейл съобщение до отговорното лице.

Тъй като наскоро все по-често се налага използването на скриптове в PowerShell, реших да внедря скрипта за изпращане на поща върху него. Този малък скрипт PowerShell изпраща имейл съобщение до конкретен получател, посочен в неговия код. Този скрипт се използва в самостоятелно написана система за мониторинг за конкретна услуга извън Microsoft, работеща на Windows Server 2008. Ако услугата спре, тогава техническото съобщение се изпраща на техническа поддръжка. Моят PowerShell код е както следва:

$ EmailFrom = „[email protected]
$ EmailTo = “[email protected]
$ Subject = „Проверете услугата на вашия Windows Server 2008 СЕГА“
$ Body = „Услугата за мониторинг е спряна !!“
$ SmtpServer = “smtp.winitpro.ru”
$ smtp = Нов обект net.mail.smtpclient ($ SmtpServer)
$ smtp.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body)

Има няколко ограничения за използването на скриптове на PowerShell. От съображения за сигурност, скриптът PowerShell не може да бъде стартиран, като кликнете два пъти върху файла .PS1. Следователно, ако искате да стартирате скрипт на PowerShell от планиращия задачите или по някакъв друг автоматизиран начин, можете да създадете VBS скрипт, който от своя страна ще извика скрипт на PowerShell:

Задайте objShell = CreateObject („WScript.Shell“)
objShell.Run ("powershell.exe c: \ script \ send_email.ps1>")

В резултат на това трябва да получите два файла: единият съдържа vbs код (разширение .VBS), вторият съдържа PowerShell код за изпращане на поща (разширение .PS1).

Ако използвате Windows Server 2008, не забравяйте да активирате функцията за поддръжка на PowerShell, в противен случай PS скриптите няма да работят.
Намерих C ++ код полезен за скриване на прозорец на Windows: Как да скриете прозореца на друг човек.