Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run 'sudo' command in windows [duplicate]

Tags:

windows

People also ask

Can you run sudo command in Windows?

As well as having a sudo option in Windows, we will have the ability to install packages in Windows using "scoop" similar to apt & apt-get in Linux. For more information how to use scoop visit : https://scoop.sh/

What can I use instead of sudo in Windows?

“Run As” in windows serves the same purpose as “sudo” on Linux/Unix. Above command will run “command” as administrator.

How do I sudo in Windows Powershell?

Windows Powershell doesn't have sudo - some commands needs to be run as an administrator Powershell has no concept of it. One solution we can use is Start-Process command: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process The following line is the example of this command.

How do I run a command as root in Windows?

Option Two: Use the Run Box Press Windows+R to open the “Run” box. Type “cmd” into the box and then press Ctrl+Shift+Enter to run the command as an administrator.


There is no sudo command in Windows. The nearest equivalent is "run as administrator."

You can do this using the runas command with an administrator trust-level, or by right-clicking the program in the UI and choosing "run as administrator."


All the answers explain how to elevate your command in a new console host.

What amused me was that none of those tools behave like *nix sudo, allowing to execute the command inside the current console.

So, I wrote: gsudo

Source Code https://github.com/gerardog/gsudo

Installation

Via scoop

  • Install scoop if you don't already have it. Then:
scoop install gsudo

Or via Chocolatey

choco install gsudo

Manual instalation:

  • Download the latest release, unzip, and add to path, from https://github.com/gerardog/gsudo/releases/

Demo

gsudo demo


Open notepad and paste this code:

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

Then, save the file as sudo.cmd. Copy this file and paste it at C:\Windows\System32 or add the path where sudo.cmd is to your PATH Environment Variable.

When you open command prompt, you can now run something like sudo start ..

If you want the admin command prompt window to stay open when you run the command, change the code in notepad to this:

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

Explanation:

powershell -Command runs a powershell command.

Start-Process is a powershell command that starts a process, in this case, command prompt.

-Verb RunAs runs the command as admin.

-Argument-List runs the command with arguments.

Our arguments are '/c cd /d %CD% && %*'. %* means all arguments, so if you did sudo foo bar, it would run in command prompt foo bar because the parameters are foo and bar, and %* returns foo bar. cd /d %CD% is a command to go to the current directory. This will ensure that when you open the elevated window, the directory will be the same as the normal window. the && means that if the first command is successful, run the second command.

The /c is a cmd parameter for closing the window after the command is finished, and the /k is a cmd parameter for keeping the window open.

Credit to Adam Plocher for the staying in the current directory code.


I've created wsudo, an open-source sudo-like CLI tool for Windows to run programs or commands with elevated right, in the context of the current directory. It's available as a Chocolatey package.

I use it a lot for stuff like configuring build agents, admin things like sfc /scannow, dism /online /cleanup-image /restorehealth or simply for installing/updating my local Chocolatey packages. Use at your own risk.

Installation

choco install wsudo

Chocolatey must be already installed.

Purpose

wsudo is a Linux sudo-like tool for Windows to invoke a program with elevated rights (as Administrator) from a non-admin shell command prompt and keeping its current directory.

This implementation doesn't depend on the legacy Windows Script Host (CScript). Instead, it uses a helper PowerShell 5.1 script that invokes "Start-Process -Wait -Verb runAs ..." cmdlet. Your system most likely already has PowerShell 5.x installed, otherwise you'll be offered to install it as a dependency.

Usage

wsudo runs a program or an inline command with elevated rights in the current directory. Examples:

wsudo .\myAdminScript.bat 
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts 

For more details, visit the GitHub repro.


runas command requires the users to type password. If you don't want to type password and want to just click the UAC dialog, use Start-Process -Verb runas in PowerShell instead of runas command.

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


You normally wouldn't, since you wouldn't run it under *nix regardless. Do development in a user directory, and deploy afterwards to system directories.