E-Mail-Benachrichtigung senden, wenn eine bestimmte Ereignis-ID generiert wird
Ich habe eine ähnliche Lösung, die ich weitergeben wollte, nur für den Fall, dass jemand sie einsetzen kann, da sie mir scheinbar helfen und mich nur anschreien soll, wenn ich es explizit auf der Grundlage bestimmter Ereignis-IDs benötige .
Terminplanung
Diese Lösung verwendet einen Taskplaner- Job mit vielen verschiedenen Triggern des Ereignisses On a, wenn es ausgeführt werden soll. Sie geben die spezifische Ereignis-ID an, die eine Ausführung " auslösen " soll.
PowerShell-Skript
Hier ist ein PowerShell- Skript, das ein Google Mail-Konto mit einem Kennwort zum Senden einer E-Mail verwendet, die die Details der zutreffenden Ereignisse in seinem Hauptteil enthält.
Hinweis: Sie müssen das Kennwort des Google Mail-Kontos als erstes Argument an das PowerShell-Skript übergeben.
$EmailPassword=$args[0] $event = get-eventlog -LogName System -EntryType Error -newest 1 $PCName = $env:COMPUTERNAME $Username = "LocalMailBox" $EmailBody = $event | format-list -property * | out-string $EmailFrom = "$PCName <noreply@domain.notify>" $EmailTo = "whatever@gmail.com" $EmailSubject = "New Event Log [System]" $SMTPServer = "smtp.gmail.com" Write-host "Sending Email" $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword); $SMTPClient.Send($EmailFrom, $EmailTo, $EmailSubject, $EmailBody) Start-Sleep -s 10
Auf der Registerkarte " Aktion" erstellen Sie eine Aktion, die wie folgt definiert ist:
- Aktion:
Start a program
- Programm / Skript:
Powershell
- Argumente hinzufügen (optional):
-ExecutionPolicy Bypass -File "C:\Scripts\PSScript.ps1" "GmailPassword"
- Beginnen Sie in (optional):
C:\Windows\System32\WindowsPowerShell\v1.0
Von dem Allgemein Registerkarte der geplanten Aufgabe, sicherzustellen, dass der Run ob Benutzer angemeldet sind oder nicht und der Run mit höchsten Privilegien Optionen aktiviert ist.
Die Email
Wenn alle oben aufgeführten Einstellungen wie angegeben festgelegt sind, wird sichergestellt, dass bei der Generierung bestimmter Systemereignis-IDs, für die Sie eine E-Mail senden, " ausgelöst " wird, und eine E-Mail gesendet wird, die hoffentlich mit den zutreffenden Details für das jeweils auslösende Ereignis versehen ist.
Ich erwähne dies nur, da ich bemerkt habe, dass, wenn zwei Ereignisse, die der PowerShell- Logik $event | format-list -property * | out-string
entsprechen, schnell erstellt werden, der Hauptteil der E-Mail die Details des neuesten Ereignisses enthält, die auf dem Zeitablauf basieren.
Denken Sie daran, dass der Inhalt der Ereignis-ID unabhängig von den Ereignissen, die Sie als Auslöser definiert haben, auch wenn er nicht relevant ist, dass die definierten Auslöser diese E-Mail tatsächlich ausgelöst haben.