Mengirim email dari PowerShell

Saya sudah bicara tentang bagaimana Anda dapat mengirim email dari baris perintah menggunakan telnet. Sekarang ada tugas menulis skrip untuk sistem pemantauan, yang, jika ada peristiwa, akan mengirim pesan email kepada orang yang bertanggung jawab.

Karena baru-baru ini, semakin sering diperlukan untuk menggunakan skrip di PowerShell, saya memutuskan untuk mengimplementasikan skrip pengiriman surat di atasnya. Skrip PowerShell kecil ini mengirim pesan email ke penerima tertentu yang ditentukan dalam kodenya. Skrip ini digunakan dalam sistem pemantauan yang ditulis sendiri untuk layanan non-Microsoft tertentu yang berjalan pada Windows Server 2008. Jika layanan berhenti, maka pesan pemberitahuan teknis dikirim ke dukungan teknis. Kode PowerShell saya adalah sebagai berikut:

$ EmailFrom = “[email protected]
$ EmailTo = “[email protected]
$ Subject = "Periksa layanan di Windows Server 2008 Anda SEKARANG"
$ Body = "Layanan pemantauan dihentikan !!"
$ SmtpServer = “smtp.winitpro.ru”
$ smtp = Objek-Baru net.mail.smtpclient ($ SmtpServer)
$ smtp.Send ($ EmailDari, $ EmailKe, $ Subjek, $ Badan)

Ada beberapa batasan untuk menggunakan skrip PowerShell. Untuk alasan keamanan, skrip PowerShell tidak dapat dijalankan hanya dengan mengklik dua kali pada file .PS1. Oleh karena itu, jika Anda ingin menjalankan skrip PowerShell dari penjadwal tugas atau dengan cara otomatis lainnya, Anda dapat membuat skrip VBS, yang pada gilirannya akan memanggil skrip PowerShell:

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

Akibatnya, Anda harus mendapatkan dua file: satu berisi kode vbs (ekstensi .VBS), yang kedua berisi kode PowerShell untuk mengirim surat (ekstensi .PS1).

Jika Anda menggunakan Windows Server 2008, jangan lupa untuk mengaktifkan fungsi dukungan PowerShell, jika tidak skrip PS tidak akan berfungsi.
Saya menemukan kode C ++ berguna untuk menyembunyikan jendela windows: Cara Menyembunyikan Jendela Orang Lain.