在 PowerShell 中使用 sudo 命令实现临时提权
本文将介绍如何在 PowerShell 中使用 sudo 命令实现临时提权,以及一些其它的提权方法。
何为 sudo?为何使用 sudo 来实现临时提权?
sudo 是一种计算机程序,用于类 Unix 操作系统如 BSD、Mac OS X 以及 GNU/Linux,该计算机程序可以让用户透过安全的方式使用特殊的权限执行程序(通常为操作系统的超级用户)。
在 Windows 系统中虽有类似的提权方法(本文末尾将介绍这些方法),但大多都存在使用不便的缺点。
好在我们可以通过安装开源的 “sudo” 脚本,实现便捷的临时提权操作,大大提升用户的使用体验。
使用 Scoop 安装 sudo 脚本
Scoop 是一个 Windows 包管理工具。
本文使用 Scoop 安装 sudo 脚本。
安装 Scoop
设置 PowerShell 执行策略
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
使用官方脚本一键安装 Scoop
Invoke-RestMethod get.scoop.sh | Invoke-Expression
若想进一步了解 Scoop 的使用技巧,推荐阅读 P3TERX 的这篇文章。
安装 sudo 脚本
安装 Scoop 后,再安装 sudo 脚本就十分便捷。
只需要执行以下命令
scoop install sudo
使用 sudo 命令实现临时提权
使用 Scoop 安装完 sudo 脚本后,你只要在需要管理员权限执行的命令前加上 sudo 即可。例如:
sudo Get-Service ssh-agent | Set-Service -StartupType Automatic
细心的读者可能会发现上方执行的命令有些不对劲,紧随 sudo 命令后的 Get-Service
并不需要提权运行,而需要提权运行的 Set-Service
位于 |
之后。
在 Linux 中,这样使用 sudo 命令肯定是行不通的,管道符号后的命令实际上并没有提权运行。
但本文中所安装的 sudo 脚本是支持这种使用方法的,你只需要在一连串命令的开头加上一个 sudo 即可。这是因为该 sudo 脚本实际上是以管理员权限新建了一个进程,在新进程中执行 sudo 命令后跟随的所有命令后返回。
PowerShell 中其它的提权方法
Start-Process
Start-Process -FilePath "powershell" -Verb RunAs
Runas
runas /user:Administrator powershell
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 名無し's Blog!
评论