Odesílání pošty z prostředí PowerShell

Už jsem mluvil o tom, jak můžete posílat poštu z příkazové řádky pomocí telnetu. Nyní bylo úkolem napsat skript pro monitorovací systém, který by v případě události poslal e-mailovou zprávu odpovědné osobě..

Vzhledem k tomu, že v poslední době je stále častěji nutné používat skripty v prostředí PowerShell, rozhodl jsem se do něj implementovat skript pro odesílání pošty. Tento malý skript PowerShell odešle e-mailovou zprávu konkrétnímu příjemci uvedenému v jeho kódu. Tento skript se používá v samoobslužném monitorovacím systému pro konkrétní službu nepocházející od Microsoftu, která je spuštěna v systému Windows Server 2008. Pokud se služba zastaví, je technické technické zprávě odeslána technická zpráva. Můj kód PowerShell je následující:

$ EmailFrom = “[email protected]
$ EmailTo = “[email protected]
$ Subject = „Ověřte si službu u Windows Server 2008 TEĎ“
$ Body = „Monitorovací služba je zastavena !!“
$ SmtpServer = “smtp.winitpro.ru”
$ smtp = Nový objekt net.mail.smtpclient ($ SmtpServer)
$ smtp.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body)

Používání skriptů PowerShell má několik omezení. Z bezpečnostních důvodů nelze skript PowerShell spustit pouhým poklepáním na soubor .PS1. Pokud tedy chcete spustit skript PowerShell z plánovače úloh nebo jiným automatizovaným způsobem, můžete vytvořit skript VBS, který zase vyvolá skript PowerShell:

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

Jako výsledek byste měli získat dva soubory: jeden obsahuje kód vbs (přípona .VBS), druhý obsahuje kód PowerShell pro odesílání pošty (přípona .PS1).

Pokud používáte Windows Server 2008, nezapomeňte aktivovat funkci podpory PowerShell, jinak PS skripty nebudou fungovat.
Našel jsem kód C ++ užitečný pro skrytí okna systému Windows: Jak skrýt okno jiné osoby.