मैं एक सामान्य cmd पर कमांड लाइनों का उपयोग करके एक उन्नत कमांड प्रॉम्प्ट कैसे खोल सकता हूं?
उदाहरण के लिए, मैं उपयोग करता हूं runas /username:admin cmd
लेकिन जो cmd खोला गया था वह ऊंचा नहीं लगता है! कोई उपाय?
मैं एक सामान्य cmd पर कमांड लाइनों का उपयोग करके एक उन्नत कमांड प्रॉम्प्ट कैसे खोल सकता हूं?
उदाहरण के लिए, मैं उपयोग करता हूं runas /username:admin cmd
लेकिन जो cmd खोला गया था वह ऊंचा नहीं लगता है! कोई उपाय?
जवाबों:
मैं उसी समस्या में भाग गया और जिस तरह से मैं CMD से प्रशासक के रूप में CMD खोलने में सक्षम था, वह निम्नलिखित कर रहा था:
powershell -Command "Start-Process cmd -Verb RunAs"
और दबाओEnterप्रलेखन के अनुसार , विंडोज सुरक्षा मॉडल ...
हर समय प्रशासनिक विशेषाधिकार प्रदान नहीं करता है। यहां तक कि प्रशासक मानक विशेषाधिकारों के तहत चलते हैं जब वे गैर-प्रशासनिक कार्य करते हैं जिन्हें उन्नत विशेषाधिकारों की आवश्यकता नहीं होती है।
आपके पास Create the task task डायलॉग ( कार्य प्रबंधक> फ़ाइल> नया कार्य चलाएँ ) में व्यवस्थापकीय विशेषाधिकारों के विकल्प के साथ यह कार्य बनाएं , लेकिन कमांड लाइन का उपयोग करके विशेषाधिकारों को प्रभावी ढंग से बढ़ाने के लिए कोई अंतर्निहित तरीका नहीं है।
हालाँकि, कुछ तृतीय पक्ष उपकरण हैं (आंतरिक रूप से विंडोज एपीआई पर निर्भर) आप कमांड लाइन से विशेषाधिकार बढ़ाने के लिए उपयोग कर सकते हैं:
nircmdc elevate cmd
nircmdc elevate route delete 0.0.0.0 mask 0..0.0 192.168.1.1
आखिरकार काम किया। runas /user:...
पहले से ही एक व्यवस्थापक (मारे गए बैच मोड) होने के बावजूद पासवर्ड के लिए संकेत दिए गए अन्य तरीके।
nircmdc elevate cmd
nircmd
, यह Linux की तरह काम करने के लिए sudo
, sudo.bat
इस सामग्री के साथ अपने पथ में एक फ़ाइल बनाएँ nircmd elevate %*
:। फिर आप कर सकते हैं, उदाहरण के लिए,sudo net stop W3SVC
windosu
:)
मेरे पास शीर्ष उत्तर के लिए एक टिप्पणी जोड़ने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन उपनाम की शक्ति के साथ आप केवल निम्नलिखित टाइपिंग से दूर हो सकते हैं:
powershell "start cmd -v runAs"
यह user3018703 उत्कृष्ट समाधान का सिर्फ एक छोटा संस्करण है:
powershell -Command "Start-Process cmd -Verb RunAs"
sudo.bat
(आप बदल सकते हैंsudo
निम्नलिखित सामग्री के साथ किसी भी नाम से हैं)
powershell.exe -Command "Start-Process cmd \"/k cd /d %cd%\" -Verb RunAs"
sudo.bat
अपने फ़ोल्डर में ले जाएंPATH
; अगर आपको नहीं पता कि इसका क्या मतलब है, तो बस इन फ़ाइलों को स्थानांतरित करेंc:\windows\
sudo
रन डायलॉग ( win+r) या एक्सप्लोरर एड्रेस बार में काम करेंगे (यह सबसे अच्छा हिस्सा है :))sudo.bat
(आप बदल सकते हैंsudo
निम्नलिखित सामग्री के साथ किसी भी नाम से हैं)
nircmdc elevate cmd /k "cd /d %cd%"
nircmdc.exe
और sudo.bat
अपने में एक फ़ोल्डर के लिएPATH
; अगर आपको नहीं पता कि इसका क्या मतलब है, तो बस इन फ़ाइलों को स्थानांतरित करेंc:\windows\
sudo
रन डायलॉग ( win+r) या एक्सप्लोरर एड्रेस बार में काम करेंगे (यह सबसे अच्छा हिस्सा है :))मैं हर समय nirsoft प्रोग्राम (जैसे nircmdc) और sysinternals (जैसे psexec) का उपयोग करता हूं। वे बहुत मददगार हैं।
लेकिन अगर आप 3rd पार्टी प्रोग्राम को नहीं चाहते, या नहीं कर सकते, तो यहां एक और तरीका है, शुद्ध विंडोज।
संक्षिप्त जवाब : जब आप ऊंचा कर सकते हैं तो ऊंचे विशेषाधिकारों के साथ एक निर्धारित कार्य बना सकते हैं जिसे आप बाद में ऊंचा नहीं करते हुए आह्वान कर सकते हैं।
मध्य-लंबाई का उत्तर : जब ऊंचा निर्माण कार्य के साथ (लेकिन मुझे कार्य शेड्यूलर GUI पसंद है):
schtasks /create /sc once /tn cmd_elev /tr cmd /rl highest /st 00:00
फिर बाद में, कोई भी ऊंचाई की आवश्यकता नहीं थी, के साथ आह्वान करें
schtasks /run /tn cmd_elev
लंबे उत्तर : बहुत सारे काल्पनिक विवरण हैं; मेरा ब्लॉग प्रविष्टि देखें "यूएसी के बिना कार्यक्रम शुरू करें, सिस्टम प्रारंभ में उपयोगी और बैच फ़ाइलों में (कार्य अनुसूचक का उपयोग करें)"
ऐसा करने का मेरा पसंदीदा तरीका SysInternals से PsExec.exe का उपयोग कर रहा है, जो http://technet.microsoft.com/en-us/sysinternals/bb897553 पर उपलब्ध है
.\psexec.exe -accepteula -h -u "$username" -p "$password" cmd.exe
"-एच" स्विच वह है जो जादू कर रहा है:
-h यदि टारगेट सिस्टम विस्टा या उच्चतर है, तो खाते के एलिवेटेड टोकन के साथ प्रक्रिया उपलब्ध है, यदि उपलब्ध हो।
/savecred
स्विच का उपयोग करके बैच फ़ाइल को वास्तविक व्यवस्थापक खाते के क्रेडेंशियल्स को सहेजें । यह पहली बार क्रेडेंशियल्स के लिए संकेत देगा और फिर एन्क्रिप्टेड पासवर्ड को क्रेडेंशियल मैनेजर में स्टोर करेगा। फिर सभी बाद के समय के लिए बैच चलता है यह पूर्ण व्यवस्थापक के रूप में चलेगा लेकिन क्रेडेंशियल के लिए संकेत नहीं देगा क्योंकि वे क्रेडेंशियल प्रबंधक में एन्क्रिप्टेड संग्रहीत हैं और अंतिम उपयोगकर्ता पासवर्ड प्राप्त करने में असमर्थ है। निम्नलिखित पूर्ण प्रशासक विशेषाधिकारों के साथ एक उन्नत CMD खोलना चाहिए और पहली बार केवल पासवर्ड के लिए संकेत देगा:
START c:\Windows\System32\runas.exe /user:Administrator /savecred cmd.exe
जबकि धीरज भास्कर द्वारा दिए गए दोनों समाधान काम करते हैं, दुर्भाग्यवश वे UAC संवाद में शीर्ष (z- आदेश-वार) पर दिखाई देंगे, लेकिन ध्यान केंद्रित नहीं हो रहा है (केंद्रित विंडो कॉलर cmd / पावरशेल विंडो है), इस प्रकार या तो इसकी आवश्यकता है माउस को पकड़ो और "हाँ" पर क्लिक करें, या Alt + Shift + Tab का उपयोग करके UAC विंडो का चयन करें। (Win10x64 v1607 build14393.447 पर परीक्षण किया गया; UAC = "[...] मंद मत करो [...]" ।)
निम्न समाधान थोड़ा अजीब है क्योंकि यह दो फ़ाइलों का उपयोग करता है, लेकिन यह सही फ़ोकस ऑर्डर को संरक्षित करता है, इसलिए कोई अतिरिक्त माउस / कीबोर्ड क्रियाएं आवश्यक नहीं हैं (इसके अलावा UAC संवाद की पुष्टि करने के लिए: Alt + Y )।
%SystemRoot%\System32\cmd.exe /k "cd /d"
@start cmdadm.lnk %cd%
साथ चलाना su
।
मैं Elevate
अब थोड़ी देर के लिए उपयोग कर रहा हूँ ।
यह वर्णन है - This utility executes a command with UAC privilege elevation. This is useful for working inside command prompts or with batch files.
मैं नकल bin.x86-64\elevate.exe
से .zip
में C:\Program Files\elevate
और मेरे लिए उस मार्ग को जोड़ने PATH
।
फिर GitBash I सेवा को elevate sc stop W3SVC
बंद करने जैसा कुछ चला IIS
सकता है।
कमांड चलाने से मुझे UAC
डायलॉग मिलता है, कीबोर्ड कंट्रोल के साथ ठीक से फोकस किया गया है और डायलॉग स्वीकार करने के बाद मैं अपने शेल पर लौटता हूं।
..
@ECHO OFF
SETLOCAL EnableDelayedExpansion EnableExtensions
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO :EOF
:ELEVATE
SET this="%CD%"
SET this=!this:\=\\!
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('CMD', '/K CD /D \"!this!\"', '', 'runas', 1);close();"
EXIT 1
इस स्क्रिप्ट को अपने system32 में "God.cmd" के रूप में सहेजें या जो भी आपका मार्ग निर्देशन कर रहा है ...।
यदि आप ई: \ mypictures \ में एक cmd खोलते हैं और भगवान टाइप करते हैं, तो यह आपको क्रेडेंशियल्स के लिए पूछेगा और आपको व्यवस्थापक के रूप में उसी स्थान पर वापस भेज देगा ...
ऊपर दिए गए कुछ अन्य समाधानों के समान, मैंने एक बनाया elevate
बैच फ़ाइल जो एक उन्नत पावरस्ले विंडो चलाता है, निष्पादन नीति को सरल कमांड से बैच फ़ाइलों को जटिल पॉवरशेल स्क्रिप्ट तक सब कुछ चलाने में सक्षम करता है। मैं इसे आपके C: \ Windows \ System32 फ़ोल्डर में उपयोग में आसानी के लिए चिपकाने की सलाह देता हूं।
मूल elevate
कमांड अपने कार्य को निष्पादित करता है, आउटपुट को कैप्चर करता है, स्पॉन्ड पॉवरशेल विंडो को बंद करता है और फिर रिटर्न करता है, कैप्चर किए गए आउटपुट को मूल विंडो पर लिखता है।
मैंने दो वेरिएंट बनाए, elevatep
औरelevatex
, जो क्रमशः काम के लिए पॉवरशेल विंडो को विराम देते हैं और खुले रहते हैं।
https://github.com/jt-github/elevate
और अगर मेरा लिंक कभी भी मर जाता है, तो यहां मूल एलिवेट बैच फ़ाइल के लिए कोड है:
@Echo Off
REM Executes a command in an elevated PowerShell window and captures/displays output
REM Note that any file paths must be fully qualified!
REM Example: elevate myAdminCommand -myArg1 -myArg2 someValue
if "%1"=="" (
REM If no command is passed, simply open an elevated PowerShell window.
PowerShell -Command "& {Start-Process PowerShell.exe -Wait -Verb RunAs}"
) ELSE (
REM Copy command+arguments (passed as a parameter) into a ps1 file
REM Start PowerShell with Elevated access (prompting UAC confirmation)
REM and run the ps1 file
REM then close elevated window when finished
REM Output captured results
IF EXIST %temp%\trans.txt del %temp%\trans.txt
Echo %* ^> %temp%\trans.txt *^>^&1 > %temp%\tmp.ps1
Echo $error[0] ^| Add-Content %temp%\trans.txt -Encoding Default >> %temp%\tmp.ps1
PowerShell -Command "& {Start-Process PowerShell.exe -Wait -ArgumentList '-ExecutionPolicy Bypass -File ""%temp%\tmp.ps1""' -Verb RunAs}"
Type %temp%\trans.txt
)
एक उन्नत शॉर्टकट के साथ उपयोग करने के लिए एक अस्थायी वातावरण चर का उपयोग कर सकते हैं (
start.cmd
setx valueName_betterSpecificForEachCase %~dp0
"%~dp0ascladm.lnk"
ascladm.lnk (शॉर्टकट)
_ properties\advanced\"run as administrator"=yes
(पथ परिवर्तन करने के लिए आपको अस्थायी रूप से निर्माण करने की आवश्यकता होगी env.Variable
)
_ properties\target="%valueName_betterSpecificForEachCase%\ascladm.cmd"
_ properties\"start in"="%valueName_betterSpecificForEachCase%"
ascladm.cmd
setx valueName_betterSpecificForEachCase=
reg delete HKEY_CURRENT_USER\Environment /F /V valueName_betterSpecificForEachCase
"%~dp0fileName_targetedCmd.cmd"
)
हालांकि यह 3 फाइलें हैं, आप सब कुछ (सबटाइटल सहित) कुछ सबफ़ोल्डर में रख सकते हैं (फ़ोल्डर को पैच में जोड़ना न भूलें) और लक्षित नाम के लिए "start.cmd" का नाम बदलें
मेरे लिए यह ऐसा करने का सबसे मूल तरीका है, जबकि cmd के पास आवश्यक कमांड नहीं है
मुझे यकीन नहीं है कि टूल ExecElevated.exe ( 13KB ) काम करेगा .... लेकिन यह हो सकता है। या कम से कम समान जरूरतों वाले अन्य लोगों के लिए उपयोगी हो, जो इस पृष्ठ पर आए थे जैसा कि मैंने किया था (लेकिन मुझे समाधान नहीं मिला था इसलिए मैंने अपने आप को .Net में उपकरण बनाना समाप्त कर दिया)।
यह एलिवेटेड टोकन (एडमिन मोड में) के साथ एक एप्लिकेशन निष्पादित करेगा। लेकिन आपको पुष्टि करने के लिए एक UAC संवाद मिलेगा! (शायद नहीं अगर UAC अक्षम कर दिया गया है, इसका परीक्षण नहीं किया है)।
और टूल को कॉल करने वाले खाते में भी व्यवस्थापक होना चाहिए। बेशक अधिकार।
उपयोग का उदाहरण:
ExecuteElevated.exe "C:\Utility\regjump.exe HKCU\Software\Classes\.pdf"
पावेरशेल के साथ धीरज भास्कर की विधि में एक लापता जगह है, जो कि कम से कम पॉवरशेल के विंडोज 10 अवतार के लिए है।
उसके sudo.bat के अंदर कमांड लाइन होनी चाहिए
powershell.exe -Command "Start-Process cmd \"/k cd /d %cd% \" -Verb RunAs"
% Cd% के बाद अतिरिक्त स्थान पर ध्यान दें
;) Frode
यहां एक्सप्लोरर के साथ एकीकृत करने का एक तरीका है। जब आप Windows Explorer में किसी भी फ़ोल्डर में राइट-क्लिक करते हैं तो यह एक अतिरिक्त मेनू आइटम पॉपअप करेगा:
यहाँ कदम हैं:
* किसी भी ड्राइव में काम करने की अनुमति देने के लिए सीडी के बजाय पुशड का उपयोग करें। :-)
मैंने इसे आसानी से cmd में निम्न कमांड का उपयोग करके किया
runas / netonly / उपयोगकर्ता: प्रशासक \ प्रशासक cmd
इस कमांड को टाइप करने के बाद, आपको अपना एडमिनिस्ट्रेटर पासवर्ड डालना होगा (यदि आप नहीं जानते हैं कि आपका एडमिनिस्ट्रेटर पासवर्ड इसे खाली छोड़ दें और एंटर या कुछ टाइप करें , मेरे लिए काम करें) को दबाएं ।
एलिवेटेड cmd खोलने के कई तरीके हैं, लेकिन केवल आपका तरीका मानक कमांड प्रॉम्प्ट से काम करता है। तुम बस user
नहीं डाल करने की आवश्यकता है username
:
runas /user:machinename\adminuser cmd
Microsoft समुदाय से प्रासंगिक सहायता देखें ।
मैंने उपयोग किया runas /user:domainuser@domain cmd
जिसने सफलतापूर्वक एक उन्नत प्रांतीय खोला।