खिड़कियों में 'sudo' कमांड कैसे चलाएं


92

मैं विंडोज़ में निम्नलिखित कमांड कैसे चलाऊंगा:

$ sudo django-admin.py startproject NEW

?


विंडोज में टर्मिनल कमांड का उपयोग करने से बचना बेहतर है। इसके बजाय, एक आईडीई की मदद से ऐसा करने का प्रयास करें, जैसे कि ग्रहण + प्यदेव। यह चीजों को बहुत सरल बना देगा।
पुष्पक दगडे

7
@Pushpak Dagade: मैं आपकी टिप्पणी से सामान्य तौर पर नाराज था, लेकिन जब मैं इस प्रकार पर गया तो मुझे पता चला कि यह STACK OVERFLOW है। ये वे लोग हैं जो विंडोज़ में टर्मिनल का उपयोग करते हैं। =) मेरा मतलब है, PowerShell की संभावना अन्यथा मौजूद नहीं होगी।
ब्रेंट रिटेनहाउस

2
इसके अलावा, क्या होगा अगर वह किसी कार्य को स्वचालित करने के लिए स्क्रिप्ट बना रहा है? (हाँ, मुझे लगता है कि आप निजीकृत उपयोगकर्ता के रूप में चला सकते हैं।)
ब्रेंट रिटेनहाउस

मेरे wsudo की कोशिश करो , Windows के लिए एक सुडौल जैसा उपकरण जो एक चॉकलेट पैकेज के रूप में उपलब्ध है।
noseratio

जवाबों:


97

sudoविंडोज में कोई कमांड नहीं है । निकटतम समकक्ष "व्यवस्थापक के रूप में चलाया जाता है।"

आप इसे runasव्यवस्थापक ट्रस्ट-स्तर के साथ कमांड का उपयोग करके , या यूआई में प्रोग्राम को राइट-क्लिक करके और "व्यवस्थापक के रूप में रन" चुनकर कर सकते हैं


4
क्या आप जानते हैं कि रनर का व्यवहार संस्करण से संस्करण में भिन्न होता है? मैं Win7 उद्यम स्थापित किया है और सभी संयोजन जो मैंने
रनस के साथ आजमाए हैं,

4
विंडोज के लिए सूडो (सूडोविन) अधिकृत उपयोगकर्ताओं को अपने स्वयं के पासफ़्रेज़ का उपयोग करके उन्नत विशेषाधिकारों के साथ प्रक्रियाओं को लॉन्च करने की अनुमति देता है। रनस कमांड के विपरीत, विंडोज के लिए सूडो उपयोगकर्ता की प्रोफाइल और निर्मित वस्तुओं के स्वामित्व को संरक्षित करता है। आप इसे यहाँ प्राप्त कर सकते हैं: sourceforge.net/projects/sudowin
जो बिगलर

देखें gsudo( stackoverflow.com/a/58753166/97471 )। *nix sudoउपयोगकर्ता अनुभव के साथ खिड़कियों के लिए इसकी एक सुडौल : वर्तमान कंसोल के अंदर कमांड निष्पादित करने की अनुमति है, और क्रेडेंशियल कैश (केवल एक यूएसी पॉपअप)।
गेरार्डो ग्रिग्नोली

रनर्स प्रशासकों में उपयोगकर्ता खाते का उन्नयन है; सुदो दूसरी बात है। यह स्वीकृत उत्तर नहीं होना चाहिए।
मैसिमो

14

नोटपैड खोलें और इस कोड को पेस्ट करें:

@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on

फिर, फ़ाइल को इस रूप में सहेजें sudo.cmd। इस फ़ाइल की प्रतिलिपि बनाएँ और इसे उस स्थान पर चिपकाएँ C:\Windows\System32या जहाँ पर पथ जोड़ेंsudo.cmd आपके PATH पर्यावरण चर के लिए है।

जब आप कमांड प्रॉम्प्ट खोलते हैं, तो आप अब कुछ चला सकते हैं sudo start .

यदि आप चाहते हैं कि कमांड चलाते समय एडमिन प्रॉम्प्ट विंडो खुली रहे, तो कोड को नोटपैड में बदलें:

@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on

स्पष्टीकरण:

powershell -Command एक शक्तियां कमांड चलाता है।

Start-Process एक पॉवरशेल कमांड है जो एक प्रक्रिया शुरू करता है, इस मामले में, कमांड प्रॉम्प्ट।

-Verb RunAs व्यवस्थापक के रूप में कमांड चलाता है।

-Argument-List तर्कों के साथ कमांड चलाता है।

हमारे तर्क हैं '/c cd /d %CD% && %*'%*सभी तर्कों का मतलब है, इसलिए यदि आपने किया sudo foo bar, तो यह कमांड प्रॉम्प्ट में चलेगा foo barक्योंकि पैरामीटर फू और बार हैं, और %*रिटर्न foo barcd /d %CD%वर्तमान निर्देशिका में जाने के लिए एक कमांड है। यह सुनिश्चित करेगा कि जब आप एलिवेटेड विंडो खोलेंगे, तो डायरेक्टरी सामान्य विंडो की तरह ही होगी। &&अर्थ यह है कि यदि पहले आदेश सफल होता है, दूसरा आदेश चला।

/cआदेश के बाद विंडो बंद करने के लिए एक cmd पैरामीटर समाप्त हो गया है है, और/k खिड़की खुला रखने के लिए एक cmd पैरामीटर है।

वर्तमान निर्देशिका कोड में रहने के लिए एडम प्लोचर को श्रेय ।


इसके साथ एक समस्या यह है कि एक बार ऊंचा हो जाने के बाद, आप वर्तमान फ़ोल्डर में नहीं रह गए हैं, बल्कि इसमें हैं C:\Windows\System32
noseratio

2
@noseratio यह सच है, ऐसा प्रतीत होता है कि इसे बदलने से यह चाल powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
चलेगी

@AdamPlocher, जो काम कर सकता है लेकिन कमांड लाइन %*के उद्धरण होने पर समस्या हो सकती है । इसलिए मैंने बनाया wsudo, PowerShell-based।
noseratio

यह व्यवस्थापकों में उपयोगकर्ता खाते का उन्नयन है; सुदो दूसरी बात है।
मैसिमो

क्या आप पॉवरशेल लाइन के echoबहाने लाइनों को एक और तीन को छोड़ नहीं सकते हैं @?
nudl

9

सभी उत्तर बताते हैं कि कैसे एक नए में अपने आदेश को बढ़ाने के लिए कंसोल होस्ट ।

मुझे क्या हुआ था कि उन उपकरणों में से कोई भी व्यवहार नहीं करता है *nix sudo, जो वर्तमान कंसोल के अंदर कमांड को निष्पादित करने की अनुमति देता है ।

तो, मैंने लिखा है: gsudo

स्रोत कोड https://github.com/gerardog/gsudo

स्थापना

वाया स्कूप

  • यदि आपके पास पहले से नहीं है तो स्कूप स्थापित करें । फिर:
scoop install gsudo

या चॉकलेटी के माध्यम से

choco install gsudo

मैनुअल इज़ाफ़ा:

डेमो

gsudo डेमो


8

मैंने मौजूदा निर्देशिका के संदर्भ में , प्रोग्राम को चलाने या उन्नत अधिकार के साथ विंडोज के लिए wsudoएक ओपन-सोर्स- sudoजैसे सीएलआई टूल बनाया है । यह एक चॉकलेट पैकेज के रूप में उपलब्ध है ।

मैं इसका उपयोग बिल्ड एजेंट्स को कॉन्फ़िगर करने, मेरे बारे में चीजों को प्रशासित करने sfc /scannow, dism /online /cleanup-image /restorehealthया बस अपने स्थानीय चॉकलेट पैकेज को स्थापित / अपडेट करने के लिए करता हूं। अपने जोखिम पार इस्तेमाल करें।

स्थापना

choco install wsudo

चॉकलेट को पहले से ही स्थापित किया जाना चाहिए।

उद्देश्य

wsudosudoएक गैर-व्यवस्थापक शेल कमांड प्रॉम्प्ट से और अपने वर्तमान निर्देशिका को रखने के लिए उन्नत प्रोग्राम के साथ एक प्रोग्राम को लागू करने के लिए विंडोज के लिए लिनक्स जैसा उपकरण है।

यह कार्यान्वयन विरासत Windows स्क्रिप्ट होस्ट ( CScript) पर निर्भर नहीं करता है । इसके बजाय, यह एक हेल्पर PowerShell 5.1 स्क्रिप्ट का उपयोग करता है जो आक्रमण करता है"Start-Process -Wait -Verb runAs ..." cmdlet को । आपके सिस्टम में संभवतः पहले से ही PowerShell 5.x स्थापित है, अन्यथा आपको इसे एक निर्भरता के रूप में स्थापित करने की पेशकश की जाएगी।

प्रयोग

wsudoवर्तमान निर्देशिका में उन्नत अधिकारों के साथ एक कार्यक्रम या इनलाइन कमांड चलाता है। उदाहरण:

wsudo .\myAdminScript.bat 
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts 

अधिक जानकारी के लिए, GitHub repro पर जाएं


