Date: November 18, 2018
Tag: peringatan email ketika layanan windows tertentu mulai atau berhenti, Windows Server 2016
Step-By-Step: Cara Memicu Peringatan Email Saat Layanan Windows Tertentu Mulai Atau Berhenti Pada Windows Server 2016
Berbeda dari posting saya sebelumnya di mana saya menunjukkan kepada Anda bagaimana cara mengirim surel surel berdasarkan Windows EventID tertentu yang dicatat dalam Windows Event Log, kali ini saya akan membagikan cara Memicu Peringatan Email Saat Layanan Windows Khusus Mulai Atau Berhenti. Ini berfungsi baik untuk sebagian besar acara. Meskipun perhatikan itu tidak ideal jika Anda ingin diberitahu ketika Layanan Windows tertentu mulai atau berhenti. Ketika Layanan Windows mulai atau berhenti, EventID 7036 dari Sumber "Service Control Manager" dicatat dalam Log Sistem Windows. Sekarang kita bisa mengatur pemicu untuk mengirim email setiap kali EventID tersebut dicatat seperti yang saya jelaskan di posting saya sebelumnya. Namun, Anda mungkin tidak ingin menerima email saat SETIAP Windows Service dimulai atau berhenti. Untuk mendapatkan sedikit lebih spesifik, kita harus mengedit data XML yang terkait dengan Filter Acara Windows ketika kita mengatur pemicu. Ini untuk melihat sedikit lebih dalam pada Properti Acara dan menyaring di EventData yang hanya ditampilkan ketika Anda melihat Tampilan XML pada tab Rincian dari Peristiwa Windows. Pekerjaan ini telah diverifikasi pada Windows Server 2016, tetapi saya menduga itu seharusnya bekerja pada Windows Server 2012 R2 dan Windows Server 2019 juga. Jika Anda membuatnya bekerja di platform lain, silakan beri komentar dan beri tahu kami jika Anda harus mengubah apa pun.
Langkah 1 – Tulis A Script Powershell
Hal pertama yang perlu Anda lakukan adalah menulis skrip Powershell yang ketika dijalankan dapat mengirim email. Anda memerlukan email tersebut untuk memicu Pemberitahuan Email Saat Layanan Windows Khusus Mulai Atau Berhenti. Ada banyak cara untuk menyelesaikan tugas ini. Saya akan menunjukkan kepada Anda hanya satu cara, tetapi jangan ragu untuk bereksperimen dan menggunakan yang tepat untuk lingkungan Anda. Di lab saya, saya tidak menjalankan server SMTP saya sendiri, jadi saya harus menulis skrip yang dapat memanfaatkan akun Gmail saya. Anda akan melihat dalam skrip Powershell saya kata sandi ke akun email yang diautentikasi ke server SMTP dalam teks biasa. Jika Anda khawatir bahwa seseorang mungkin memiliki akses ke skrip Anda dan menemukan kata sandi Anda maka Anda akan ingin mengenkripsi kredensial Anda. Gmail membutuhkan dan koneksi SSL sehingga kata sandi Anda harus aman pada kabel, sama seperti klien email lainnya. Berikut ini contoh skrip Powershell yang ketika digunakan bersama dengan Penjadwal Tugas yang akan mengirim peringatan email secara otomatis ketika Peristiwa tertentu dicatat dalam Log Peristiwa Windows. Di lingkungan saya, saya menyimpan skrip ini ke C: Alerts ServiceAlert.ps1
$ filter = "* [System [EventID = 7036] dan EventData [Data = 'SIOS DataKeeper']]" $ A = Dapatkan-WinEvent -LogName System -MaxEvents 1 -FilterXPath $ filter $ Pesan = $ A.Message $ EventID = $ A.Id $ MachineName = $ A.MachineName $ Source = $ A.ProviderName $ EmailFrom = "sios@medfordband.com" $ EmailTo = "sios@medfordband.com" $ Subject = "Pemberitahuan Dari $ MachineName" $ Body = "EventID: $ EventID`nSource: $ Source`nMachineName: $ MachineName` n $ Pesan " $ SMTPServer = "smtp.gmail.com" $ SMTPClient = New-Object Net.Mail.SmtpClient ($ SmtpServer, 587) $ SMTPClient.EnableSsl = $ true $ SMTPClient.Credentials = New-Object System.Net.NetworkCredential ("sios@medfordband.com", "MySMTPP @ 55w0rd"); $ SMTPClient.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body)
Contoh email yang dihasilkan dari skrip Powershell seperti ini. Anda mungkin memperhatikan bahwa skrip Powershell ini menggunakan cmdlet Get-WinEvent untuk mengambil entri Entri Peristiwa terbaru berdasarkan LogName, EventID, dan EventDataspecified. Kemudian mem-parsing event tersebut dan memberikan variabel EventID, Source, MachineName dan Message ke yang akan digunakan untuk menulis email. Anda akan melihat bahwa LogName, EventID dan EventData yang ditentukan sama dengan yang akan Anda tetapkan ketika Anda mengatur Tugas Terjadwal di Langkah 2. Sementara EventID, LogName mungkin akrab bagi Anda, EventData mungkin tidak familiar. Untuk melihat EventData yang terkait dengan Peristiwa tertentu, Anda harus membuka Acara di Peraga Peristiwa, lihat tab Detail dan kemudian pilih tampilan XML. Dari tampilan XML Anda dapat melihat semua data yang disertakan dengan suatu peristiwa. Di dekat bagian bawah XML Anda akan melihat berbagai data yang disebut <EventData>. Di sana Anda akan menemukan Data Peristiwa tambahan yang disimpan sebagai parameter. Seperti yang ditunjukkan di bawah ini, di "param1" kita akan menemukan nama Layanan yang berhenti atau dimulai.
Langkah 2 – Mengatur Jadwal Tugas
Di Penjadwal Tugas Buat Tugas seperti yang ditampilkan di cuplikan layar berikut.
- Buat Tugas Pastikan tugas diatur ke Jalankan apakah pengguna sudah masuk atau tidak.
- Pada tab Pemicu pilih Baru untuk membuat Trigger yang akan memulai tugas "Pada Acara". Dalam contoh saya, saya akan membuat suatu peristiwa yang memicu setiap saat DataKeeper (extmirr) mencatat peristiwa penting ke log Sistem. Buat acara khusus dan Filter Acara Baru seperti yang ditunjukkan di bawah ini … Untuk pemicu saya Anda dapat mulai menyiapkan pemicu yang memantau 7036 seperti yang saya jelaskan dalam artikel saya sebelumnya. Namun, antarmuka GUI Filter tidak memungkinkan kami untuk menentukan Nama Layanan yang disimpan di Param1 dari EventData seperti yang saya jelaskan sebelumnya. Untuk memantau hanya layanan tertentu yang kami inginkan, kami perlu mengedit XML secara langsung seperti yang ditunjukkan di bawah ini. Jika Anda lebih suka langsung melompat ke pengejaran, silakan menyalin XML saya di bawah dan ganti ‘SIOS DataKeeper’ dengan data peristiwa yang disimpan dalam param1 dari Peristiwa yang ingin Anda pantau.
<QueryList> <Query Id = "0" Path = "System"> <Pilih Path = "System"> * [System [(Level = 4 atau Level = 0) dan (EventID = 7036)]] dan * [EventData [Data [1] = 'SIOS DataKeeper']] </ Select> </ Query> </ QueryList>
- Setelah Pemicu Peristiwa dikonfigurasi, Anda harus mengonfigurasi Tindakan yang terjadi saat acara dijalankan. Dalam kasus kami, kami akan menjalankan skrip Powershell yang kami buat pada Langkah 1.
- Parameter Kondisi default harus memadai.
- Dan akhirnya, pada tab Pengaturan, pastikan Anda mengizinkan tugas dijalankan sesuai permintaan dan untuk "Memasuki instance baru" jika tugas sudah berjalan.
Langkah 3 (Jika Diperlukan) -Berbaiki Microsoft -Windows – Distributedcom Event ID: 10016 Error
Secara teori, jika Anda melakukan semuanya dengan benar, Anda sekarang harus mulai menerima email setiap saat salah satu peristiwa yang Anda pantau akan dicatat dalam log kejadian. Namun, saya mengalami masalah izin aneh pada salah satu server saya yang harus saya alamat sebelum semuanya bekerja. Saya tidak yakin apakah Anda akan mengalami masalah ini, tetapi untuk berjaga-jaga apakah ini adalah perbaikannya. Dalam kasus saya ketika saya secara manual memicu acara, atau jika saya menjalankan skrip Powershell secara langsung, semuanya bekerja seperti yang diharapkan dan saya menerima email. Namun, jika salah satu EventID yang dipantau masuk ke log peristiwa itu tidak akan menghasilkan email yang dikirim. Satu-satunya petunjuk yang saya miliki adalah ID Peristiwa: 10016 yang dicatat dalam log peristiwa Sistem saya setiap kali saya mengharapkan Pemicu Tugas untuk mendeteksi peristiwa yang dicatat.
Nama Log: Sistem Sumber: Microsoft-Windows-DistributedCOM Tanggal: 10/27/2018 5:59:47 PM ID Peristiwa: 10016 Kategori Tugas: Tidak ada Tingkat: Kesalahan Kata Kunci: Klasik Pengguna: DATAKEEPER dave Komputer: sql1.datakeeper.local Deskripsi: Pengaturan izin khusus aplikasi tidak memberikan izin Aktivasi Lokal untuk aplikasi COM Server dengan CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} dan APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} kepada pengguna DATAKEEPER dave SID (S-1-5-21-25339xxxxx-208xxx580-6xxx06984-500) dari address LocalHost (Menggunakan LRPC) berjalan dalam kontainer aplikasi Tidak tersedia SID (Tidak Tersedia). Izin keamanan ini dapat dimodifikasi menggunakan alat administratif Komponen Layanan.
Banyak hasil pencarian Google untuk kesalahan itu menunjukkan bahwa kesalahan itu jinak dan termasuk instruksi tentang cara menekan kesalahan daripada memperbaikinya. Namun, saya cukup yakin kesalahan ini adalah penyebab kegagalan saya saat ini untuk dapat mengirim pemberitahuan email dari Acara Terjadwal yang dipicu dari entri Log Peristiwa yang dipantau. Saya perlu memperbaikinya. Setelah banyak pencarian, saya menemukan diskusi newsgroup ini. Tanggapan dari Marc Whittlesey mengarahkan saya ke arah yang benar. Ini yang dia tulis …
Ada 2 kunci registri Anda harus mengatur izin sebelum Anda pergi ke layanan DCOM Configuration in Component: kunci CLSID dan kunci APPID.
Saya menyarankan Anda untuk mengikuti beberapa langkah untuk memperbaiki masalah:
1 Tekan tombol Windows + R dan ketik regedit dan tekan Enter. 2 Pergi ke HKEY_Classes_Root CLSID * CLSID *. 3 Klik kanan padanya lalu pilih izin. 4. Klik Maju dan ubah pemiliknya menjadi administrator. Juga klik kotak yang akan muncul di bawah garis pemilik. 5. Terapkan kontrol penuh. 6 Tutup tab lalu pergi ke HKEY_LocalMachine Software Classes AppID * APPID *. 7 Klik kanan padanya lalu pilih izin. 8. Klik Maju dan ubah pemiliknya menjadi administrator. 9. Klik kotak yang akan muncul di bawah garis pemilik. 10. Klik Terapkan dan berikan kontrol penuh untuk Administrator. 11. Tutup semua tab dan buka alat Administratif. 12. Buka layanan komponen. 13. Klik Komputer, klik komputer saya, lalu klik DCOM. 14 Cari layanan yang sesuai yang muncul pada penampil kesalahan. 15. Klik kanan padanya lalu klik properties. 16. Klik tab keamanan kemudian klik Tambah Pengguna, Tambah Sistem lalu terapkan. 17 Centang kotak Aktifkan lokal. Jadi gunakan kunci yang relevan di sini dan Konfigurasi DCOM akan memberi Anda akses ke area yang diklik: CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
Saya bisa mengikuti Langkah 1-15 cukup banyak kata demi kata. Namun, ketika saya sampai ke Langkah 16 saya benar-benar tidak tahu persis apa yang dia ingin saya lakukan. Pada awalnya saya memberikan akun pengguna DATAKEEPER dave Kontrol Penuh ke RuntimeBroker. Tetapi itu tidak memperbaiki banyak hal. Akhirnya saya hanya memilih "Use Default" pada ketiga perizinan dan yang memperbaiki masalah. Saya tidak yakin bagaimana atau mengapa ini terjadi, tetapi saya pikir sebaiknya saya menulis semuanya jika itu terjadi lagi karena saya butuh waktu lama untuk mengetahuinya.
Langkah 4- Mengotomasi Penempatan
Jika Anda perlu mengaktifkan peringatan yang sama pada beberapa sistem, Anda cukup mengekspor Tugas Anda ke file XML dan Impor di sistem lain. Ekspor [/ caption] Impor [/ caption] Atau bahkan lebih baik lagi , otomatisasi Impor sebagai bagian dari proses pembuatan Anda melalui skrip Powershell setelah membuat file XML Anda tersedia di berbagi file seperti yang ditunjukkan pada contoh berikut.
PS C: > Daftar-ScheduledTask -Xml (dapatkan-konten '\ myfileshare tasks DataKeeperAlerts.xml' | out-string) -TaskName "DataKeeper Service Alerts" -Pengguna datakeeper dave -Password MyDomainP @ 55W0rd –Force
Akhirnya, Sebuah Pemberitahuan Email Ketika Layanan Windows Khusus Mulai Atau Berhenti
Semoga apa yang telah saya berikan akan memberi Anda semua yang Anda perlukan untuk mulai menerima surel pemberitahuan pemberitahuan tentang Layanan Windows mana yang membuat Anda terjaga pada malam hari. Ini menyimpulkan seri saya tentang konfigurasi pemberitahuan email. Dalam seri ini saya telah membahas secara tertutup konfigurasi peringatan berdasarkan penghitung Perfmon, Entri Log Peristiwa dan dalam artikel ini peristiwa Windows Service Start dan Stop. Tentu saja Anda dapat memperpanjang skrip Powershell yang dijelaskan dalam artikel ini untuk melakukan lebih dari sekadar mengirim email. Banyak peringatan atau penghentian layanan yang tidak diharapkan pada umumnya memerlukan beberapa perbaikan. Mengapa tidak skrip saja langkah-langkah pemulihan dan biarkan tugas yang dipicu mengurus masalah untuk Anda? Secara pribadi saya menyarankan Anda berinvestasi di SCOM, SolarWinds atau Sistem Manajemen Perusahaan lainnya, tetapi jika itu tidak ada di kartu tempat Anda bekerja, maka artikel ini dapat membantu dalam keadaan darurat. Untuk mempelajari lebih banyak kiat tentang Email Alert Ketika Layanan Windows Khusus Mulai Atau Berhenti, hubungi kami Direproduksi dengan izin dari Clusteringformeremortals.com