如何在Windows中运行'sudo'命令

时间:2012-03-11 05:30:40

标签: windows

如何在Windows中运行以下命令:

$ sudo django-admin.py startproject NEW

17 个答案:

答案 0 :(得分:68)

Windows中没有sudo命令。最近的等价物是“以管理员身份运行。”

您可以使用管理员信任级别的runas命令执行此操作,也可以右键单击UI中的程序并选择“以管理员身份运行。”

答案 1 :(得分:5)

你通常不会,因为你不会在* nix下运行它。在用户目录中进行开发,然后再部署到系统目录。

答案 2 :(得分:4)

答案 3 :(得分:3)

在Windows中

,您可以使用runas命令。 对于linux用户,在windows中有一些sudo的替代品,你可以看看

http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/

答案 4 :(得分:3)

runas命令要求用户键入密码。 如果您不想键入密码并且只想单击UAC对话框,请在PowerShell中使用Start-Process -Verb runas而不是runas命令。

请参阅:http://satob.hatenablog.com/entry/2017/06/17/013217

答案 5 :(得分:2)

有点。我在2007年为Windows创建了Sudo? 08?这是我写过的安全文件-https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726。十分确定http://sudowin.sf.net仍然可以使用。

答案 6 :(得分: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

上使用示例

答案 7 :(得分:1)

在Windows的情况下没有sudo命令,也没有必要放任何$。为了通过windows中的node.js命令提示符安装Angular CLI,我刚写了 npm install -g @ angular / cli ,然后按Enter键。它运作良好。

答案 8 :(得分:1)

我认为在做了一些研究之后我尝试了以下步骤。成功

1.使用powershell 3安装scoop(iex(new-object net.webclient).downloadstring('https://get.scoop.sh')) 2.做scoop install --global sudo 3.确保在环境路径变量中添加路径(C:\ Users \\ scoop \ shims& C:\ ProgramData \ scoop \ shims)。

答案 9 :(得分:1)

我创建了wsudo,这是一种类似于sudo的开源CLI工具,适用于Windows,可以运行具有提升权限的程序或命令。它可以作为Chocolatey package使用。使用风险自负。

安装

choco install wsudo

Chocolatey必须已经安装。

目的

wsudo是类似于Linux sudo的工具,用于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

答案 10 :(得分:1)

打开记事本并粘贴以下代码:

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

然后,将文件另存为sudo.cmd。复制此文件并将其粘贴在C:\Windows\System32上,或将sudo.cmd所在的路径添加到PATH环境变量中。

打开命令提示符后,您现在可以运行类似sudo start .的内容。

如果您希望在运行命令时使终端窗口保持打开状态,请将记事本中的代码更改为此:

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

说明:

powershell -Command运行powershell命令。

Start-Process是启动过程的Powershell命令,在本例中为命令提示符。

-Verb RunAs以管理员身份运行命令。

-Argument-List运行带有参数的命令。

我们的论点是'/c %*'%*表示所有参数,因此,如果执行了sudo foo bar,它将在命令提示符foo bar中运行,因为参数是foo和bar,并且%*返回foo bar

/c是用于在命令完成后关闭窗口的cmd参数,而/k是用于使窗口保持打开状态的cmd参数。

答案 11 :(得分:1)

所有答案都说明了如何在控制台主机中提升命令。

让我感到有趣的是,这些工具的行为都不像*nix sudo,可以在 current 控制台内执行命令。

所以,我写了: gsudo

源代码https://github.com/gerardog/gsudo

安装

通过独家新闻

  • 安装scoop(如果尚未安装)。然后:
scoop install gsudo

或通过Chocolatey

choco install gsudo --version=0.4.1

手动安装:

演示

gsudo demo

答案 12 :(得分:0)

以管理员身份打开控制台。右键单击命令提示符或bash-> more,然后选择“以管理员身份运行”

答案 13 :(得分:0)

在Windows Powershell中,您可以使用带有选项-Verb RunAs的Start-Process命令来启动和提升进程。 这是我的sudo函数示例:

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

例如:在记事本中以“管理员”身份打开主机文件

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

答案 14 :(得分:0)

为窗口用户使用sudo命令会给您以下建议:

首先,安装scoop软件包管理工具并执行以下命令:

enter image description here

然后使用scoop安装sudo命令:

enter image description here

最后,您可以使用sudo执行命令:

enter image description here

答案 15 :(得分:0)

很高兴为您提供帮助。

要执行sudo命令,请遵循以下步骤:-

  1. 在C:\ Drive中创建一个文件夹env。
  2. 在名为bin的env文件夹内制作一个文件夹。
  3. 现在将C:\ env \ bin添加到PATH。
  4. 在C:\ env \ bin中创建一个文件sudo.bat。
  5. 使用记事本进行编辑并编写以下代码:-
    https://gist.github.com/coder-examples/5ca6c141d6d356ddba4e356d63fb2c13

希望这对您有帮助

答案 16 :(得分:0)

要仅在非高架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