BAT फ़ाइल को हमेशा व्यवस्थापक मोड के रूप में चलाने के लिए कोड कैसे करें?


149

मेरी BAT फ़ाइल के अंदर यह पंक्ति है:

"Example1Server.exe"

मैं प्रशासक मोड में इस पर अमल करना चाहूंगा। इसे व्यवस्थापक के रूप में चलाने के लिए बैट कोड को कैसे संशोधित किया जाए?

क्या ये सही है? क्या मुझे उद्धरण देने की आवश्यकता है?

runas /user:Administrator invis.vbs Example1Server.exe


जवाबों:


71

आप runasएक विशिष्ट उपयोगकर्ता के रूप में एक कार्यक्रम शुरू करने के लिए उपयोग करते हैं:

runas /user:Administrator Example1Server.exe

6
@Kikari: इस तरह के एक नाम ( Example1Server.exe) को उद्धरण में रखने की आवश्यकता नहीं है, लेकिन कुछ अन्य मामलों में (जैसे नाम में रिक्त स्थान :) Example1 Server.exeआपको वास्तव में उनकी आवश्यकता होगी। आप उद्धरण का उपयोग कर सकते हैं, भले ही वे आवश्यक न हों, हालांकि।
एंड्री एम

18
व्यवस्थापक खाते का नाम प्रशासक नहीं हो सकता है
एंडर्स

9
@ और: नहीं, यह नहीं हो सकता है; मैं मान रहा हूं कि ओपी "पैटर्न को हाजिर कर सकता है"। यह एक plz-me-teh-codez जवाब नहीं था: -S वैसे, मुझे ओपी को जोड़ना चाहिए जैसे कुछ और विस्तृत आदेश runas /User:abc "csript myscript.vbs", या हो सकता है runas /User:abc "cmd /c start ..."
केरेक एस.बी. जूल

16
मुझे डर है कि यह उत्तर 90% आगंतुक नहीं चाहते हैं, क्योंकि यह सही क्लिक करने से भी कठिन है-> व्यवस्थापक के रूप में चलता है, भले ही यह तकनीकी रूप से सही हो। दूसरे उत्तर की फिर से जाँच करें। यह वही है जो सबसे अधिक चाहेगा।
j riv

13
नहीं, यह उत्तर तकनीकी रूप से गलत है। व्यवस्थापक के रूप में रनिंग एक उपयोगकर्ता के तहत चलने के समान नहीं है जिसका नाम प्रशासक होता है, और विशेषाधिकार भिन्न होते हैं। अन्य उत्तर देखें।
अलेक्जेंडर गेल्बुख

370

अन्य उत्तर के लिए आवश्यक है कि आप व्यवस्थापक खाता पासवर्ड दर्ज करें। इसके अलावा, प्रशासक समूह में एक खाते के तहत दौड़ना वैसा ही नहीं है जैसा कि प्रशासक देखता है: UAC on Wikipedia

विंडोज 7 निर्देश

एक व्यवस्थापक के रूप में चलाने के लिए, बैच फ़ाइल के लिए एक शॉर्टकट बनाएं।

  1. बैच फ़ाइल पर राइट क्लिक करें और कॉपी पर क्लिक करें
  2. वह शॉर्टकट जहां आप चाहते हैं, वहां नेविगेट करें
  3. निर्देशिका की पृष्ठभूमि पर राइट क्लिक करें
  4. पेस्ट शॉर्टकट का चयन करें

फिर आप व्यवस्थापक के रूप में चलाने के लिए शॉर्टकट सेट कर सकते हैं:

  1. शॉर्टकट पर राइट क्लिक करें
  2. गुण चुनें
  3. शॉर्टकट टैब में, उन्नत पर क्लिक करें
  4. चेकबॉक्स चुनें "व्यवस्थापक के रूप में चलाएं"
  5. ठीक पर क्लिक करें, ठीक है

अब जब आप शॉर्टकट पर डबल क्लिक करते हैं तो यह आपको UAC पुष्टिकरण के लिए संकेत देगा और फिर व्यवस्थापक के रूप में चलाएं (जैसा कि मैंने ऊपर कहा था कि व्यवस्थापक समूह में एक खाते के तहत चलने से अलग है)

नीचे दिए गए स्क्रीनशॉट की जाँच करें

स्क्रीनशॉट

