कंप्यूटर स्टार्टअप पर प्रोग्राम शुरू करें जब कोई भी लॉग इन न हो और जब कोई लॉग ऑन करे तो विंडो दिखाएं (OS: Windows)


19

मेरे पास एक प्रोग्राम है जो विंडोज सर्वर 2012 पर टास्क शेड्यूलर का उपयोग करके सिस्टम स्टार्टअप पर लॉन्च किया गया है। कंप्यूटर को स्वचालित रूप से रिबूट करने पर भी कार्यक्रम शुरू होना चाहिए।

व्यवस्थापक प्रोग्राम शुरू करने के लिए उपयोग किया जाने वाला खाता है, कार्य के लिए विकल्प "रन चाहे उपयोगकर्ता लॉग ऑन हो या नहीं" की जाँच की जाती है।

इसके साथ समस्या यह है कि जब कोई अंत में दूरस्थ डेस्कटॉप कनेक्शन का उपयोग करके व्यवस्थापक के रूप में लॉग ऑन करता है तो इंटरफ़ेस (प्रोग्राम विंडो) छिपा हुआ है।

जैसा कि मैं समझता हूं कि टास्क शेड्यूलर का उपयोग करके इसे हल करने का कोई तरीका नहीं है।

इसे कैसे हल किया जा सकता है?

यह एक काफी सामान्य समस्या होनी चाहिए लेकिन मैं नेट पर कुछ भी खोज नहीं कर सकता। मुझे बहुत आश्चर्य है कि Microsoft अपने अनुसूचक में इस तरह की सीमा की अनुमति देता है। क्या मैं एक VBScript या कुछ बना सकता हूं जो स्टार्टअप पर चलता है और प्रोग्राम लॉन्च करता है जो तब दिखाई देगा जब उपयोगकर्ता वास्तव में लॉग ऑन करता है?

अन्य विचार?

(मैं नहीं चाहता कि एक अलग GUI- केवल प्रोग्राम बनाया जाए जो मूल प्रोग्राम से जुड़ता है। मैं इसे भी पसंद करूंगा, अगर मुझे उपयोगकर्ता लॉगऑन पर पहले से चल रहे प्रोग्राम को समाप्त नहीं करना है और फिर लॉन्च करना है। यह फिर से।)


2
Firedaemon, एक सेवा के रूप में ऐप इंस्टॉल करें, जब FDPaemon का उपयोग करके "सत्र 0" पर स्विच किया जाए। ऐप देखें।
क्लेनर

यदि आप अपनी स्वयं की सेवा विकसित करते हैं तो यह तकनीकी रूप से किया जा सकता है।
रयान रीस

1
बस अपने ही सवाल का जवाब दिया। हालाँकि, मैं दो दिनों के लिए अपना स्वयं का उत्तर स्वीकार नहीं कर सकता, क्योंकि यहाँ serverfault.com की प्रणाली बेहद खराब है (ज्यादातर लोग अब केवल दो दिनों की प्रतीक्षा किए बिना इस पृष्ठ को छोड़ देंगे और हमेशा के लिए चिन्हित किए गए प्रश्न को छोड़ देंगे)।
मार्कस

2
@ मारकस: कुछ गालियों को रोकने के लिए कौन और क्या कर सकता है, इसकी सीमा तय की गई है। दुर्भाग्य से वे कभी-कभी चीजों को सही तरीके से करने के वास्तविक प्रयासों के लिए असुविधा का कारण बनते हैं, लेकिन कभी-कभी ऐसे समझौते करने की आवश्यकता होती है। यदि आपके पास एक सुझाव है कि स्थिति में सुधार हो सकता है (साइट की सुरक्षा कम से कम लेकिन वास्तविक उपयोगकर्ताओं को कम करने के लिए असुविधाजनक है) तो एक प्रासंगिक "मेटा" साइट ( meta.serverfault.com , मेटा) के माध्यम से विचार को उठाना बेहतर होगा । stackoverflow.com ) एक टिप्पणी में शिकायत करने के बजाय कि साइट चलाने वालों को देखने की बहुत संभावना नहीं है।
डेविड स्पिल्ट

