विंडोज 7 में इंटरएक्टिव सत्र 0


14

मैं cmd.exe को सत्र d में लॉन्च करने की कोशिश कर रहा हूं। अब तक मैंने एक उन्नत कमांड प्रॉम्प्ट से निम्नलिखित काम किया है:

sc config UI0Detect start= auto
net start UI0Detect

और प्रतिक्रिया इंगित करती है कि सेवा सही ढंग से शुरू की गई थी। यह इस बिंदु पर है कि मैंने मान लिया कि अगर मैं सत्र 0 पर स्विच करता हूं, तो cmd.exe चालू होगा।

मैं निम्न आदेश का उपयोग करके सत्र 0 पर स्विच करता हूं:

rundll32 winsta.dll,WinStationSwitchToServicesSession

यह मुझे सफलतापूर्वक सत्र 0 पर स्विच करता है, लेकिन केवल खिड़की जो उपलब्ध है वह वह है जिसमें सत्र 1 पर लौटने का विकल्प है।

सत्र 0 में लॉन्च करने के लिए मुझे cmd.exe कैसे मिलेगा?


तुमने ऐसा क्यों करना चाहोगे? UI0Detect पुरानी सेवाओं को एक संदेश बॉक्स पॉप अप करने की अनुमति देता है, नए GUI ऐप्स शुरू नहीं कर रहा है। cmd.exe में एक GUI है
पीटर हंडॉर्फ

6
@PeterHahndorf मैं समझता हूँ कि यह कहकर सवालों का जवाब देने में मज़ा आता है कि "चलो एक कदम पीछे ले जाएं और देखें कि क्या हमें वास्तव में ऐसा करने की आवश्यकता है क्योंकि यह एक बुरे विचार की तरह लगता है", और यह साथी डेवलपर्स को कृपालु करने के लिए एक अपेक्षाकृत अच्छा तरीका है। लेकिन जब से यह एक डिबगिंग परिदृश्य के लिए है और इसका मतलब है एक त्वरित फिक्स (और ऑलयुप जैसे कुछ 3 पार्टी ऐप का उपयोग करने का विकल्प), मैं वास्तव में यह नहीं देखता कि "क्यों" एक सहायक प्रतिक्रिया है। फिर भी धन्यवाद।
omghai2u

मुझे लगता है कि पीटर के पास एक बिंदु है। प्रश्न जो आपको लिखा जाना चाहिए था "यह वही है जो मैं करने की कोशिश कर रहा हूं।" एक त्वरित सुधार केवल भविष्य के दर्द को शामिल करेगा। मैं गिन नहीं सकता कि मैंने तीन बार बाद में "क्विक फिक्स" केवल "क्विक फिक्स" देखा है। । । एक और "जल्दी ठीक" की जरूरत है। मैं मान रहा हूं कि आप किसी प्रकार की बैच स्क्रिप्ट चलाने के लिए टाइप कर रहे हैं?
सर्फस

1
@surfasb आपके द्वारा सुझाया गया प्रश्न अनिवार्य रूप से मेरे द्वारा लिखा गया प्रश्न है: "मैं सत्र 0. में cmd.exe लॉन्च करने का प्रयास कर रहा हूं।" कृपया उस प्रश्न पर उत्तर केंद्रित रखें। धन्यवाद। और यह कोई मौका नहीं है कि यह भविष्य में दर्द को शामिल करने के लिए उत्पादन में अपना रास्ता बना ले, या इसके लिए। जिस तरह से मैं इसे प्रोडक्शन के लिए तैयार करता हूं वह पहले से ही सेट है लेकिन मैं इसे डीबगिंग के लिए इस्तेमाल नहीं कर सकता। जिस तरह से मैं वर्तमान में डिबगिंग के लिए कर रहा हूं वह बोझिल है और इसमें 3 पार्टी ऐप का उपयोग करना शामिल है।
omghai2u

जवाबों:


19

Cmd.exe को सत्र 0 में लॉन्च करने के लिए, Sysinternals से psexec का उपयोग करें

psexec.exe -s 0 cmd.exe

अब आपके पास सत्र 0 में चलने वाला कंसोल है,

आप cmd.exe को सत्र 0 में भी शुरू कर सकते हैं और GUI प्रदर्शित कर सकते हैं:

psexec.exe -s -i 0 cmd.exe

इस तरह जब आप सत्र 0 पर स्विच करते हैं, तो cmd.exe आपके लिए वहां इंतजार कर रहा होगा।

आपके पास विंडोज 7 में जितने अधिकार हो सकते हैं:

whoami /all

यदि आप अन्य PsTools का उपयोग करते हैं, तो / accepteula स्विच का उपयोग करना याद रखें:

pslist /accepteula

अन्यथा प्रोग्राम यूला को स्वीकार करने के लिए पूछने के लिए एक संदेश बॉक्स पॉप अप करता है, कार्यक्रम लटका होगा क्योंकि संदेश बॉक्स को बंद करने के लिए सत्र 0 में कोई UI नहीं है।

