این مقاله بر اساس نیازی است که اخیراً با آن مواجه شدم که در آن لازم بود یک نوع استثنای خاص را نظارت کنم و در صورت وقوع، باید همزمان به ادمین ها اطلاع داده شود.
در این نسخه نمایشی، من سناریویی را در نظر میگیرم که در آن اگر با شناسه رویداد "1101" مواجه شویم، به این معنی است که سایت شیرپوینت یا هر سرویس مرتبطی از کار افتاده است و در آن صورت، مدیران به طور خودکار اعلانهای ایمیل را دریافت میکنند.
برای انجام این کار، اجازه دهید با نوشتن یک تابع PowerShell "Monitor-Event-Logs" همانطور که در مرحله 1 تصویر زیر نشان داده شده است شروع کنیم.
در مرحله 2، ما از دستور "Get-EventLog" استفاده می کنیم و به آن دستور می دهیم که بالاترین آخرین گزارش برنامه را در جایی که شناسه رویداد = "1101" است، دریافت کند.
ما میتوانیم برای Event Object از نظر null بررسی کنیم و اگر دادهها را برگرداند، محتوای ایمیل متشکل از دادههای مرتبط را همانطور که در مرحله 3 نشان داده شده است آماده میکنیم.
در مرحله 4، با استفاده از یک تابع عمومی دیگر "ارسال ایمیل"، یک اعلان ایمیل برای مدیران ارسال می کنیم.
یک تابع خارجی، "Execute-Process" وجود دارد که تابع "Monitor-Event-Logs" را با ارسال شناسه رویداد مورد نیاز همانطور که در مرحله 5 نشان داده شده است، فراخوانی می کند.
در مرحله 6، ما متغیرهای مورد نیاز را که به شناسه ایمیل افراد تماس مربوطه اشاره می کنند، مقداردهی اولیه می کنیم.
در نهایت، در مرحله 7، تابع "Execute-Process" را فراخوانی می کنیم که کل مکانیک را هدایت می کند.
هنگامی که تابع اجرا شد، میتوانیم ایمیل دریافتی را ببینیم که خطا را به مدیران اطلاع میدهد، همانطور که در زیر نشان داده شده است.
برای اینکه این فرآیند شهودیتر شود، من این اسکریپت را با استفاده از Windows Task Scheduler برنامهریزی کردم تا در فواصل زمانی خاص اجرا شود و گزارشها برای شناسههای رویداد خاص اسکن شود.
در پیادهسازی واقعیام، تابع « Monitor-Event-Logs» را طراحی کردم تا مجموعهای از شناسههای رویداد را بپذیرم تا نظارت شوند. بنابراین بسته به نیاز خود می توانید آن را امتحان کنید.
امیدوارم که شما آن را مفید بدانید.