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

एक स्क्रिप्ट चलाएं (प्रोग्राम) जब विंडोज़ में एक विशिष्ट प्रोग्राम खुलता/बंद होता है

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

सबसे पहले, विंडोज़ पर प्रोसेस ऑडिट पॉलिसी को कॉन्फ़िगर करें। आप स्थानीय समूह नीति संपादक (gpedit.msc का उपयोग करके एक स्टैंड-अलोन कंप्यूटर पर ऑडिट नीति कॉन्फ़िगर कर सकते हैं। ) यदि आप अपने AD डोमेन में कंप्यूटर और सर्वर पर नीति कॉन्फ़िगर करना चाहते हैं, तो समूह नीति प्रबंधन कंसोल (gpmc.msc) का उपयोग करें। )।

  1. कंप्यूटर कॉन्फ़िगरेशन पर जाएं -> Windows सेटिंग -> सुरक्षा सेटिंग -> स्थानीय नीतियां -> ऑडिट नीति;
  2. खोलें ऑडिट प्रक्रिया ट्रैकिंग गुण और सफलता . के लिए इसे सक्षम करें इवेंट; एक स्क्रिप्ट चलाएं (प्रोग्राम) जब विंडोज़ में एक विशिष्ट प्रोग्राम खुलता/बंद होता है
  3. समूह नीति सेटिंग चलाकर लागू करें:gpupdate /force

अब, Windows में कोई भी प्रक्रिया प्रारंभ करते समय, EventID 4688 . के साथ एक ईवेंट (A new process has been created ) इवेंट व्यूअर -> विंडोज लॉग्स -> सुरक्षा में दिखाई देगा। घटना से पता चलता है कि इस प्रक्रिया को किसने चलाया है (खाता का नाम ), प्रक्रिया का नाम (नई प्रक्रिया का नाम ), और मूल प्रक्रिया का नाम (निर्माता प्रक्रिया का नाम )।

एक स्क्रिप्ट चलाएं (प्रोग्राम) जब विंडोज़ में एक विशिष्ट प्रोग्राम खुलता/बंद होता है

आप 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*”}

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

एक स्क्रिप्ट चलाएं (प्रोग्राम) जब विंडोज़ में एक विशिष्ट प्रोग्राम खुलता/बंद होता है

फिर कार्य शेड्यूलर में एक नया कार्य बनाएं जो EventID 4688 वाला कोई ईवेंट दिखाई देने पर चलेगा।

  1. कार्य शेड्यूलर खोलें (taskschd.msc ) और एक नया कार्य बनाएं -> कार्य बनाएं;
  2. कार्य नाम प्रदान करें और निर्दिष्ट करें कि इसे सभी उपयोगकर्ताओं के लिए चलाया जाना चाहिए (कार्य चलाते समय, निम्न उपयोगकर्ता खाते का उपयोग करें -> BUILTIN\Users ) यदि आप GPO का उपयोग करके कोई कार्य बनाते हैं, तो इस प्रारूप का उपयोग करें:%LogonDomain%\%LogonUser%;
  3. कार्रवाइयां पर टैब, वह क्रिया सेट करें जिसे आप करना चाहते हैं। इस उदाहरण में, मैं एक पावरशेल स्क्रिप्ट चलाऊंगा (कॉल करें powershell.exe विशेषताओं के साथ:-ExecutionPolicy Bypass -file "C:\PS\ProcessRunEvent.ps1 ); एक स्क्रिप्ट चलाएं (प्रोग्राम) जब विंडोज़ में एक विशिष्ट प्रोग्राम खुलता/बंद होता है
  4. फिर टास्क को विंडोज इवेंट से बांधें। ट्रिगर . पर जाएं टैब में, नया select चुनें -> एक ईवेंट पर -> कस्टम -> नया ईवेंट फ़िल्टर;
  5. अगली विंडो में, निम्नलिखित ईवेंट फ़िल्टर विकल्प निर्दिष्ट करें:
    इवेंट लॉग:Security
    ईवेंट आईडी:4688
    कीवर्ड:Audit Success
    एक स्क्रिप्ट चलाएं (प्रोग्राम) जब विंडोज़ में एक विशिष्ट प्रोग्राम खुलता/बंद होता है
  6. फिर XML . पर जाएं टैब को सक्षम करें और क्वेरी को मैन्युअल रूप से संपादित करें . सक्षम करें विकल्प। फ़िल्टर में निम्न पंक्ति जोड़कर क्वेरी संपादित करें: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 चलाने का प्रयास करें। हर बार जब कोई उपयोगकर्ता नोटपैड खोलता है, तो आपकी पावरशेल स्क्रिप्ट स्वचालित रूप से चलेगी।

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

एक स्क्रिप्ट चलाएं (प्रोग्राम) जब विंडोज़ में एक विशिष्ट प्रोग्राम खुलता/बंद होता है

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

इससे पहले हमने एक प्रक्रिया को स्वचालित रूप से पुनरारंभ करने के लिए एक पावरशेल स्क्रिप्ट दिखाई थी यदि यह बंद हो जाती है। किसी प्रक्रिया के रन/स्टॉप ईवेंट को ट्रैक करने वाला समाधान अधिक सुरुचिपूर्ण है और चल रही विंडोज़ प्रक्रियाओं की निगरानी के लिए पावरशेल स्क्रिप्ट की आवश्यकता नहीं है।


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

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

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

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

  1. विंडोज़ में प्रोग्राम के सीपीयू उपयोग को कैसे सीमित करें?

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