ठीक है, कारण यह काम नहीं करता है विंडोज विस्टा और नए में सुरक्षा मॉडल है। व्यवस्थापक समूह में एक खाता अभी भी सब कुछ चलाता है जो स्पष्ट रूप से सीमित उपयोगकर्ता के रूप में ऊंचा नहीं हुआ है। अपवाद Administratorखाता है, जो सब कुछ ऊंचा चलाता है । इस कारण से, यह आमतौर पर आपके लॉगिन खाते के रूप में उपयोग करने के लिए बुरा माना जाता है, और सामान्य रूप से अक्षम है।
आप इसे सक्षम कर सकते हैं और फिर runasउस खाते के रूप में आमंत्रित कर सकते हैं। यह कुछ समस्याओं का परिचय देता है - अब आप एक अलग उपयोगकर्ता के वातावरण के साथ चल रहे हैं, जिसमें अलग-अलग पर्यावरण चर हो सकते हैं। 1
ऐसा करने का बेहतर तरीका वास्तव में UAC के माध्यम से आपके वर्तमान उपयोगकर्ता के रूप में ऊंचा होगा। दुर्भाग्य से, मानक कमांड प्रॉम्प्ट में वह क्षमता शामिल नहीं है - लेकिन दोनों थर्ड पार्टी प्रोग्राम और बिल्ट-इन पॉवरशेल और WSHell (VBScript) ऐसा कर सकते हैं।
मेरे अन्य उत्तर से उधार लेकर , आप सीधे PowerShell कमांड को लागू कर सकते हैं powershell -c:
powershell -c start -verb runas notepad C:\Windows\System32\drivers\etc\hosts
जो मूल रूप से निम्नलिखित को चलाने के लिए PowerShell को बताता है (इसके startलिए उपनाम है Start-Process):
Start-Process -Verb "runas" notepad C:\Windows\System32\drivers\etc\hosts
यहां ट्रिक runasUAC को ट्रिगर करते हुए क्रिया को पार कर रही है ।
न तो Start-Process -Verb runasऔर न ही मानक cmd runasवर्तमान कार्यशील निर्देशिका को पारित करेगा , इसलिए हमेशा इस शैली में आपके द्वारा उठाए गए किसी भी आदेश में पूर्ण पथ का उपयोग करें ।
यह भी ध्यान दें कि कुछ तर्क जैसे तर्क से -cटकरा सकते हैं Start-Process, इसलिए सबसे सुरक्षित तरीका है:
powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'"
1 नोट: यह केवल उपयोगकर्ता के पर्यावरण चर पर लागू होता है । पर्यावरण चर जिसे आपने मूल प्रक्रिया में सेट किया है, उसे UAC द्वारा पारित नहीं किया जाता है ! यह भी लागू होता है runas, और यह वहां भी बदतर है क्योंकि आपको सही उपयोगकर्ता के संस्करण भी नहीं मिलेंगे।