Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

Windows में किसी विशिष्ट प्रोग्राम के खुलने/बंद होने पर स्क्रिप्ट (प्रोग्राम) चलाएं

इस लेख में, हम दिखाएंगे कि Windows में किसी निश्चित प्रोग्राम (प्रोसेस) के लॉन्च इवेंट को कैसे ट्रैक करें और एक एक्शन करें (स्क्रिप्ट, कमांड, प्रोग्राम चलाएं, ईमेल भेजें, आदि)। उदाहरण के रूप में, हम notepad.exe प्रोसेस के लॉन्च को ट्रैक करेंगे। और जब कोई उपयोगकर्ता Notepad खोलेगा, तो Windows स्वचालित रूप से एक विशिष्ट PowerShell स्क्रिप्ट चलाएगा।

सबसे पहले, Windows पर प्रोसेस ऑडिट पॉलिसी कॉन्फ़िगर करें। आप Local Group Policy Editor (gpedit.msc) का उपयोग करके स्टैंडअलोन कंप्यूटर पर ऑडिट पॉलिसी कॉन्फ़िगर कर सकते हैं। यदि आप अपने AD डोमेन में कंप्यूटर्स और सर्वर्स पर पॉलिसी कॉन्फ़िगर करना चाहते हैं, तो Group Policy Management कंसोल (gpmc.msc) का उपयोग करें।

  1. Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Audit Policy पर जाएं;
  2. Audit process tracking गुण खोलें और इसे Success इवेंट्स के लिए सक्षम करें;
  3. Group Policy सेटिंग्स लागू करें: gpupdate /force

अब, Windows में किसी भी प्रोसेस को शुरू करते समय, Event Viewer -> Windows Logs -> Security में EventID 4688 (A new process has been created) वाला एक इवेंट दिखाई देगा। इवेंट दिखाता है कि प्रोसेस किसने चलाया (Account name), प्रोसेस का नाम (New Process Name), और पैरेंट प्रोसेस का नाम (Creator Process Name)।

आप PowerShell का उपयोग करके इवेंट लॉग से ऐप लॉन्च इवेंट्स को विशिष्ट प्रोसेस द्वारा चुन सकते हैं:

Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    ID = 4688
} | Select-Object TimeCreated,@{name='NewProcessName';expression={ $_.Properties[5].Value }}, @{name='User';expression={ $_.Properties[1].Value }}|where-object {$_.NewProcessName –like “*notepad.exe*”}

परिणामस्वरूप, हमें इस कंप्यूटर पर उपयोगकर्ताओं द्वारा प्रोग्राम लॉन्च करने का इतिहास मिला।

फिर Task Scheduler में एक नया टास्क बनाएं जो EventID 4688 वाले इवेंट दिखाई देने पर चलेगा।

  1. Task Scheduler (taskschd.msc) खोलें और एक नया टास्क बनाएं -> Create Task;
  2. टास्क नाम दें और निर्दिष्ट करें कि यह सभी उपयोगकर्ताओं के लिए चलना चाहिए (When running the task, use the following user account -> BUILTIN\Users)। यदि आप GPO का उपयोग करके टास्क बनाते हैं, तो इस फॉर्मेट का उपयोग करें: %LogonDomain%\%LogonUser%;
  3. Actions टैब पर, वह एक्शन सेट करें जिसे आप करना चाहते हैं। इस उदाहरण में, मैं एक PowerShell स्क्रिप्ट चलाऊंगा (powershell.exe को एट्रिब्यूट्स के साथ कॉल करें: -ExecutionPolicy Bypass -file "C:\PS\ProcessRunEvent.ps1);
  4. फिर टास्क को Windows इवेंट से बांधें। Triggers टैब पर जाएं, New -> On an event -> Custom -> New Event Filter चुनें;
  5. अगली विंडो में, निम्न इवेंट फ़िल्टर विकल्प निर्दिष्ट करें:
    Event logs: Security
    Event ID: 4688
    Keywords: Audit Success
  6. फिर XML टैब पर जाएं और Edit query manually विकल्प सक्षम करें। फ़िल्टर में निम्न लाइन जोड़कर क्वेरी संपादित करें: and *[EventData[Data[@Name='NewProcessName'] and (Data='C:\Windows\System32\notepad.exe')]]
  7. आपको निम्न XML क्वेरी प्राप्त होगी:
    <QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13312 and (band(Keywords,9007199254740992)) and (EventID=4688)]] and *[EventData[Data[@Name='NewProcessName'] and (Data='C:\Windows\System32\notepad.exe')]] </Select> </Query> </QueryList> 
  8. टास्क सहेजें।