यह सत्यापित करने के लिए कि आप सत्र 0 में चल रहे हैं, आप qprocess का उपयोग कर सकते हैं:

qprocess /ID:0

आप सभी सेवा प्रक्रियाओं के बीच अपना 'cmd.exe' देखेंगे।


मेरे प्रश्न का उत्तर देने के प्रयास के लिए बहुत बहुत धन्यवाद। यह निश्चित रूप से काम करेगा, मेरा विशिष्ट इरादा (जैसा कि टिप्पणियों में बताया गया है), हालांकि 3 पार्टी ऐप का उपयोग करने से बचना था। वहाँ यह करने के लिए एक अच्छा तरीका है कि SysInternals उपकरण (या वास्तव में कुछ भी जो विंडोज पर स्टॉक नहीं आता है) के उपयोग की आवश्यकता नहीं है? एक बार फिर धन्यवाद।
omghai2u

2
मैं Sysinternal उपकरण '3rd पार्टी' पर विचार नहीं करता, वे Microsoft से हैं और आपको उन्हें स्थापित करने की आवश्यकता नहीं है।
पीटर हैन्डफोर

क्षमा करें, मैं डिफ़ॉल्ट "3-पार्टी" द्वारा स्थापित कुछ भी नहीं पर विचार कर रहा था।
omghai2u

पीटर। बहुत बढ़िया धन्यवाद। सत्र 0 में एक प्रक्रिया शुरू करने के लिए पूरी तरह से काम करता है (जिसका अर्थ है कि जब आप लॉग ऑफ करते हैं तो यह चालू रहता है।)
डैनियल जेम्स ब्रायर्स

5
पहली कमांड लाइन गलत है: उपयोगकर्ता के -sरूप में चलती है SYSTEMऔर तर्क नहीं लेती है। शायद आप -i 0पहले उदाहरण -s -i 0में और दूसरे में थे?
jwg

1

यह काम नहीं करेगा। यह केवल सिस्टम के रूप में एक प्रक्रिया शुरू करता है।

सेवाएँ एक विशेष तरीके से सेवा नियंत्रण प्रबंधक से आदेशों को स्वीकार करने के लिए लिखे गए कार्यक्रम हैं।

एमएस में एक उपयोगिता है जो एक कार्यक्रम को सेवा के रूप में चलाने की अनुमति देता है। यह कहा जाता है Srvanyऔर Windows 2003 संसाधन किट उपकरण में है।

Windows Server 2003 संसाधन किट उपकरण डाउनलोड करें


0

मैंने एक दिन दुर्घटना से समाधान खोज लिया, लेकिन http://www.alex-ionescu.com/?p=59 भी जो मैंने पाया उसके पास एक समाधान का दस्तावेज है

निम्नलिखित के साथ एक बैच फ़ाइल बनाएँ (इसे कुछ कहिए ।bat)

start cmd

फिर इस बैच फ़ाइल को कॉल करने के लिए एक सेवा बनाएं (एक व्यवस्थापक कमांड प्रॉम्प्ट का उपयोग करके)

sc create access0 type= interact type= own binpath= some.bat

(प्रत्येक = के बाद स्थान को नोट करें, और मैं कुछ के लिए पूर्ण पथ का उपयोग करने का सुझाव देता हूं।)

फिर यह सेवाओं को शुरू करने की बात है

sc start ui0detect
sc start access0

(Sc config UI0Detect start = auto के साथ ui0detect ऑटो स्टार्ट बनाने की कोई आवश्यकता नहीं है)

और अगर सब ठीक हो जाता है, तो आपको आसन्न संदेशों का चमकता बॉक्स मिलेगा! संदेश देखें और आप अपने आप को एक व्यवस्थापक (एनटी प्राधिकरण \ प्रणाली) कमांड प्रॉम्प्ट देंगे जो एक असफल सेवा प्रारंभ से नष्ट नहीं होगा (इसलिए स्टार्ट कमांड के साथ बैच फ़ाइल की आवश्यकता)

यह काम करता है, हालांकि कभी-कभी यह पहली कोशिश में काम नहीं करता है।

मेरा मानना ​​है कि यह आपको इंटरेक्टिव सेशन 0 तक ही पहुँचाता है, जो केवल nt Authority \ system उपयोगकर्ता के लिए मौजूद है


-2

आप 'रन' संवाद शुरू करने के लिए शॉर्टकट स्टार्ट (विंडोज) + आर का उपयोग कर सकते हैं। वहां से, बस 'cmd' (कोई उद्धरण नहीं) और वॉइला टाइप करें। cmd


3
सुपरयूज़र में आपका स्वागत है। आपकी पोस्ट ओपी प्रश्न का उत्तर नहीं देती है । शुरू CMDसामान्य रूप से करता है नहीं में एक डाल Session 0
मैं कहता हूं कि मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.