在企业实习期间,我遇到很多需要使用管理员权限的场景。例如在不使用域控分发部署软件的情况为域用户安装软件,单独为域用户计算机配置本地组策略,使用磁盘管理器等等。

而完成上述操作的通常做法就是切换用户至管理员账户,等操作完毕后再注销管理员账户。这种做法比较耗费时间,而且在软件安装期间,同事不能对电脑进行操作,IT 运维人员也需要等待软件安装完成后注销管理员账户才能离开,效率过低。

于是,我通过查看 Microsoft 技术文档及其他内容平台的资料,找到了一种无需切换用户账户即可使用管理员权限的方式— runas 命令。

情景一 安装软件

在软件安装包所在目录下打开 CMD 命令提示符,运行如下命令并输入管理员账户密码,即可以管理员权限安装软件,当软件安装进程开始,IT 运维人员即可离开去解决下一个问题。

runas /user:[域]\Administrator [安装包]

若要以管理员权限打开软件,可以运行以下命令。

runas /user:[域]\Administrator [软件安装目录下的exe文件]

情景二 打开本地组策略

runas /user [域]\Administrator "gpedit"

情景三 打开管理控制台

管理控制台中可以配置组策略对象编辑器、本地用户和组、计算机管理、服务、任务计划程序、磁盘管理等多个管理单元。

runas /user [域]\Administrator "mmc"

详细用法

RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
/user:<UserName> program

RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
/smartcard [/user:<UserName>] program

RUNAS [ [/machine:<MachineType>] ] /trustlevel:<TrustLevel> program

/noprofile 指定不应该加载用户的配置文件。
这会加速应用程序加载,但
可能会造成一些应用程序运行不正常。
/profile 指定应该加载用户的配置文件。
这是默认值。
/env 要使用当前环境,而不是用户的环境。
/netonly 只在指定的凭据限于远程访问的情况下才使用。
/savecred 用用户以前保存的凭据。
/smartcard 如果凭据是智能卡提供的,则使用这个选项。
/user <UserName> 应使用 USER@DOMAIN 或 DOMAIN\USER 形式
/showtrustlevels 显示可以用作 /trustlevel 的参数的
信任级别。
/trustlevel <Level> 应该是在 /showtrustlevels 中枚举
的一个级别。
/machine 指定进程的计算机架构。
<MachineType> 应为 x86|amd64|arm|arm64 之一。
program EXE 的命令行。请参阅下面的例子

示例:
> runas /noprofile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""

注意: 只在得到提示时才输入用户的密码。
注意: /profile 跟 /netonly 不兼容。
注意: /savecred 跟 /smartcard 不兼容。