2
"Wsudo" प्रकाशित करने के लिए धन्यवाद, यह मेरे लिए काफी उपयोगी है। मुझे लगता है कि आपके wsudo का लाभ वर्किंग डायरेक्टरी को विकल्प की तरह नहीं रख रहा है । मुझे पता नहीं है कि कोई WWD के अलावा CWD रख सकता है। मुझे लगता है कि आपको विवरण में इस बिंदु पर जोर देना चाहिए। मुझे वास्तव में आपका काम पसंद है।
बेनोक

3
एक और बात आपको बता दूं। क्या आपको पता है कि खोल खोल के एड्रेस बार को सीधे खोल दिया जाता है? मैं आमतौर पर इस हैक का उपयोग करता हूं, लेकिन जब मैं इस हैक के साथ उन्नत शेल प्राप्त करना चाहता हूं तो मुझे बहुत निराशा हुई। मैंने कई विकल्प खोजने की कोशिश की, लेकिन काम नहीं किया। मैं अंत में "शेल्ड [शेल]" के साथ एक खोल सकता हूं। मुझे यह करना पसंद है। धन्यवाद फिर से :-)
बेनोक

3
@बेनोक, मैं करता हूं, यह वास्तव में एक आसान हैक है! खुशी wasudoहै कि यह आपके लिए आसान हो गया। मैं खुद ज्यादातर VSCode एकीकृत कंसोल टर्मिनल में रहता हूं, इसलिए मैं बस wasudoवहां टाइप करता हूं :) अगला सुधार पर्यावरण vars को विरासत में देना होगा ।
noseratio 10

हाय @बेनोक, आपको कॉपी / पेस्ट / रन उत्पादकता में सुधार के लिए मेरी नई उपयोगिता में भी रुचि हो सकती है, DevComrade :)
noseratio

5

runasकमांड के लिए यूजर्स को पासवर्ड टाइप करना होगा। यदि आप पासवर्ड टाइप नहीं करना चाहते हैं और यूएसी संवाद पर क्लिक करना चाहते हैं, तो कमांड के Start-Process -Verb runasबजाय पावरशेल में उपयोग करें runas

देखें: http://satob.hatenablog.com/entry/2017/06/17/013217


यह व्यवस्थापकों में उपयोगकर्ता खाते का उन्नयन है; सुदो दूसरी बात है।
मैसिमो

4

आप सामान्य रूप से नहीं, क्योंकि आप इसे * निक्स के बिना नहीं चलाएंगे। एक उपयोगकर्ता निर्देशिका में विकास करें, और बाद में सिस्टम निर्देशिकाओं में तैनात करें।





2

निम्नलिखित vbs स्क्रिप्ट एक दिए गए कमांड को ऊंचाई के साथ तर्कों के साथ लॉन्च करने की अनुमति देता है और उपयोग किए गए मामलों के सीमित सेट के लिए मूल यूनिक्स सुडो कमांड के व्यवहार की नकल करता है (यह क्रेडेंशियल्स को कैश नहीं करेगा और न ही यह अलग-अलग क्षमता वाले कमांड को निष्पादित करने की अनुमति देता है)। मैंने उसे लगा दिया C:\Windows\System32

Set objArgs = WScript.Arguments
exe = objArgs(0)
args = ""
IF objArgs.Count >= 2 Then
   args = args & objArgs(1)
End If
For it = 2 to objArgs.Count - 1
   args = args & " " & objArgs(it)
Next
Set objShell = CreateObject( "WScript.Shell")
windir=objShell.ExpandEnvironmentStrings("%WINDIR%")
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute exe, args, "", "runas", 1
set objShellApp = nothing

उदाहरण कमांड प्रॉम्प्ट पर उपयोग करें sudo net start service


1
हम उपयोगकर्ता इनपुट के लिए स्क्रिप्ट का इंतजार कैसे कर सकते हैं, इसलिए हम शेल प्रोग्राम के आउटपुट को पढ़ सकते हैं?
अहमद हजज़ार

1
आप इंटरएक्टिव शेल कमांड का मतलब है? ठीक है, आपको पहले यह सुनिश्चित करने का प्रयास करना चाहिए कि लॉन्च की गई कमांड को वापसी के लिए इंतजार किया जाएगा। यहाँ ऐसा लगता है कि यह संभव है। फिर आपको शेल ऑब्जेक्ट्स से आउटपुट प्राप्त करना चाहिए और इसे आउटपुट करना चाहिए, जो मुझे लगता है कि यह भी संभव है। हालांकि आप यूनिक्स में जो कुछ भी कर सकते हैं, वह संभव नहीं है।
सेक्स्टको

विंडोज़ 10 पर यह लाइन 1 चार पर एक वाक्यविन्यास त्रुटि फेंकता है 6.
मार्टिन ब्रौन

यह व्यवस्थापकों में उपयोगकर्ता खाते का उन्नयन है; सुदो दूसरी बात है।
मास्सिमो

