कमांड लाइन के साथ रनस अजीब कार्यक्षमता


0

मेरे पास एक .batफाइल है जिसका उपयोग मैं कुछ प्रोग्राम लॉन्च करने के लिए करता हूं। उनमें से कुछ को विशेषाधिकारों की आवश्यकता होती है (ia devcon-based does-device-मौजूद चेक), लेकिन कुछ नहीं करते हैं। इसलिए, मैं .batप्रशासक के रूप में चलाता हूं , और runasदूसरों को चलाने के लिए कमांड का उपयोग करता हूं ।

runas /trustlevel:0x20000 "C:\Folder\foo.exe"
runas /trustlevel:0x20000 "C:\Folder\bar.exe"

यह कुछ कार्यक्रमों के लिए काम करता है। हालाँकि, कुछ के लिए यह त्रुटि संदेश दिखाता है (फिनिश से स्वयं द्वारा अनुवादित, अंग्रेजी में थोड़ा भिन्न हो सकता है):

ERROR: Can not execute - bar.exe
740: The requested operation requires elevation.

अजीब हिस्सा है, अगर मैं इसे बनाता हूं .bat:

@echo off
start "" "bar.exe"

और इसे चलाने के साथ runas, यह एक आकर्षण की तरह काम करता है। उनका संयोजन

runas /trustlevel:0x20000 "start \"\" \"C:\Folder\bar.exe\""

काम नहीं करेगा, क्योंकि startफाइल नहीं है। इसका क्या कारण होगा?

अपडेट: मैंने एक और कमांड की कोशिश की, और यह काम कर गया।

runas /trustlevel:0x20000 "cmd /c start \"\" \"C:\Folder\bar.exe\""

लेकिन , जो मैं जानना चाहता हूं वह यह नहीं है कि इसे कैसे काम किया जाए बल्कि ऐसा क्यों होता है

अद्यतन 2: जैसा कि and31415 द्वारा टिप्पणियों में सुझाव दिया गया है कि यह foo.exeऔर के बीच का अंतर है bar.exe। लेकिन, उन्हें चलाने के तरीकों में अंतर होना चाहिए, क्योंकि उनके परिणाम अलग-अलग हैं; यही अंतर मैं देख रहा हूं।

अपडेट 3: मैंने रिसोर्स एडिटर का उपयोग करते हुए कार्यक्रमों के मेनिफेस्टों की जाँच की , और यहाँ वे हैं। ऐसा लगता है कि उनके पास एक ही निष्पादन स्तर है ( asInvokerजो कि सबसे कम उपयोगकर्ता स्तर है)।

प्रकट होता है

ऊपरी एक है bar.exeऔर निचला एक है foo.exe। (मुझे पता है, चारों ओर गलत तरीका: डी)

अद्यतन 4:psexec उन्नत कमांड प्रॉम्प्ट से भी होने की पुष्टि :

psexec -l -i bar.exe

एक त्रुटि मिलती है,

psexec -l -i cmd /C start "" "bar.exe"

काम करता है।


यदि आप बैच फ़ाइल चलाते हैं तो क्या होगा runas?
31415

@ @31415 यही मैंने किया है। प्रश्न पढ़ें।
पुरकाकूदरी

यह केवल कुछ कार्यक्रमों के साथ होने के कारण, मुझे लगता है कि ऐसा क्यों होता है इसका कारण यह है कि यह स्वयं आवेदन के लिए वरदान है।
and31415

@ @31415 अब, जबकि यह बिल्कुल सच है, क्या आपके पास इस बारे में कोई विचार है कि इसके कारण होने वाले अनुप्रयोगों को कॉल करने के तरीकों में क्या अंतर होगा?
पुरकाकूदरी

यह एक शुद्ध अटकलें है, लेकिन आप एक के माध्यम से जांच करना चाह सकते संसाधन संपादक उन कार्यक्रमों में से किसी एक में शामिल है कि क्या प्रकट , और देखते हैं कि requestedExecutionLevelटैग मान पर सेट है। इसके अतिरिक्त आप परीक्षण कर सकते हैं कि क्या आप प्रोग्राम द्वारा सीमित उपयोगकर्ता के रूप में इस मुद्दे को पुन: उत्पन्न कर सकते हैं psexec
31415
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.