जब मैं विंडोज पर लॉग ऑन करता हूं, तो एक स्क्रिप्ट को स्वचालित रूप से चलाएं


27

जब मैं विंडोज पर लॉग ऑन करता हूं तो मैं अपने आप स्क्रिप्ट कैसे चला सकता हूं?

जब भी मैं अपने कंप्यूटर में लॉग इन करता हूँ तो मैं कुछ इस तरह से चलाना चाहता हूँ:

echo %USERNAME% logged on at %DATE% %TIME% >> log.txt

जब भी मैं स्क्रीन सेवर को अनलॉक करता हूं, तो एक ही स्क्रिप्ट को चलाने में एक बोनस सक्षम होगा।


प्रशंसित उत्तर बहुत अधिक ओकटाइन है - आपके एक-लाइनर का उपयोग करके, मैं नीचे कुछ और अधिक विनम्र (लेकिन प्रभावी) प्रदान करता हूं; ;-)
जेफ़

जवाबों:


19

आप एक निर्धारित कार्य बना सकते हैं जो आपके कंप्यूटर के अनलॉक होने पर चलेगा:

  1. प्रारंभ> प्रशासनिक उपकरण> कार्य अनुसूचक
  2. बाएँ फलक: कार्य शेड्यूलर लाइब्रेरी का चयन करें
  3. दाएँ फलक: क्लिक करें बनाएँ कार्य ... (नोट: यह सही ट्रिगर प्राप्त करने का एकमात्र तरीका है)
  4. कार्य बनाएँ संवाद में:
    • सामान्य टैब - अपने कार्य के लिए एक नाम प्रदान करें
    • ट्रिगर टैब - नया क्लिक करें ... और वर्कस्टेशन अनलॉक चुनें
    • एक्शन टैब - नई पर क्लिक करें ... और अपनी स्क्रिप्ट का पता लगाने के लिए ब्राउज़ ... पर क्लिक करें
    • शर्तें टैब - अनचेक करें कार्य केवल तभी प्रारंभ करें जब कंप्यूटर AC पावर पर हो

साथ ही, मैंने पढ़ने के लिए स्क्रिप्ट में पथ को ट्विक किया

echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt

22

यदि आपके पास पहले से ही एक स्क्रिप्ट है:

किसी उपयोगकर्ता या समूह को एक लॉगऑन स्क्रिप्ट असाइन करने के लिए

  • कंप्यूटर प्रबंधन खोलें।
  • कंसोल ट्री में, उपयोगकर्ता क्लिक करें।

कहा पे? सिस्टम उपकरण / स्थानीय उपयोगकर्ता और समूह / उपयोगकर्ता

  • उस उपयोगकर्ता पर डबल-क्लिक करें, जिसमें आप एक लॉगऑन स्क्रिप्ट असाइन करना चाहते हैं।
  • प्रोफाइल टैब पर क्लिक करें।
  • लॉगऑन स्क्रिप्ट फ़ील्ड में, लॉगऑन स्क्रिप्ट का पथ और नाम दर्ज करें जिसे आप उस उपयोगकर्ता को असाइन करना चाहते हैं और फिर ठीक पर क्लिक करें।

यहाँ एक आसान Microsoft से "HowTo" है

लॉगऑन स्क्रिप्ट बनाना

उपयोगकर्ता द्वारा किसी विशेष कंप्यूटर पर लॉग ऑन करने पर किए जाने वाले कार्यों को असाइन करने के लिए आप लॉगऑन स्क्रिप्ट का उपयोग कर सकते हैं। स्क्रिप्ट ऑपरेटिंग सिस्टम कमांड, सिस्टम वातावरण चर सेट कर सकते हैं, और अन्य स्क्रिप्ट या निष्पादन योग्य प्रोग्राम को कॉल कर सकते हैं। Windows Server 2003 परिवार दो स्क्रिप्टिंग परिवेशों का समर्थन करता है: कमांड प्रोसेसर बैच भाषा कमांड युक्त फाइलें चलाता है, और Windows स्क्रिप्ट होस्ट (WSH) Microsoft Visual Basic स्क्रिप्टिंग संस्करण (VBScript) या Jscript कमांड युक्त फाइलें चलाता है। लॉगऑन स्क्रिप्ट बनाने के लिए आप टेक्स्ट एडिटर का उपयोग कर सकते हैं। आमतौर पर लॉगऑन स्क्रिप्ट द्वारा किए जाने वाले कुछ कार्यों में शामिल हैं:

  • मैपिंग नेटवर्क ड्राइव।
  • उपयोगकर्ता के डिफ़ॉल्ट प्रिंटर को स्थापित करना और स्थापित करना।
  • कंप्यूटर सिस्टम की जानकारी एकत्रित करना।
  • वायरस हस्ताक्षर अपडेट करना।
  • सॉफ्टवेयर को अपडेट करना।
  • निम्न उदाहरण लॉगऑन स्क्रिप्ट में VBScript कमांड होते हैं जो सक्रिय निर्देशिका का उपयोग करते हैं
  • उपयोगकर्ता के समूह सदस्यता के आधार पर तीन सामान्य कार्य करने के लिए सेवा इंटरफेस (ADSI):