1

मुझे लगता है कि मैंने कुछ शोध करने और सफल होने के बाद नीचे दिए गए चरणों की कोशिश की

1.Install स्कूप पॉवरशेल 3 (iex (new-object net.webclient) .downloadstring (' https://get.scoop.sh ')) का उपयोग करके 2.) स्कूप इंस्टॉल --global sudo 3. सुनिश्चित पथ बनाएं (C: \ उपयोगकर्ता \\ स्कूप \ शिम और सी: \ प्रोग्रामडैटा \ स्कूप \ शिम) को पर्यावरण पथ चर में जोड़ा गया।


1

खिड़कियों के मामले में कोई sudo कमांड नहीं है और साथ ही किसी भी $ को लगाने की आवश्यकता नहीं है। विंडोज़ में नोड.जेएस कमांड प्रॉम्प्ट के माध्यम से कोणीय सीएलआई स्थापित करने के लिए, मैंने अभी npm install -g @ angular / cli लिखा और फिर एंटर दबाया। यह ठीक काम किया।


0

व्यवस्थापक के रूप में कंसोल खोलें। कमांड प्रॉम्प्ट या बैश पर राइट क्लिक करें -> अधिक और चुनें "व्यवस्थापक के रूप में चलाएं"


0

विंडोज पॉवर्सशेल में आप स्टार्ट -Verb RunAsऔर एलिवेटेड प्रक्रिया के विकल्प के साथ स्टार्ट-प्रोसेस कमांड का उपयोग कर सकते हैं । यहाँ मेरा sudo फ़ंक्शन उदाहरण है:

function sudo {
    Start-Process @args -verb runas
}

Ex: नोटपैड में व्यवस्थापक के रूप में मेजबान फ़ाइल खोलें

sudo notepad C:\Windows\System32\drivers\etc\hosts

0

sudoविंडो उपयोगकर्ताओं के लिए कमांड का उपयोग करना आपको निम्नलिखित सुझाव देता है:

सबसे पहले, scoopपैकेज प्रबंधन उपकरण स्थापित करें और निम्नलिखित कमांड निष्पादित करें:

यहां छवि विवरण दर्ज करें

फिर कमांड scoopस्थापित करने के लिए उपयोग करें sudo:

यहां छवि विवरण दर्ज करें

अंत में, आप के साथ कमांड निष्पादित कर सकते हैं sudo:

यहां छवि विवरण दर्ज करें


0

मैं आपकी मदद करके खुश हूं।

सुडोल कमांड बनाने के लिए चरणों का पालन करें: -

  1. C: \ Drive में एक फ़ोल्डर बनाएँ।
  2. बिन के रूप में नामित एनवी फ़ोल्डर के अंदर एक फ़ोल्डर बनाएं।
  3. अब अपने PATH में C: \ env \ bin जोड़ें।
  4. C: \ env \ bin में एक फ़ाइल sudo.bat बनाएं।
  5. इसे नोटपैड के साथ संपादित करें और इस कोड को लिखें: -
    https://gist.github.com/coder-examples/5ca6c141d6d356ddba4e356d63fb2c13

आशा है कि यह आपकी मदद करेगा


इस उत्तर में बैच फ़ाइल का पाठ शामिल होना चाहिए, लिंक सड़ने के कारण लिंक ऑफ साइट पर निर्भर नहीं होना चाहिए। इसके अलावा उत्तर में यह अस्वीकरण शामिल होना चाहिए कि यह स्क्रिप्ट सुडो के मोटे व्यवहार का अनुकरण करना चाहती है, लेकिन वास्तव में सूडो (यह एक छद्म-सुडो) नहीं है।
asky

0

एक गैर-एलिवेटेड पॉवर्सशेल में व्यवस्थापक के रूप में बस चलाने के लिए, आप Start-Processविशेष रूप से सही विकल्पों के साथ, सीधे उपयोग कर सकते हैं -Verb runas

यह एक बहुत अधिक से अधिक जटिल है sudo, विशेष रूप से क्योंकि आप सिर्फ एक अतिरिक्त विकल्प के साथ पिछले आदेश का फिर से उपयोग नहीं कर सकते हैं। आपको अपने आदेश के लिए अलग से तर्क निर्दिष्ट करने की आवश्यकता है।

यहाँ एक उदाहरण है, गेटवे को बदलने के लिए रूट कमांड का उपयोग करते हुए:

यह विफल हो जाता है क्योंकि हम एक ऊंचे PS में नहीं हैं:

> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.

यह यूएसी को स्वीकार करने के बाद काम करता है:

> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas

या एक कमांड के लिए जिसकी आवश्यकता होती है cmd.exe:

> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.