【Windows】通过 runas 命令实现多用户权限测试的完整流程
▒ 目录 ▒
- 🛫 导读
- 需求
- 1️⃣ 前期准备:创建管理员/普通测试用户
- 1.1 创建普通用户Test(无管理员权限)
- 1.2 创建管理员用户Admin(含管理员权限)
- 2️⃣ 核心操作:通过runas命令切换用户命令行环境
- 2.1 runas命令基础语法
- 2.2 切换至普通用户Test的cmd环境
- 2.3 切换至管理员用户Admin的cmd环境
- 3️⃣ 测试执行:在不同用户环境下测试记事本写入文件
- 3.1 普通用户Test环境
- 3.2 管理员用户Admin环境
- 3.3 禁用测试账号
- 🛬 文章小结
- 📖 参考资料
🛫 导读
需求
在软件测试场景中,需验证程序(如Test.exe)在不同权限用户环境下的运行兼容性(如管理员权限依赖、普通用户权限限制),避免因权限差异导致功能异常。
本文针对Windows环境,提供“创建差异化权限用户(管理员Admin、普通用户Test)→ 通过runas命令切换用户命令行环境 → 调用Test.exe执行测试”的完整流程,解决手动切换系统用户的繁琐问题,实现高效权限覆盖测试。
1️⃣ 前期准备:创建管理员/普通测试用户
需先在Windows系统中创建两个差异化权限的本地用户(管理员用户Admin、普通用户Test),确保权限边界清晰,测试结果可区分。
1.1 创建普通用户Test(无管理员权限)
普通用户用于模拟常规用户场景,仅拥有基础系统操作权限,步骤如下:
- 打开「控制面板」→ 进入「账户」→ 点击「其他账户」→ 选择「添加新用户」;
- 在「本地用户和组」下面,右键点击「用户」;
- 选择「新用户」,弹出创建用户的对话框;
- 输入用户名
Test
,设置密码(需符合Windows密码复杂度要求,如包含大小写+数字),完成创建;
(命令行快捷创建)若需快速操作,可通过管理员命令提示符执行:
# 创建普通用户Test,密码设为Test@123(实际使用需替换为复杂密码) net user Test Test@123 /add # 确认用户创建成功(查看用户列表) net user
1.2 创建管理员用户Admin(含管理员权限)
管理员用户用于模拟高权限场景,需拥有系统级操作权限(如修改配置、访问受限目录),步骤如下:
- 重复1.1的前4步,创建用户名为
Admin
的本地用户;- 然后右键点击
Admin
用户 → 选择「属性」;- 按照下面步骤完成权限配置;
- 验证权限:打开「命令提示符」,执行
net localgroup administrators
,若列表中包含Admin
,则权限配置成功。
(命令行快捷创建)通过管理员命令提示符执行:
# 创建用户Admin,密码设为Admin@123(实际使用需替换为复杂密码) net user Admin Admin@123 /add # 将Admin添加到管理员组(赋予管理员权限) net localgroup administrators Admin /add # 验证是否加入管理员组 net localgroup administrators | findstr "Admin"
2️⃣ 核心操作:通过runas命令切换用户命令行环境
runas
是Windows内置命令,可在当前系统会话中以指定用户身份启动程序(如cmd),无需注销切换用户。核心通过Win+R调用运行窗口执行命令,步骤如下。
2.1 runas命令基础语法
切换用户命令行环境的通用语法:
runas /user:用户名 cmd
关键参数说明:
/user:用户名
:指定目标用户(本地用户需加计算机名前缀,如当前计算机名为WIN10-TEST
,则完整用户名为WIN10-TEST\Test
;若为域用户,需加域前缀);cmd
:指定启动的程序为命令提示符(即切换到目标用户的cmd环境);
补充参数(可选):/savecred
:保存用户凭证(仅首次输入密码,后续无需重复输入,需管理员权限启用);/noprofile
:不加载用户配置文件(启动速度更快,适合仅需基础环境的场景)。
2.2 切换至普通用户Test的cmd环境
模拟普通用户权限执行测试,操作步骤:
- 按下
Win+R
组合键,打开「运行」窗口;- 输入以下命令(需替换
[计算机名]
为实际Windows计算机名,可通过hostname
命令查询):示例(计算机名为runas /user:[计算机名]\Test cmd
WIN10-TEST
):runas /user:WIN10-TEST\Test cmd
- 点击「确定」后,会弹出新的命令提示符窗口,提示“输入Test的密码:”;
- 输入创建Test用户时设置的密码(输入时无明文显示,输完按回车即可);
- 验证环境:若新cmd窗口标题显示“Administrator: C:\Windows\system32\cmd.exe”(普通用户默认不显示管理员标识),且执行
whoami
命令输出[计算机名]\test
,则切换成功。
2.3 切换至管理员用户Admin的cmd环境
模拟管理员权限执行测试,操作步骤:
- 按下
Win+R
组合键,打开「运行」窗口;- 输入以下命令(替换
[计算机名]
为实际计算机名):示例(计算机名为runas /user:[计算机名]\Admin cmd
WIN10-TEST
):runas /user:WIN10-TEST\Admin cmd
- 点击「确定」后,弹出新的命令提示符窗口,输入Admin用户的密码(输完按回车);
- 验证环境:执行
whoami
命令,输出[计算机名]\admin
;执行net localgroup administrators | findstr "Admin"
,若有结果则确认管理员权限生效;新cmd窗口标题通常会显示“Administrator: C:\Windows\system32\cmd.exe”(管理员标识)。
3️⃣ 测试执行:在不同用户环境下测试记事本写入文件
切换至目标用户的cmd环境后,需通过命令行调用Test.exe,观察运行结果(如是否报错、功能是否正常、日志是否符合预期),完成权限覆盖测试。
3.1 普通用户Test环境
验证Test.exe在低权限环境下的兼容性,步骤:
- 按
Win+R
打开运行窗口,输入runas /user:Test cmd
,然后点击《确定》按钮,打开命令行窗口:
- 命令行中输入密码Test@123,将打开新的命令行窗口:
- 在新的命令行窗口中输入
notepad.exe
,回车运行记事本。- 随便输入内容123,点击保存,选择C盘根目录,点击保存,将提示
没有权限
。
3.2 管理员用户Admin环境
验证在高权限环境下的运行结果,步骤跟Test环境一样的,只是最后能正常保存!
3.3 禁用测试账号
测试结束后,安全起见,我们禁用两个使用中的账号。
net user Admin /active:no
net user Test /active:no
后续如需继续使用账号,可以通过下面命令开启
net user Admin /active:yes
net user Test /active:yes
🛬 文章小结
- 核心流程:通过“创建差异化权限用户→runas切换cmd环境→调用Test.exe测试”,实现高效权限覆盖测试,无需注销切换系统用户;
- 关键注意事项:
- 创建用户时需明确权限边界(普通用户设为“标准用户”,管理员用户加入管理员组);
- runas命令需带计算机名前缀(本地用户),密码输入时无明文显示,需确保输入正确;
- 调用Test.exe时建议使用绝对路径,避免因用户环境不同导致的路径解析差异;
- 测试重点:普通用户环境关注“权限不足”场景,管理员环境关注“高权限功能稳定性”,两者结果对比可发现权限设计问题;
- 效率优化:若需频繁测试,可将runas命令保存为批处理文件(如
Test_User.cmd
、Admin_User.cmd
),双击即可快速切换环境。
📖 参考资料
- Microsoft 官方文档:runas 命令用法
- 如何启用和禁用Administrator账户,windows专业版和家庭版:https://zhuanlan.zhihu.com/p/668649208
ps: 文章中内容仅用于软件测试、系统管理等合法技术场景,操作时需遵守企业IT管理规范,不得用于未经授权的系统访问或权限滥用。