Como eu executaria o seguinte comando no Windows:
$ sudo django-admin.py startproject NEW
?
Como eu executaria o seguinte comando no Windows:
$ sudo django-admin.py startproject NEW
?
Respostas:
Não há sudo comando no Windows. O equivalente mais próximo é "executar como administrador".
Você pode fazer isso usando o runascomando com um nível de confiança de administrador ou clicando com o botão direito do mouse no programa na IU e escolhendo "executar como administrador".
gsudo( stackoverflow.com/a/58753166/97471 ). É um sudo para windows com *nix sudoexperiência de usuário: Permite executar o comando dentro do console atual, e cache de credenciais (apenas um popup UAC).
Abra o bloco de notas e cole este código:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Em seguida, salve o arquivo como sudo.cmd. Copie este arquivo e cole-o C:\Windows\System32ou adicione o caminho onde sudo.cmdestá a sua Variável de Ambiente PATH.
Ao abrir o prompt de comando, agora você pode executar algo como sudo start ..
Se você quiser que a janela do prompt de comando do administrador permaneça aberta quando você executar o comando, altere o código no bloco de notas para este:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Explicação:
powershell -Command executa um comando do PowerShell.
Start-Process é um comando do PowerShell que inicia um processo, neste caso, o prompt de comando.
-Verb RunAs executa o comando como admin.
-Argument-List executa o comando com argumentos.
Nossos argumentos são '/c cd /d %CD% && %*'. %*significa todos os argumentos, portanto, se você fizer isso sudo foo bar, ele será executado no prompt de comando foo barporque os parâmetros são foo e bar, e %*retorna foo bar. cd /d %CD%é um comando para ir para o diretório atual. Isso garantirá que, quando você abrir a janela elevada, o diretório seja o mesmo da janela normal. a&& meios que se o primeiro comando for bem sucedido, executar o segundo comando.
O /cé um parâmetro cmd para fechar a janela após a conclusão do comando, e o/k é um parâmetro cmd para manter a janela aberta.
Agradecemos a Adam Plocher por permanecer no código de diretório atual.
C:\Windows\System32.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echolinhas um e três adicionando @antes a linha do PowerShell?
Todas as respostas explicam como elevar seu comando em um novo host de console.
O que me divertiu foi que nenhuma dessas ferramentas se comportou assim *nix sudo, permitindo executar o comando dentro do console atual .
Então, eu escrevi: gsudo
Código-fonte https://github.com/gerardog/gsudo
Por colher
scoop install gsudo
Ou via Chocolatey
choco install gsudo
Instalação manual:

Eu criei wsudo, uma sudoferramenta CLI de código aberto para Windows para executar programas ou comandos com direitos elevados, no contexto do diretório atual . Está disponível em embalagem de Chocolatey .
Eu o uso muito para coisas como configurar agentes de construção, coisas de administração como sfc /scannow, dism /online /cleanup-image /restorehealthou simplesmente para instalar / atualizar meus pacotes locais Chocolatey. Use por sua conta e risco.
choco install wsudo
Chocolatey já deve estar instalado.
wsudoé uma sudoferramenta semelhante ao Linux para Windows para invocar um programa com direitos elevados (como Administrador) a partir de um prompt de comando shell não administrativo e manter seu diretório atual.
Esta implementação não depende do Windows Script Host ( CScript) legado . Em vez disso, ele usa um script auxiliar PowerShell 5.1 que invoca"Start-Process -Wait -Verb runAs ..." cmdlet. O mais provável é que seu sistema já tenha o PowerShell 5.x instalado, caso contrário, você será oferecido para instalá-lo como uma dependência.
wsudoexecuta um programa ou um comando embutido com direitos elevados no diretório atual. Exemplos:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
wasudoque facilitou para você. Eu mesmo vivo principalmente no terminal de console integrado VSCode, então apenas digito wasudolá :) A próxima melhoria seria herdar os vars de ambiente .
runascomando requer que os usuários digitem a senha. Se você não quiser digitar a senha e quiser apenas clicar na caixa de diálogo UAC, use Start-Process -Verb runasno PowerShell em vez do runascomando.
consulte: http://satob.hatenablog.com/entry/2017/06/17/013217
Você normalmente não faria isso, já que não iria executá-lo sob * nix independentemente. Faça o desenvolvimento em um diretório do usuário e implante depois nos diretórios do sistema.
no Windows, você pode usar o comando runas. Para usuários do Linux, existem algumas alternativas para sudo no windows, você pode verificar isto
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
Você pode usar o comando runas - http://technet.microsoft.com/en-us/library/bb490994.aspx ou sudowin - http://sourceforge.net/projects/sudowin/
Existe meio que. Criei o Sudo para Windows em 2007? 08? Aqui está o artigo de segurança que escrevi sobre isso - https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . Com certeza http://sudowin.sf.net ainda funciona também.
O script vbs a seguir permite lançar um determinado comando com argumentos com elevação e imita o comportamento do comando unix sudo original para um conjunto limitado de casos usados (não armazenará em cache as credenciais nem permitirá realmente executar comandos com credenciais diferentes). Eu coloquei 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
Exemplo de uso em um prompt de comando sudo net start service
Acho que tentei as etapas abaixo depois de fazer algumas pesquisas e tive sucesso
1. Instale o scoop usando o powershell 3 (iex (new-object net.webclient) .downloadstring (' https://get.scoop.sh ')) 2. faça scoop install --global sudo 3. certifique-se de caminhos (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) adicionado na variável de caminho ambiental.
Não há comando sudo no caso do windows e também não há necessidade de colocar $. Para instalar o Angular CLI por meio do prompt de comando node.js no Windows, acabei de escrever npm install -g @ angular / cli e pressione Enter. Funcionou bem.
No Windows Powershell você pode usar o comando Start-Process com a opção -Verb RunAsde iniciar um processo elevado. Aqui está meu exemplo de função sudo:
function sudo {
Start-Process @args -verb runas
}
Ex: Abra o arquivo hosts como Admin no bloco de notas
sudo notepad C:\Windows\System32\drivers\etc\hosts
Fico feliz em ajudá-lo.
Para fazer um comando sudo, siga as etapas: -
Espero que isso te ajude
Para apenas executar um comando como administrador em um Powershell não elevado, você pode usar Start-Processdiretamente, com as opções certas, principalmente -Verb runas.
É muito mais complicado do que sudo, principalmente porque você não pode simplesmente reutilizar o comando anterior com uma opção adicional. Você precisa especificar os argumentos para o seu comando separadamente.
Aqui está um exemplo, usando o comando route para alterar o gateway:
Isso falha porque não estamos em um PS elevado:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Isso funciona depois de aceitar o UAC:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
Ou para um comando que requer cmd.exe:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas