sudo for Windows 10

This commit is contained in:
AJ ONeal
2020-07-13 20:59:59 +00:00
parent 2f21911ba0
commit 5a31bc4a46
3 changed files with 59 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
---
title: Sudo for Windows
homepage: https://stackoverflow.com/a/40321310/151312
tagline: |
Sudo for Windows gives you a minimal `sudo` that works in cmd.exe and PowerShell.
---
## Cheat Sheet
> Sudo for Windows isn't real `sudo`, but it's close enough for certain tasks -
> like installing WSL (the Windows Subsystem for Linux), without opening a GUI
> to Alt-Click "Run as Administrator".
### Example: Enabling WSL
```bash
sudo.cmd dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
### Raw PowerShell
`sudo.cmd` is simply an alias of a powershell elevation command:
```pwsh
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
```
Note: replace `/c` with `/k` if you'd like the window to stay open rather than
closing automatically.
Source: <https://stackoverflow.com/a/55643173/151312>
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env pwsh
echo "Installing sudo.cmd..."
# Couldn't figure out how to get this to work with "here strings", so forgive the ugly, but at least it works
Set-Content -Path .local\bin\sudo.cmd -Value "@echo off`r`npowershell -Command ""Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'""`r`n@echo on"
# Add to path
& "$Env:USERPROFILE\.local\bin\pathman.exe" add ~/.local/bin
echo "Installed to '$Env:USERPROFILE\.local\bin\sudo.cmd'"
echo ""
+14
View File
@@ -0,0 +1,14 @@
set -e
set -u
{
if [ -z "$(command -v sudo)" ]; then
>&2 echo "Error: on Linux and BSD you should install sudo via the native package manager"
>&2 echo " for example: apt install -y sudo"
exit 1
else
echo "'sudo' already installed"
fi
}