नोट: जब आप Run As Administrator को करते हैं, तो वर्तमान डायरेक्टरी (पाथ) बैट फाइल की तरह नहीं होगी। यह कई मामलों में कुछ समस्याएं पैदा कर सकता है जो कि बैट फाइल के बगल में संबंधित फाइलों को संदर्भित करता है। उदाहरण के लिए, मेरे विंडोज 7 में cur dir बैट फाइल लोकेशन के बजाय SYSTEM32 होगा! इसे हल करने के लिए , आपको उपयोग करना चाहिए

cd "%~dp0"

या और अच्छा

pushd "%~dp0"

यह सुनिश्चित करने के लिए कि कर्ट डीआर उसी रास्ते पर है जहां बैट फाइल है।


8
आह, यह वास्तव में छिपा हुआ था (हम में से अधिकांश ने यह नहीं सोचा था कि उस उन्नत बटन में वह विकल्प था)। मुझे लगभग यकीन है कि जिसने भी दूसरे जटिल उत्तर के बारे में सोचा था वह नहीं जानता था। यह उत्तर 90% + आगंतुक चाहते हैं।
j riv

1
मैं सहमत हूँ। इसका उत्तर होना चाहिए। मैंने एडवांस बटन ढूंढने को आसान बनाने के लिए एक स्क्रीनशॉट भी जोड़ा
फ़ेडमिच

1
यह विंडोज़ सर्वर 2012 आर 2 पर भी लागू होता है।
गारेक

3
यह मेरे लिए विंडोज 10 या विंडोज 7 पर काम नहीं करता है। जब मैं प्रशासक के रूप में दौड़ने की कोशिश करता हूं, तो BAT फाइल को राइट क्लिक करके "एडमिनिस्ट्रेटर के रूप में रन करें", या यहां वर्णित तकनीक का उपयोग करके बैच फाइल एक सेकंड के लिए खुल जाती है। इसके बाद बैच फ़ाइल के निष्पादन में कोई कमांड या प्रोग्राम नहीं है। मैंने बहुत ही सरल बैच फ़ाइलों को चलाने की कोशिश की है जो सिर्फ एक "हैलो वर्ल्ड" को प्रतिध्वनित करते हैं और वे भी इस तरीके से विफल हो जाते हैं। यह बहुत निराशाजनक है। मेरे पास, अभी तक, एक समाधान खोजने में सक्षम नहीं है।
जोनाथन एल्किंस

1
@JonathanElkins आपने बैच फ़ाइल के अंत में एक ठहराव जोड़ने की कोशिश की?
एड ग्रीव्स

32

बस इसे अपनी बल्लेबाजी फ़ाइल के शीर्ष पर जोड़ें:

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

यह व्यवस्थापक को उन्नत करेगा और सही निर्देशिका में भी रहेगा। विंडोज 10 पर परीक्षण किया गया।


1
विंडोज 7 में परीक्षण किया और महान काम करता है। लेकिन क्या आप बता सकते हैं कि यह क्या करता है? मैं बैट फाइलों से परिचित नहीं हूं।
सनफ्लोरो

1
यह कोड के साथ एक VBScript फ़ाइल बनाता है जो आपको व्यवस्थापक करने के लिए उन्नत करता है (यदि आप पहले से ही नहीं हैं), और इस बार उस व्यवस्थापक के रूप में फिर से बैट फ़ाइल चलाता है।
Sire

1
मैं वास्तव में क्या खोज रहा हूँ! कोई अतिरिक्त परिवर्तन या अतिरिक्त फ़ाइल की आवश्यकता नहीं है!
MSS

1
getadmin.vbs क्या है?
किनिकेत

4
मेरी मौजूदा बैच फ़ाइल में अपनी दो पंक्तियों को जोड़ना मेरे लिए एक अच्छा समाधान है। मुझे exitअपनी बैच फ़ाइल के अंत में भी जोड़ना था या मुझे प्रॉम्प्ट पर छोड़ दिया जाएगा। यह शायद इसलिए है क्योंकि .vbs ने दूसरा कमांड प्रॉम्प्ट लॉन्च किया है।
बेन

10

यदि आप किसी तीसरे पक्ष की उपयोगिता का उपयोग कर सकते हैं, तो यहां एक elevateकमांड लाइन उपयोगिता है

यह उपयोग विवरण है:

Usage: Elevate [-?|-wait|-k] prog [args]
-?    - Shows this help
-wait - Waits until prog terminates
-k    - Starts the the %COMSPEC% environment variable value and
                executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog  - The program to execute
args  - Optional command line arguments to prog

elevate.exeचट्टानों!
सांगबोक ली

8

आप उपयोग कर सकते हैं nircmd.exe 's तरक्की आदेश

