Come dovrei eseguire il seguente comando in Windows:
$ sudo django-admin.py startproject NEW
?
Come dovrei eseguire il seguente comando in Windows:
$ sudo django-admin.py startproject NEW
?
Risposte:
Non è presente alcun sudocomando in Windows. L'equivalente più vicino è "esegui come amministratore".
Puoi farlo utilizzando il runascomando con un livello di attendibilità amministratore o facendo clic con il pulsante destro del mouse sul programma nell'interfaccia utente e scegliendo "Esegui come amministratore".
gsudo( stackoverflow.com/a/58753166/97471 ). È un sudo per Windows con *nix sudoesperienza utente: consente di eseguire il comando all'interno della console corrente e cache delle credenziali (solo un popup UAC).
Apri il blocco note e incolla questo codice:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Quindi, salva il file come sudo.cmd. Copia questo file e incollalo C:\Windows\System32o aggiungi il percorso in cui si sudo.cmdtrova alla variabile d'ambiente PATH.
Quando apri il prompt dei comandi, ora puoi eseguire qualcosa di simile sudo start ..
Se desideri che la finestra del prompt dei comandi dell'amministratore rimanga aperta quando esegui il comando, modifica il codice nel blocco note in questo:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Spiegazione:
powershell -Command esegue un comando PowerShell.
Start-Process è un comando PowerShell che avvia un processo, in questo caso il prompt dei comandi.
-Verb RunAs esegue il comando come amministratore.
-Argument-List esegue il comando con argomenti.
I nostri argomenti sono '/c cd /d %CD% && %*'. %*significa tutti gli argomenti, quindi se lo facessi sudo foo bar, verrebbe eseguito nel prompt dei comandi foo barperché i parametri sono foo e bar e %*restituisce foo bar. cd /d %CD%è un comando per andare alla directory corrente. Ciò assicurerà che quando apri la finestra elevata, la directory sarà la stessa della finestra normale. il &&che significa che se il primo comando ha esito positivo, eseguire il secondo comando.
La /cè un parametro cmd per chiudere la finestra dopo il comando è terminato, e la /kè un parametro cmd per mantenere la finestra aperta.
Ringraziamo Adam Plocher per la permanenza nel codice della directory corrente.
C:\Windows\System32.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echorighe uno e tre anteponendo @la riga PowerShell?
Tutte le risposte spiegano come elevare il tuo comando in un nuovo host della console.
Quello che mi ha divertito è stato il fatto che nessuno di questi strumenti si comporta come se fosse *nix sudopossibile eseguire il comando all'interno della console corrente .
Quindi ho scritto: gsudo
Codice sorgente https://github.com/gerardog/gsudo
Via scoop
scoop install gsudo
O tramite Chocolatey
choco install gsudo
Installazione manuale:

Ho creato wsudoun open-sourcesudo strumento CLI di tipo per Windows per eseguire programmi o comandi con elevato diritto, nel contesto della directory corrente . È disponibile come confezione Chocolatey .
Io lo uso molto per cose come la configurazione di agenti di build, cose di amministrazione come sfc /scannow, dism /online /cleanup-image /restorehealtho semplicemente per l'installazione / aggiornamento dei miei pacchetti cioccolatoso locali. Utilizzare a proprio rischio.
choco install wsudo
Chocolatey deve essere già installato.
wsudo è un Linux sudo strumento simile a per Windows per invocare un programma con diritti elevati (come amministratore) da un prompt dei comandi della shell non amministratore e mantenere la sua directory corrente.
Questa implementazione non dipende dal precedente Windows Script Host (CScript ). Invece, usa uno script di PowerShell 5.1 di supporto che richiama il "Start-Process -Wait -Verb runAs ..."cmdlet. Molto probabilmente sul tuo sistema è già installato PowerShell 5.x, altrimenti ti verrà offerto di installarlo come dipendenza.
wsudoesegue un programma o un comando inline con diritti elevati nella directory corrente. Esempi:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
Per maggiori dettagli, visita la riproduzione di GitHub .
wasudoche ti sia stato più facile. Io stesso vivo per lo più nel terminale della console integrata VSCode, quindi digito wasudolì :) Il prossimo miglioramento sarebbe ereditare le variabili di ambiente .
runasIl comando richiede agli utenti di digitare la password. Se non vuoi digitare la password e vuoi semplicemente fare clic sulla finestra di dialogo UAC, usa Start-Process -Verb runasin PowerShell invece dirunas comando.
Normalmente non lo faresti, dal momento che non lo eseguiresti sotto * nix a prescindere. Eseguire lo sviluppo in una directory utente e distribuirlo successivamente nelle directory di sistema.
in Windows, puoi usare il comando runas. Per gli utenti Linux, ci sono alcune alternative per sudo in Windows, puoi verificarlo
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
È possibile utilizzare il comando runas - http://technet.microsoft.com/en-us/library/bb490994.aspx o sudowin - http://sourceforge.net/projects/sudowin/
C'è un po '. Ho creato Sudo per Windows nel 2007? 08? Ecco il documento sulla sicurezza che ho scritto a riguardo: https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . Abbastanza sicuro che anche http://sudowin.sf.net funzioni ancora.
Il seguente script vbs consente di avviare un determinato comando con argomenti con elevazione e imita il comportamento del comando sudo originale unix per un insieme limitato di casi utilizzati (non memorizzerà le credenziali né consentirà di eseguire veramente comandi con credenziali diverse). L'ho indossato 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
Esempio di utilizzo su un prompt dei comandi sudo net start service
Penso di aver provato i passaggi seguenti dopo aver fatto alcune ricerche e ci sono riuscito
1.Installa scoop usando powershell 3 (iex (new-object net.webclient) .downloadstring (' https://get.scoop.sh ')) 2. esegui scoop install --global sudo 3. assicurati che i percorsi (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) aggiunti nella variabile del percorso ambientale.
Non esiste un comando sudo in caso di Windows e inoltre non è necessario inserire $. Per installare Angular CLI tramite il prompt dei comandi node.js in Windows, ho appena scritto npm install -g @ angular / cli e poi ho premuto Invio. Ha funzionato bene.
In Windows Powershell è possibile utilizzare il comando Start-Process con l'opzione -Verb RunAsper avviare e il processo elevato. Ecco il mio esempio di funzione sudo:
function sudo {
Start-Process @args -verb runas
}
Es: Apri il file hosts come amministratore nel blocco note
sudo notepad C:\Windows\System32\drivers\etc\hosts
Sono felice di aiutarti.
Per eseguire un comando sudo segui i passaggi: -
Spero che questo ti possa aiutare
Per eseguire semplicemente un comando come amministratore in un Powershell non elevato, puoi utilizzare Start-Processdirettamente, con le opzioni giuste, in particolare -Verb runas.
È molto più complicato di sudo, soprattutto perché non puoi semplicemente riutilizzare il comando precedente con un'opzione aggiuntiva. È necessario specificare separatamente gli argomenti del comando.
Ecco un esempio, utilizzando il comando route per modificare il gateway:
Questo fallisce perché non siamo in un PS elevato:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Funziona dopo aver accettato l'UAC:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
O per un comando che richiede cmd.exe:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas