किसी ईवेंट में कार्य संलग्न करते समय संदेश में ईवेंट विवरण प्रदर्शित करें


3

जब मैं हार्डवेयर को सुरक्षित रूप से हटाने की कोशिश करता हूं, तो विंडोज 10 मुझे बताता है कि एक प्रोग्राम हार्डवेयर का उपयोग कर रहा है, लेकिन मुझे यह नहीं बताता कि यह कौन सा प्रोग्राम है। मैंने पाया कि यह जानकारी सिस्टम के तहत इवेंट व्यूअर में दर्ज है क्योंकि इवेंट 225 इस प्रकार है:

एप्लिकेशन \ डिवाइस \ HarddiskVolume3 \ Program Files ... प्रक्रिया आईडी 4424 के साथ डिवाइस को हटाने या अस्वीकृति को रोका गया ...।

यह बहुत उपयोगी जानकारी है जिसे मैं हर बार इवेंट व्यूअर के बिना देखना चाहता हूं। मैंने पाया है कि इवेंट व्यूअर में एक बटन होता है, जिसमें अटैच टास्क टू दिस इवेंट होता है ... जब दबाया जाता है, तो यह हर बार इस ईवेंट के लॉग होने पर एक संदेश प्रदर्शित करने का विकल्प प्रदान करता है। मैं चाहूंगा कि जब भी कार्य पूरा हो जाए, तो ईवेंट विवरण हर बार 225 प्रदर्शित हो। ऐसा लगता है कि यह संभव हो सकता है, लेकिन मैं सिस्टम स्तर का विशेषज्ञ नहीं हूं।

क्या मेरा लक्ष्य पूरा करने का एक आसान तरीका है? यदि प्रदर्शन संदेश में नहीं है, तो क्या यह जानकारी मुझे बताने के बजाय निष्पादित करने के लिए एक बैच फ़ाइल को स्क्रिप्ट करने का एक तरीका है?

जवाबों:


1

"एक संदेश प्रदर्शित करें" कार्रवाई को हटा दिया गया है और वास्तव में कुछ भी नहीं कर सकता है। इसके बजाय, आप PowerShell का उपयोग कर सकते हैं! इसे .ps1कंप्यूटर पर कहीं फ़ाइल के रूप में सहेजें , जैसे C:\evtmsg.ps1:

Add-Type -AssemblyName System.Windows.Forms
$lastEvt = Get-WinEvent -LogName 'System' -MaxEvents 20 | ? { $_.Id -eq 225 } | select -First 1
[System.Windows.Forms.MessageBox]::Show(($lastEvt.Message), 'Ejection Failed')

इस स्क्रिप्ट को सिस्टम लॉग से घटना 225 का सबसे हालिया उदाहरण मिलता है और अपने संदेश को प्रदर्शित करने के लिए विंडोज फॉर्म लाइब्रेरी का उपयोग करता है।

ईवेंट व्यूअर के अटैच टास्क का उपयोग करें। ईवेंट के इस इवेंट के लिए इवेंट 225 के उदाहरण पर। एक्शन स्क्रीन पर, "एक प्रोग्राम शुरू करें" चुनें, फिर powershellप्रोग्राम / स्क्रिप्ट को चलाने के लिए निर्दिष्ट करें । "आर्ग्युमेंट्स जोड़ें" बॉक्स में, इस पंक्ति को रखें, जहाँ आपने PowerShell स्क्रिप्ट को सहेजा है:

-executionpolicy bypass -windowstyle hidden -file C:\evtmsg.ps1

कार्य बनाने के तुरंत बाद परिवर्तन प्रभावी होना चाहिए।


0

विशिष्ट ई-मेल आईडी जनरेट होने पर ईमेल सूचना भेजें

मेरे पास एक ऐसा ही समाधान है जिसे मैं केवल उसी स्थिति में साझा करना चाहता था जब कोई इसका उपयोग करने के लिए डाल सकता है क्योंकि यह मुझे बाहर निकालने में मदद करता है और मुझ पर चिल्लाता है जब मुझे स्पष्ट रूप से विशिष्ट इवेंट आईडी के आधार पर इसकी आवश्यकता होती है ।

निर्धारण

यह समाधान कार्य शेड्यूलर कार्य का उपयोग करता है जिसमें ऑन करने के लिए किसी इवेंट के ऑन के कई भिन्न ट्रिगर होते हैं । आप विशिष्ट ईवेंट आईडी निर्दिष्ट करते हैं जो एक निष्पादन को " ट्रिगर " करने के लिए है ।

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें


पॉवरशेल स्क्रिप्ट

यहां एक PowerShell स्क्रिप्ट है जो एक ईमेल भेजने के लिए एक पासवर्ड के साथ एक जीमेल खाते का उपयोग करता है जिसमें इसके शरीर में लागू घटनाओं का विवरण शामिल होगा।

नोट: आपको Gmail खाता पासवर्ड PowerShell स्क्रिप्ट के पहले तर्क के रूप में पास करना होगा।

$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

से कार्रवाई टैब आप एक पैदा करेगा कार्रवाई के रूप में परिभाषित:

  • क्रिया: Start a program
  • कार्यक्रम / स्क्रिप्ट: Powershell
  • तर्क जोड़ें (वैकल्पिक): -ExecutionPolicy Bypass -File "C:\Scripts\PSScript.ps1" "GmailPassword"
  • प्रारंभ (वैकल्पिक): C:\Windows\System32\WindowsPowerShell\v1.0 यहां छवि विवरण दर्ज करें

निर्धारित कार्य के सामान्य टैब से, सुनिश्चित करें कि उपयोगकर्ता लॉग ऑन है या नहीं और उच्चतम विशेषाधिकार विकल्पों के साथ चलाएं दोनों चयनित हैं।

यहां छवि विवरण दर्ज करें


ईमेल

ऊपर बताई गई हर चीज के साथ, जैसा कि निर्दिष्ट किया गया है, यह सुनिश्चित करेगा कि जब उन विशिष्ट सिस्टम ईवेंट आईडी को जेनरेट किया जाता है, जिन्हें आपने " ट्रिगर्स " के रूप में परिभाषित किया है, जिसके लिए एक ईमेल भेजा जाएगा, और उम्मीद है कि प्रत्येक ईवेंट को ट्रिगर करने वाले इवेंट के अनुसार लागू विवरण के साथ।

मैं केवल इस बात का उल्लेख करता हूं क्योंकि मैंने देखा है कि अगर पावरस् लेल से मेल खाने वाली दो घटनाओं को $event | format-list -property * | out-stringजल्दी से बनाया जाता है, तो ईमेल के मुख्य भाग में समय के आधार पर नवीनतम घटना का विवरण होगा।

याद रखें कि इवेंट आईडी बॉडी कंटेंट की परवाह किए बिना और भले ही यह आपके द्वारा ट्रिगर की गई विशिष्ट घटनाओं के लिए प्रासंगिक न हो, यह निश्चित है कि उन ट्रिगर ने वास्तव में इस ईमेल को ट्रिगर किया है इसलिए इसे प्राप्त होने पर कुछ ध्यान दें।

यहां छवि विवरण दर्ज करें


जवाब के लिए धन्यवाद। जबकि मैं एक ईमेल की तलाश में नहीं था (क्योंकि यह दूरस्थ सर्वर के बजाय मेरे पीसी के लिए है), मैंने वास्तव में आपके उत्तर से काफी कुछ सीखा है। विशेष रूप से यह कि विंडोज़ के लिए एक और पक्ष है जो मुझे इसे थोड़ा अनुकूलित करने की अनुमति देता है! मुझे लगता है कि मुझे इसकी खोज करते हुए अगले हिस्से में थोड़ा मज़ा आएगा।
यारोस्लाव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.