NirCmd कमांड संदर्भ - ऊंचाई

elevate [Program] {Command-Line Parameters}

Windows Vista / 7/2008 के लिए केवल: व्यवस्थापक अधिकारों के साथ एक कार्यक्रम चलाएँ। जब [प्रोग्राम] में एक या एक से अधिक स्थान वर्ण होते हैं, तो आपको इसे उद्धरणों में रखना होगा।

उदाहरण:

elevate notepad.exe 
elevate notepad.exe C:\Windows\System32\Drivers\etc\HOSTS 
elevate "c:\program files\my software\abc.exe"

पुनश्च: मैं इसे 10 जीत पर उपयोग करता हूं और यह काम करता है


6

इस टूल से अपनी बैच फ़ाइल को .exe में परिवर्तित करें: http://www.battoexeconverter.com/ फिर आप इसे व्यवस्थापक के रूप में चला सकते हैं


2
इस बात को ध्यान में रखें कि इस तरह से बनाई गई exe फाइलों पर बहुत सारे एंटी वायरस सुपर सेंसिटिव होते हैं। इस तरह से बैच फ़ाइलों को "परिवर्तित / एन्क्रिप्ट करना" दुर्भावनापूर्ण कार्यक्रमों द्वारा उपयोग किया जाने वाला एक पुराना तरीका है।
हैमी

यदि आप Symantec - Threat प्रकार: othermalware Threat Reason का उपयोग करके इस डोमेन का विश्लेषण करते हैं: डोमेन ने मालवेयर परोसने के रूप में रिपोर्ट और सत्यापित किया है। दुर्भावनापूर्ण डोमेन या URL के रूप में पहचाना जाता है।
सुनील

बुरा सुझाव!
व्लाद


6

मुझे लगता है कि मेरे पास पासवर्ड की समस्या का हल है। यह एकल तर्क वास्तव में आश्चर्यजनक है। यह पासवर्ड के लिए एक बार पूछता है, और फिर से इसके लिए कभी नहीं पूछता है। यहां तक ​​कि अगर आप इसे किसी अन्य प्रोग्राम पर डालते हैं, तो भी यह पासवर्ड नहीं मांगेगा। यह रहा:

runas /user:Administrator /savecred Example1Server.exe


4
  1. मेरे प्रयोग से संकेत मिलता है कि रनस कमांड में व्यवस्थापक उपयोगकर्ता का डोमेन (मेरे संगठन के पर्यावरण सेटअप में कम से कम यह करता है) शामिल होना चाहिए:

    runas /user:AdminDomain\AdminUserName ExampleScript.bat
    

    यदि आप पहले से ही व्यवस्थापक उपयोगकर्ता के डोमेन को नहीं जानते हैं, तो कमांड प्रॉम्प्ट का एक उदाहरण व्यवस्थापक उपयोगकर्ता के रूप में चलाएं, और निम्न कमांड दर्ज करें:

    echo %userdomain%
    
  2. केरेक एसबी और एड ग्रीव्स द्वारा दिए गए उत्तर , व्यवस्थापक उपयोगकर्ता के तहत लक्ष्य फ़ाइल को निष्पादित करेंगे, लेकिन यदि फ़ाइल एक कमांड स्क्रिप्ट (-bat फ़ाइल) या VB स्क्रिप्ट (.vbs फ़ाइल) है जो सामान्य-लॉगिन पर संचालित करने का प्रयास करती है। उपयोगकर्ता का वातावरण (जैसे रजिस्ट्री प्रविष्टियों को बदलना), आपको वांछित परिणाम नहीं मिल सकते हैं क्योंकि जिस वातावरण में स्क्रिप्ट वास्तव में चलती है वह व्यवस्थापक उपयोगकर्ता की होगी, न कि सामान्य-लॉगिन उपयोगकर्ता की! उदाहरण के लिए, यदि फ़ाइल एक स्क्रिप्ट है जो रजिस्ट्री के HKEY_CURRENT_USER हाइव पर संचालित होती है, तो प्रभावित "वर्तमान-उपयोगकर्ता" व्यवस्थापक उपयोगकर्ता होगा, न कि सामान्य-लॉगिन उपयोगकर्ता।


0

शॉर्टकट गुणों में अपनी लक्ष्य बैच फ़ाइल के लिए पूर्ण भौतिक ड्राइव \ पथ का उपयोग करें।

यह विंडोज 10 में काम नहीं करता है यदि आप विकल्प ड्राइव का उपयोग करते हैं जैसे मैंने पहले करने की कोशिश की ...

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