Notepad.exe चलाने का प्रयास करें। हर बार जब कोई उपयोगकर्ता Notepad खोलेगा, तो आपकी PowerShell स्क्रिप्ट स्वचालित रूप से चलेगी।

उदाहरण के लिए, आप PowerShell का उपयोग करके पॉप-अप नोटिफिकेशन प्रदर्शित कर सकते हैं या ईमेल भेज सकते हैं।

विशिष्ट ऐप को बंद करने के बाद, कभी-कभी आप बैकअप स्क्रिप्ट आदि चलाना चाह सकते हैं। यदि आप किसी प्रोग्राम से बाहर निकलने को ट्रैक करना चाहते हैं, तो Event ID 4689 — A process has exited वाले इवेंट का उपयोग करें।

हमने पहले एक PowerShell स्क्रिप्ट दिखाई थी जो प्रोसेस के रुकने पर उसे स्वचालित रूप से रीस्टार्ट करती है। किसी प्रोसेस के रन/स्टॉप इवेंट को ट्रैक करने वाला समाधान अधिक सुंदर है और इसके लिए चल रही Windows प्रोसेसेज को मॉनिटर करने के लिए PowerShell स्क्रिप्ट की आवश्यकता नहीं होती।

  1. मेरे Windows 10 पर WWAHost.exe प्रक्रिया क्या है? क्या मैं इसे अक्षम कर सकता हूं? मेरे Windows 10 पर WWAHost.exe प्रक्रिया क्या है? क्या मैं इसे अक्षम कर सकता हूं?

    WWAHost.exe (Microsoft WWA Host) Microsoft द्वारा एक प्रोग्राम है जो कुछ Windows ऐप्स को ठीक से चलाने की अनुमति देता है। इसलिए यदि आप यहां यह सोचकर आए हैं कि WWAHost.exe एक वायरस है, और आपको इसे अनइंस्टॉल करना चाहिए, तो ऐसा नहीं है। यह Microsoft द्वारा प्रदान किया गया एक हेल्पर प्रोग्राम है, जो Syst

  1. Windows 10 को आवश्यकता पड़ने पर ट्रबलशूटर स्वचालित रूप से चलाने के लिए बनाएं Windows 10 को आवश्यकता पड़ने पर ट्रबलशूटर स्वचालित रूप से चलाने के लिए बनाएं

    Microsoft Fixit से जो शुरू हुआ, वह अब एक स्वचालित समाधान में विकसित हो गया है। Windows 10 का हिस्सा बने ट्रबलशूटर को काफी समय हो गया है। Windows 10 v1903 से शुरू होकर, Windows टीम इसे अगले स्तर पर ले जा रही है। इसे अनुशंसित समस्या निवारण कहा जाता है जो कंप्यूटर में होने वाली समस्याओं को स्वचालित रूप

  1. Windows में किसी प्रोग्राम के CPU उपयोग को कैसे सीमित करें? Windows में किसी प्रोग्राम के CPU उपयोग को कैसे सीमित करें?

    अपने CPU के उपयोग पर नजर रखना काफी उपयोगी है। ऐसा इसलिए है क्योंकि यदि आपका CPU ओवरलोडेड है, तो यह थ्रॉटलिंग का कारण बन सकता है जो आपके PC के समग्र खराब प्रदर्शन का कारण बन सकता है। जैसा कि यह पता चला है, यह उन दिन-प्रतिदिन के कार्यों को महत्वपूर्ण रूप से प्रभावित कर सकता है जो आप अपने कंप्यूटर पर क