我将如何在Windows中运行以下命令:
$ sudo django-admin.py startproject NEW
?
我将如何在Windows中运行以下命令:
$ sudo django-admin.py startproject NEW
?
Answers:
sudo
Windows中没有命令。最接近的等效项是“以管理员身份运行”。
您可以使用runas
具有管理员信任级别的命令来执行此操作,也可以通过右键单击UI中的程序并选择“以管理员身份运行”来执行此操作。
gsudo
(stackoverflow.com/a/58753166/97471)。对于具有*nix sudo
用户体验的Windows是一个sudo :允许在当前控制台内执行命令,并提供凭据缓存(仅一个UAC弹出窗口)。
打开记事本并粘贴以下代码:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
然后,将文件另存为sudo.cmd
。复制此文件并将其粘贴在PATH环境变量中,C:\Windows\System32
或将路径添加sudo.cmd
到PATH环境变量中。
当您打开命令提示符时,现在可以运行sudo start .
。
如果要在运行命令时使admin命令提示符窗口保持打开状态,请将记事本中的代码更改为此:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
说明:
powershell -Command
运行powershell命令。
Start-Process
是启动过程的Powershell命令,在本例中为命令提示符。
-Verb RunAs
以管理员身份运行命令。
-Argument-List
使用参数运行命令。
我们的论据是'/c cd /d %CD% && %*'
。%*
表示所有参数,因此,如果这样做sudo foo bar
,它将在命令提示符下运行,foo bar
因为参数为foo和bar,然后%*
返回foo bar
。cd /d %CD%
是转到当前目录的命令。这将确保当您打开提升的窗口时,目录将与普通窗口相同。这&&
意味着如果第一个命令成功,则运行第二个命令。
该/c
是命令完成后关闭该窗口中的CMD参数,并且/k
是保持窗口打开CMD参数。
感谢亚当Plocher在当前目录代码停留。
C:\Windows\System32
。
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echo
通过添加@
到powershell行来跳过第一行和第三行?
所有答案都说明了如何在新的控制台主机中提升命令。
让我感到有趣的是,这些工具的行为都不像*nix sudo
,允许在当前控制台内执行命令。
所以,我写道:gsudo
源代码https://github.com/gerardog/gsudo
通过勺
scoop install gsudo
或通过Chocolatey
choco install gsudo
手动安装:
我创建wsudo
了一个sudo
类似于开源的CLI工具,用于Windows 在当前目录的上下文中以提升的权限运行程序或命令。它可以作为Chocolatey包使用。
我经常将它用于配置构建代理,诸如之类的管理工作sfc /scannow
,dism /online /cleanup-image /restorehealth
或者仅用于安装/更新本地Chocolatey软件包。使用风险自负。
choco install wsudo
Chocolatey必须已经安装。
wsudo
是一种sudo
类似于Linux 的工具,用于Windows从非管理员shell命令提示符下以提升的权限(以管理员身份)调用程序,并保留其当前目录。
此实现不依赖于旧版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。
runas
该命令要求用户键入密码。如果您不想键入密码而只想单击UAC对话框,请Start-Process -Verb runas
在PowerShell中使用,而不要使用runas
command。
通常您不会,因为无论如何您都不会在* nix下运行它。在用户目录中进行开发,然后部署到系统目录。
在Windows中,可以使用runas命令。对于linux用户,在Windows中有一些sudo的替代品,您可以检查一下
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
你可以使用runas命令- http://technet.microsoft.com/en-us/library/bb490994.aspx 或sudowin - http://sourceforge.net/projects/sudowin/
有一种。我在2007年为Windows创建了Sudo?08?这是我为此写的安全文件-https: //www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726。可以肯定的是http://sudowin.sf.net仍然可以使用。
以下vbs脚本允许启动带有带高程参数的给定命令,并在有限的一组用例中模拟原始unix sudo命令的行为(它不会缓存凭据,也不能真正执行具有不同凭据的命令)。我穿上了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.使用Powershell 3 安装独家新闻(iex(new-object net.webclient).downloadstring(' https://get.scoop.sh '))2.独家新闻--全局sudo 3.确保路径(C: \ Users \\ scoop \ shims和C:\ ProgramData \ scoop \ shims)添加到环境路径变量中。
对于Windows,没有sudo命令,也不需要放入$。为了通过Windows中的node.js命令提示符安装Angular CLI,我只是编写了npm install -g @ angular / cli,然后按Enter。工作正常。
很高兴为您服务。
要执行sudo命令,请遵循以下步骤:
希望这个能对您有所帮助
要仅在非高架Powershell中以管理员身份运行命令,可以Start-Process
直接使用,带有正确的选项,尤其是-Verb runas
。
它比复杂得多sudo
,尤其是因为您不能仅仅将前一个命令与其他选项一起使用。您需要单独指定命令的参数。
这是一个示例,使用route命令更改网关:
这失败了,因为我们不在较高的PS中:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
接受UAC后,此方法将起作用:
> 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