यह डब्ल्यूएसएच नेटवर्क ऑब्जेक्ट के यूजरनेम प्रॉपर्टी के साथ संयोजन में डब्ल्यूएसएच नेटवर्क ऑब्जेक्ट के मैपएन नेटवर्कड्राइव विधि को कॉल करके उपयोगकर्ता की होम निर्देशिका में एच: मैप करता है। यह उपयोगकर्ता के वर्तमान नाम को प्राप्त करने के लिए ADSI IADsADSystemInfo ऑब्जेक्ट का उपयोग करता है, जो बदले में सक्रिय निर्देशिका में संबंधित उपयोगकर्ता ऑब्जेक्ट से कनेक्ट करने के लिए उपयोग किया जाता है। एक बार कनेक्शन स्थापित हो जाने के बाद, उपयोगकर्ता के सदस्य समूह की सूची उपयोगकर्ता के सदस्य की विशेषता का उपयोग करके पुनर्प्राप्त की जाती है। समूह नामों की बहु-सूचिबद्ध सूची को VBScript के जॉइन फ़ंक्शन का उपयोग करके एकल स्ट्रिंग में शामिल किया गया है, ताकि लक्ष्य समूह के नामों की खोज आसान हो सके।

यदि वर्तमान उपयोगकर्ता स्क्रिप्ट के शीर्ष पर परिभाषित तीन समूहों में से एक का सदस्य है, तो स्क्रिप्ट उपयोगकर्ता के G: ड्राइव को समूह साझा ड्राइव पर मैप करती है, और समूह प्रिंटर होने के लिए उपयोगकर्ता के डिफ़ॉल्ट प्रिंटर को सेट करती है। एक उदाहरण लॉगऑन स्क्रिप्ट बनाने के लिए

  • नोटपैड खोलें।
  • कॉपी और पेस्ट, या टाइप करें, निम्नलिखित:

    Const ENGINEERING_GROUP     = "cn=engineering"
    Const FINANCE_GROUP         = "cn=finance"
    Const HUMAN_RESOURCES_GROUP = "cn=human resources"
    
    Set wshNetwork = CreateObject("WScript.Network")
    wshNetwork.MapNetworkDrive "h:",
    "\\FileServer\Users\" & wshNetwork.UserName
    
    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set CurrentUser = GetObject("LDAP://" &
    ADSysInfo.UserName)
    strGroups = LCase(Join(CurrentUser.MemberOf))
    
    If InStr(strGroups, ENGINEERING_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\\FileServer\Engineering\"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\EngLaser"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\Plotter"
        wshNetWork.SetDefaultPrinter
        "\\PrintServer\EngLaser"
    
    ElseIf InStr(strGroups, FINANCE_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\\FileServer\Finance\"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\FinLaser"
        wshNetWork.SetDefaultPrinter
        "\\PrintServer\FinLaser"
    
    ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\\FileServer\Human Resources\"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\HrLaser"
        wshNetWork.SetDefaultPrinter
        "\\PrintServer\HrLaser"
    
    End If
    
  • फ़ाइल मेनू पर, सेव एज़ पर क्लिक करें।

  • सहेजें में, उस निर्देशिका पर क्लिक करें जो डोमेन नियंत्रक के ब्रेटन साझा फ़ोल्डर (आमतौर पर SystemRoot \ SYSVOL \ Sysvol \ DomainName \ Scripts से मेल खाती है जहां DomainName डोमेन का पूरी तरह से योग्य डोमेन नाम है)।
  • Save as type में, All Files पर क्लिक करें।
  • फ़ाइल नाम में, फ़ाइल नाम, उसके बाद .vbs टाइप करें और फिर सहेजें पर क्लिक करें। WSH VBScript कमांड वाली फ़ाइलों की पहचान करने के लिए .vbs एक्सटेंशन का उपयोग करता है।

हमेशा अच्छा लगा कि किसी को जवाब पसंद आए :-D
Ivo Flipse

मैं लगभग इस सीडब्ल्यू बारी करना चाहते हैं और टैग यह पूछे जाने वाले प्रश्न :)
नीम हकीम क्विक्सोट

मेरे अतिथि @quack ;-) क्या वास्तव में है के लिए पूछे जाने वाले प्रश्न?
इवो ​​फ्लिप

14

सबसे आसान तरीका है जिसके बारे में मैं अपने स्टार्टअप फ़ोल्डर में एक .bat फ़ाइल में डाल सकता हूँ।

एक अधिक जटिल तरीका बैच फ़ाइल को रजिस्ट्री में जोड़ना होगा

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

रजिस्ट्री चाबी।


8
यदि आप किसी भी उपयोगकर्ता के लॉग ऑन होने पर इसे चलाना चाहते हैं , तो आपको इसे सभी उपयोगकर्ता स्टार्टअप फ़ोल्डर ( % allusersprofile% / Start Menu \ Programs \ Startup ) में डालना होगा, या LocalMachine reg के रन सेक्शन में एक प्रविष्टि करें: HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run )
Treb

मैं इस तरह से .exe चलाता हूं, लेकिन क्या इसके लिए कोई रास्ता है चुपचाप चलाने के लिए? बिना खुलने और रखने के लिए एक cmd?
बज़ुपनिक

2

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

समूह नीति संपादक ट्यूटोरियल यहाँ


2

किसी को पता है कि क्या इसका उपयोग स्क्रीन को लॉक / अनलॉक करने के साथ ही चलाने के लिए किया जा सकता है?

विंडोज 7 और / या विंडोज सर्वर 2008 के लिए एक तरीका है।

टास्क शेड्यूलर का उपयोग करें, नया मूल कार्य बनाएं, क्योंकि ट्रिगर "जब मैं लॉग ऑन करता हूं" का उपयोग करें।


यदि आप ट्रिगर को "वर्कस्टेशन अनलॉक पर" चाहते हैं तो आप एक मूल कार्य का उपयोग नहीं कर सकते हैं
जेफ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.