如何在 Windows 中运行“ sudo”命令

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

$ sudo django-admin.py startproject NEW

616024 次浏览

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

你可以使用 runas 命令-< a href = “ http://technet.microsoft.com/en-us/library/bb490994.aspx”rel = “ nofollow”> http://technet.microsoft.com/en-us/library/bb490994.aspx 或者 sudowin-http://sourceforge.net/projects/sudowin/

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

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

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

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

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

见: http://satob.hatenablog.com/entry/2017/06/17/013217

我想我做了一些研究后尝试了下面的步骤并取得了成功

1. 使用 powershell 3安装 scoop (iex (new-object net.webclient) . downloadstring (‘ https://get.scoop.sh’)) 做 scoop 安装——全局 sudo 3. 确保在环境路径变量中添加路径(C: 用户铲垫片和 C: 程序数据铲垫片)。

在 windows 的情况下没有 sudo 命令,也没有必要放置任何 $。为了在 windows 中通过 node.js 命令提示符安装 Angular CLI,我只编写了 Npm install-g@angle/cli,然后按下 Enter。效果很好。

下面的 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上使用的示例

算是吧。我在2007年为 Windows 创建了 Sudo?08?这是我写的安全论文 https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726。我很确定 http://sudowin.sf.net还能用。

我已经创建了 wsudo,这是一个类似于 sudo的开源 CLI 工具,用于 Windows 运行程序或命令,右边是 在工作目录的背景下。它可以作为一个 巧克力包装

我经常使用它来配置构建代理、管理 sfc /scannowdism /online /cleanup-image /restorehealth之类的东西,或者仅仅用于安装/更新我的本地 Chocolatey 包。使用风险自负。

安装

choco install wsudo

Chocolatey 必须已经安装。

目的

wsudo是一个类似于 Linux sudo的工具,用于 Windows 从非管理 shell 命令提示符调用具有高级权限(作为管理员)的程序并保持其工作目录。

这个实现不依赖于遗留 Windows Script Host (CScript)。相反,它使用了一个调用 "Start-Process -Wait -Verb runAs ..." cmdlet 的 helper PowerShell 5.1脚本。您的系统很可能已经安装了 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 的复制品

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

@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运行一个 powershell 命令。

Start-Process是一个 powershell 命令,它启动一个进程,在本例中是命令提示符。

-Verb RunAs作为管理员运行命令。

-Argument-List使用参数运行该命令。

我们的论点是 '/c cd /d %CD% && %*'%*表示所有参数,因此如果执行 sudo foo bar,它将在命令提示符 foo bar中运行,因为参数是 foo 和 bar,而 %*返回 foo bar。ABc6是去工作目录的命令。这将确保当您打开提升的窗口时,目录将与普通窗口相同。&&意味着如果第一个命令成功,则运行第二个命令。

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

这要归功于 亚当 · 普罗彻的工作目录。

以管理员身份打开控制台。右键单击命令提示符或 bash-> more 并选择“ run as Administrator”

所有的答案都解释了如何在新的控制台主机中提升您的命令。因此,我写道: Gsudo的行为类似于 Unix/Linux sudo,允许在 目前控制台内执行命令。

Gsudo

最相关的功能:

  • 在当前控制台中升级(没有新窗口)
  • 提升 cmd命令,但也提升 PowerShell/WSL/Git-Bash/cygwin/Msys/命令本身。
  • 可选项: 凭证缓存(只用一个 UAC 弹出窗口升级多次)

安装

演示

gsudo demo

在 Windows PowerShell 中,你可以使用 Start-Process 命令和选项 -Verb RunAs来启动和提升进程。 下面是我的 sudo 函数示例:

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

在记事本中以管理员身份打开主机文件

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

对窗口用户使用 sudo命令可以得到以下建议:

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

enter image description here

然后使用 scoop安装 sudo命令:

enter image description here

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

enter image description here

我很高兴帮助你。

执行 sudo 命令的步骤如下:-

  1. 在 C: Drive 中创建一个文件夹 env。
  2. 在 env 文件夹中创建一个名为 bin 的文件夹。
  3. 现在将 C: env bin 添加到 PATH。
  4. 在 C: env bin 中创建一个文件 sudo.bat。
  5. 用记事本编辑它,然后写下如下代码:-
    Https://gist.github.com/coder-examples/5ca6c141d6d356ddba4e356d63fb2c13

希望这个能帮到你

要在未升级的 Powershell 中作为管理员运行命令,可以直接使用 Start-Process,并使用正确的选项,特别是 -Verb runas

它比 sudo复杂得多,特别是因为您不能只是重用前面的命令并添加其他选项。您需要分别指定命令的参数。

下面是一个使用 path 命令更改网关的示例:

这种做法之所以失败,是因为我们没有处于一种提升的 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