जैसा कि आप मतदान से देख सकते हैं, जिस उत्तर को आप स्वीकार करना चाहते हैं, वह वह नहीं है जिसे लोग इसलिए स्वीकार करते हैं क्योंकि जिस तरह से आप इस बारे में जाने की कोशिश कर रहे हैं वह गलत है।
JamesRyan

जवाबों:


28

यह पता लगाना कि यह कैसे करना है। यह कुछ हद तक वर्कअराउंड है, लेकिन यही मुझे मिलने की उम्मीद थी।

रुकें! अभी तक झंझट मत करो। पढ़ते रहिये...

  • इसे चलाएं, इसे सेट करें ताकि व्यवस्थापक स्वचालित रूप से लॉग ऑन करे।

  • टास्क शेड्यूलर में एक कार्य बनाएँ। इसे तभी चलाएं जब उपयोगकर्ता (व्यवस्थापक) लॉग ऑन हो। ट्रिगर "लॉग ऑन है" और निर्दिष्ट करें कि यह केवल तभी है जब व्यवस्थापक लॉग ऑन करता है।

  • एक दूसरा कार्य बनाएँ। केवल तभी चलाएं जब उपयोगकर्ता लॉग ऑन हो, व्यवस्थापक लॉग ऑन पर ट्रिगर करें। क्रिया "एक प्रोग्राम शुरू करें" और प्रोग्राम "C: \ Windows \ System32 \ rundll32.exe" होना चाहिए, तर्क क्षेत्र के साथ "user32.dll, LockWorkStation" पर सेट किया गया है।

यदि आप कंप्यूटर को पुनरारंभ करते हैं तो क्या होता है कि व्यवस्थापक स्वचालित रूप से लॉग ऑन करता है, जिस प्रोग्राम को आप शुरू करना चाहते हैं वह शुरू हो जाता है और कार्य स्टेशन लॉक हो जाता है। यदि मैं दूरस्थ डेस्कटॉप कनेक्शन से लॉग इन करता हूं तो मैं प्रोग्राम विंडो देख सकता हूं और GUI का उपयोग कर सकता हूं। मैं बिना किसी समस्या के कंप्यूटर को लॉक / अनलॉक कर सकता / सकती हूं और फिर से कनेक्ट / डिस्कनेक्ट कर सकती हूं। अगर मैं सर्वर पर जाता हूं और वास्तविक वर्कस्टेशन पर लॉग इन करता है तो कोई समस्या नहीं है। चूंकि कार्य में प्रशासक पहले से ही हस्ताक्षरित है, वह फिर से नहीं चलेगा (यह कुछ अनंत लॉग-इन-लॉक-लूप नहीं बनाता है जिन्हें आप बाहर नहीं तोड़ सकते हैं)।

इतना ही आसान। दी गई है कि ऑटो लॉगिन के बाद कंप्यूटर लॉक होने से पहले एक सेकंड का समय होता है और मुझे लगता है कि इस समय विंडो के दौरान कंप्यूटर पर भौतिक पहुंच के साथ एक प्रो हैकर कुछ डरपोक कर सकता है लेकिन मेरे मामले में मैं उस सुरक्षा जोखिम को नजरअंदाज कर सकता हूं। जब तक मैं किसी भी प्रो हैकर्स को अपने घर में नहीं जाने देता और उन्हें कंप्यूटर दिखाता हूं कि सिस्टम अपेक्षाकृत सुरक्षित होना चाहिए। इन सबसे ऊपर, कंप्यूटर पर इतना अधिक मूल्य नहीं है कि सुपर-वॉल्ट सुरक्षा की आवश्यकता है इसलिए मैं इस समाधान से काफी खुश हूं।


7
कोई अनादर (या अपमान), माक्र्स। लेकिन अगर यह वास्तव में उस प्रकार का उत्तर है जिसकी आप तलाश कर रहे थे, तो यह प्रश्न सुपरयूज़र के लिए अधिक उपयुक्त होता ।
रयान बोल्गर

2
यह तय करना आसान नहीं था कि यह पोस्ट करने के लिए स्टैक एक्सचेंज क्या है।
मार्कस

हाय मार्कस, मैंने आपके उत्तर का पालन किया लेकिन मुझे सिर्फ एक के बजाय GUI के साथ दो कार्यक्रमों को लॉन्च करने में समस्या है। मैंने एक प्रश्न पोस्ट किया है SuperUser। यदि आप इसका उत्तर दे सकते हैं तो यह एक बड़ी मदद होगी - superuser.com/questions/902386/…
user2162550

1
वास्तव में यह नकारना कि अब भी क्योंकि यह सवाल का जवाब नहीं है। प्रश्न स्पष्ट रूप से लॉग इन किए गए दोपहर को परिभाषित करता है - और आपका "समाधान" यहां एक स्वचालित लॉगिन बनाता है (इसलिए कोई व्यक्ति लॉग इन है)। हो सकता है कि सवाल में स्मार्ट फॉमुलेशन न हो, लेकिन सवाल तो यही है।
टॉम टॉम

1
@TomTom एक अंतिम-उपयोगकर्ता के लिए प्रस्तुत एक विकल्प के रूप में "भागो कि क्या उपयोगकर्ता लॉग ऑन है या नहीं" निश्चित रूप से इसका मतलब हो सकता है "आपको यह सुनिश्चित करने के लिए यहां होना नहीं होगा कि यह शुरू हो जाए।"
आर्येह लीब तौआरोग

16

मेरे पास एक प्रोग्राम है जो विंडोज सर्वर 2012 पर टास्क शेड्यूलर का उपयोग करके सिस्टम स्टार्टअप पर लॉन्च किया गया है। कंप्यूटर को स्वचालित रूप से रिबूट करने पर भी कार्यक्रम शुरू होना चाहिए।

फिर आप इसे एक सिस्टम सेवा क्यों नहीं बनाते हैं, क्योंकि विंडोज़ चश्मा परिभाषित करता है?

इसे कैसे हल किया जा सकता है?

आप नहीं कर सकते। पृष्ठभूमि कार्यक्रम यूआई के साथ बातचीत करने के लिए नहीं हैं। या: यूआई को स्वयं का प्रोग्राम चलाना चाहिए जो फिर सेवा से जुड़ता है। लॉग इन उपयोगकर्ता के उपयोगकर्ता स्थान में चल रहा यूआई प्रस्तुति करता है, विंडोज़ सेवा प्रसंस्करण करता है। यह है कि मॉडल को शायद 15 साल या इसके लिए डिज़ाइन किया गया है।

मुझे बहुत आश्चर्य है कि Microsoft अपने अनुसूचक में इस तरह की सीमा की अनुमति देता है।

मुझे अधिक आश्चर्य है कि आपने कभी यह पूछने की कोशिश नहीं की कि क्यों।

कई मुद्दे हैं:

  • जब कई लोग लॉग इन होते हैं, तो यूआई किसे मिलता है?
  • जब उपयोगकर्ता लॉग आउट करता है, तो आप प्रोग्राम को मारते हैं? ओह।
  • सुरक्षा। पृष्ठभूमि कार्यक्रम सीमित अधिकारों के तहत चल सकता है - उपयोगकर्ता को यूआई को उजागर करने का मतलब है कि उपयोगकर्ता वहां कोड निष्पादित कर सकता है। मुद्दों के साथ पूर्ण विंडोज़ संदेश संदेश है - आह।

मैं एक अलग GUI- केवल प्रोग्राम बनाना नहीं चाहता, जो मूल प्रोग्राम से जुड़ जाए।

न तो मुझे और न ही Microsoft को इस बात की परवाह है कि आप क्या करना पसंद करते हैं। उपयोगकर्ता यूआई में लॉग इन में पृष्ठभूमि प्रसंस्करण को टाई करने के लिए एक स्थापित और समर्थित मॉडल है - इसका उपयोग करें, या नहीं। लेकिन जब ऐसा न हो, तो आपके द्वारा रखे गए सुरक्षा मुद्दों के बारे में शिकायत न करें।


3
तथास्तु। मैं चाहता हूं कि अधिक ऐप विक्रेताओं ने इस अवधारणा को समझा।
रयान बोलगर

15
वाह क्या आप अपने दृष्टिकोण में झपकी नहीं ले रहे हैं खैर, लगता है कि मैं भाग्य से बाहर हूँ। जब तक आप गलत नहीं होते हैं और किसी के पास इसे हल करने का कोई तरीका होता है, हर कोई हर चीज को नहीं जान सकता है तो आप गलत हो सकते हैं "आप अपनी पोस्ट का हिस्सा नहीं बन सकते हैं"। मैं इस सवाल को कुछ समय के लिए और अधिक जवाब के लिए खुला छोड़ना चाहता हूं, बस अगर किसी को साझा करने के लिए कोई असामान्य हल है। और मैं आपका उत्तर स्वीकार करूंगा।
मार्कस

आजकल विंडोज के वर्तमान संस्करणों में किसी सेवा को यूआई देना कठिन है, लेकिन असंभव नहीं है।
एमडीमोहोर313

यह सक्रिय रूप से नहीं चाहता था क्योंकि ज्यादातर सुरक्षा चिंताएं थीं। यहाँ मुख्य समस्या यह है कि - और आपको वास्तव में यह प्राप्त करने की आवश्यकता है - यदि आप मेरे UI में एक विंडो दिखाते हैं, तो मैं आपकी प्रक्रिया में कोड निष्पादित कर सकता हूं। फिर मैं आपको विंडोज़ संदेश भेज सकता हूं और इसमें एक टन सामान है जिसका शोषण किया जा सकता है। आम तौर पर कोई समस्या नहीं है - क्योंकि अगर यह एक उपयोगकर्ता ऐप है, तो मैं केवल उन चीजों को कर सकता हूं जो मैं एक उपयोगकर्ता के रूप में कर सकता हूं .... लेकिन अगर सेवा में उच्च निजीकृत हैं, तो यहां सुरक्षा दुःस्वप्न है। यह इसलिए है क्योंकि यह कई साल पहले बंद हो गया था और हर कोई जो प्रोग्रामिंग सीखता था और प्रलेखन पढ़ता था, उसे इसके बारे में पढ़ना चाहिए
टॉमटॉम

1
यदि आप वास्तव में वहां जाना चाहते हैं, तो आप coretechnologies.com/WindowsServices/FAQ.html#GUIServices में दिए गए चरणों को आज़मा सकते हैं - सुनिश्चित नहीं कि वे अभी भी वर्तमान विंडो में काम करते हैं, लेकिन UI एक्सेसबाइल बनाने के तरीके हैं - और सभी सुरक्षा मुद्दों को खोलें ।
टॉमटॉम

0

यह सब के बारे में है Sessionकि आपका कार्यक्रम अंदर चलता है। यदि कोई लॉग इन नहीं है, तो प्रदर्शित करने के लिए कोई इंटरैक्टिव सत्र नहीं है, मेरा मानना ​​है कि यह नीचे चलता है Session 0, जिसमें एक अजीब यूआई है जो दूसरों की तरह नहीं दिखाता है।

अब, यदि आपका प्रोग्राम explorer.exeलॉन्च होने पर (या उपयोगकर्ता लॉगिन का पता लगाने का कोई और तरीका) पता लगाता है और जादुई रूप से खुद को पुन: प्राप्त कर लेता है या उस नए सत्र में कुछ बच्चे की प्रक्रिया को जन्म दे देता है, तो जो कोई भी लॉग इन करता है वह खुशी-खुशी देखेगा कि आप क्या कर रहे हैं।

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