【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(无管理员权限)

普通用户用于模拟常规用户场景,仅拥有基础系统操作权限,步骤如下:

  1. 打开「控制面板」→ 进入「账户」→ 点击「其他账户」→ 选择「添加新用户」;
    在这里插入图片描述
  2. 在「本地用户和组」下面,右键点击「用户」;
    在这里插入图片描述
  3. 选择「新用户」,弹出创建用户的对话框;
  4. 输入用户名Test,设置密码(需符合Windows密码复杂度要求,如包含大小写+数字),完成创建;
    在这里插入图片描述

命令行快捷创建)若需快速操作,可通过管理员命令提示符执行:

# 创建普通用户Test,密码设为Test@123(实际使用需替换为复杂密码)
net user Test Test@123 /add
# 确认用户创建成功(查看用户列表)
net user

在这里插入图片描述

1.2 创建管理员用户Admin(含管理员权限)

管理员用户用于模拟高权限场景,需拥有系统级操作权限(如修改配置、访问受限目录),步骤如下:

  1. 重复1.1的前4步,创建用户名为Admin的本地用户;
  2. 然后右键点击Admin用户 → 选择「属性」;
  3. 按照下面步骤完成权限配置;
    在这里插入图片描述
  4. 验证权限:打开「命令提示符」,执行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环境

模拟普通用户权限执行测试,操作步骤:

  1. 按下Win+R组合键,打开「运行」窗口;
  2. 输入以下命令(需替换[计算机名]为实际Windows计算机名,可通过hostname命令查询):
    runas /user:[计算机名]\Test cmd
    
    示例(计算机名为WIN10-TEST):
    runas /user:WIN10-TEST\Test cmd
    
  3. 点击「确定」后,会弹出新的命令提示符窗口,提示“输入Test的密码:”;
  4. 输入创建Test用户时设置的密码(输入时无明文显示,输完按回车即可);
  5. 验证环境:若新cmd窗口标题显示“Administrator: C:\Windows\system32\cmd.exe”(普通用户默认不显示管理员标识),且执行whoami命令输出[计算机名]\test,则切换成功。

2.3 切换至管理员用户Admin的cmd环境

模拟管理员权限执行测试,操作步骤:

  1. 按下Win+R组合键,打开「运行」窗口;
  2. 输入以下命令(替换[计算机名]为实际计算机名):
    runas /user:[计算机名]\Admin cmd
    
    示例(计算机名为WIN10-TEST):
    runas /user:WIN10-TEST\Admin cmd
    
  3. 点击「确定」后,弹出新的命令提示符窗口,输入Admin用户的密码(输完按回车);
  4. 验证环境:执行whoami命令,输出[计算机名]\admin;执行net localgroup administrators | findstr "Admin",若有结果则确认管理员权限生效;新cmd窗口标题通常会显示“Administrator: C:\Windows\system32\cmd.exe”(管理员标识)。

3️⃣ 测试执行:在不同用户环境下测试记事本写入文件

切换至目标用户的cmd环境后,需通过命令行调用Test.exe,观察运行结果(如是否报错、功能是否正常、日志是否符合预期),完成权限覆盖测试。

3.1 普通用户Test环境

验证Test.exe在低权限环境下的兼容性,步骤:

  1. Win+R打开运行窗口,输入runas /user:Test cmd,然后点击《确定》按钮,打开命令行窗口:
    在这里插入图片描述
  2. 命令行中输入密码Test@123,将打开新的命令行窗口:
    在这里插入图片描述
  3. 在新的命令行窗口中输入notepad.exe,回车运行记事本。
  4. 随便输入内容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

🛬 文章小结

  1. 核心流程:通过“创建差异化权限用户→runas切换cmd环境→调用Test.exe测试”,实现高效权限覆盖测试,无需注销切换系统用户;
  2. 关键注意事项
    • 创建用户时需明确权限边界(普通用户设为“标准用户”,管理员用户加入管理员组);
    • runas命令需带计算机名前缀(本地用户),密码输入时无明文显示,需确保输入正确;
    • 调用Test.exe时建议使用绝对路径,避免因用户环境不同导致的路径解析差异;
  3. 测试重点:普通用户环境关注“权限不足”场景,管理员环境关注“高权限功能稳定性”,两者结果对比可发现权限设计问题;
  4. 效率优化:若需频繁测试,可将runas命令保存为批处理文件(如Test_User.cmdAdmin_User.cmd),双击即可快速切换环境。

📖 参考资料

  • Microsoft 官方文档:runas 命令用法
  • 如何启用和禁用Administrator账户,windows专业版和家庭版:https://zhuanlan.zhihu.com/p/668649208

ps: 文章中内容仅用于软件测试、系统管理等合法技术场景,操作时需遵守企业IT管理规范,不得用于未经授权的系统访问或权限滥用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95751.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新后端漏洞(上)- H2 Database Console 未授权访问

漏洞介绍: H2 database是一款Java内存数据库,多用于单元测试。 H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权: spring.h2…

2025-09-04 HTML3——区块布局与表单

文章目录1 块元素与行内元素1.1 块元素 (Block-level Element)1.2 行内元素 (Inline Element)2 HTML 布局2.1 使用 <div> 元素2.2 使用 <table> 元素3 表单 (<form>)3.1 输入域&#xff08;<input>&#xff09;3.1.1 文本域&#xff08;Text Fields&am…

云数据库服务(参考自腾讯云计算工程师认证课程)更新中......

数据库基础介绍面临的挑战&#xff1a;数据库系统架构&#xff1a; 数据库DB、数据库管理系统DBMS&#xff08;负责数据库的搭建、使用和维护的系统软件&#xff0c;通过组织、索引、查询、修改数据库文件、实现数据定义、组织、存储、管理以及数据库操作、运行和维护等主要功能…

源滚滚AI编程SillyTavern酒馆配置Claude Code API教程

什么是酒馆 SillyTavern&#xff08;简称 ST&#xff09;是一款本地安装的用户界面&#xff0c;让你能够与文本生成大模型&#xff08;LLM&#xff09;、图像生成引擎以及语音合成&#xff08;TTS&#xff09;模型进行交互。我们的目标是尽可能赋予用户对 LLM 提示词的最大掌控…

软件设计师——软件工程学习笔记

软件工程 一、软件工程基础知识 1. 软件的生存周期&#xff08;1&#xff09;可行性分析与项目开发计划。这个阶段主要确定软件的开发目标及其可行性。参与该阶段的人员有用户、项目负责人、系统分析师。产生的文档有 可行性分析报告、项目开发计划。 &#xff08;2&#xff09…

阿里云ecs 2h2g 实际可用内存不足的情况

Kdump是Linux系统的一种内核崩溃转储机制&#xff0c;它允许在系统发生内核崩溃&#xff08;例如内核panic&#xff09;时&#xff0c;捕获内存的转储信息&#xff0c;从而帮助事后分析故障原因。该过程需要一块预留内存&#xff08;称为crashkernel内存&#xff09;&#xff0…

MySQL抛出的Public Key Retrieval is not allowed

有时候在连接实例的时候会遇到这样的报错Public Key Retrieval is not allowed问题分析这是因为账号使用了sha256_password或者caching_sha2_password 密码插件而sha256_password或者caching_sha2_password 插件为了加快认证过程&#xff0c;在服务端维护了一个密码哈希缓存。当…

ICP可能有用的

可以训练GICP WGICP: Differentiable Weighted GICP-Based Lidar Odometry | GAMMA CT ICP (99 封私信 / 80 条消息) KITTI里程计排行榜上第五&#xff01;CT-ICP&#xff1a;实时弹性激光雷达里程计与回环检测 - 知乎 Faster GICP github.com

nextcyber——Shells和Payloads

Shells和Payloads Shell的基础知识 正向Shells Tom可以在一个Linux目标上发出nc -lvnp 443的命令。他需要从他的攻击机连接到哪个端口&#xff0c;才能成功建立一个shell会话&#xff1f; 443SSH到目标&#xff0c;创建一个bind shell&#xff0c;然后用netcat连接到目标&a…

笔记:现代操作系统:原理与实现(2)

第三章 操作系统结构 操作系统的机制与策略 操作系统乃至计算机系统中控制复杂度的—个重要设计原则是:将策略与机制相分离&#xff0c;其中策略&#xff08;policy&#xff09;表示要‘‘做什么”&#xff0c;机制&#xff08;mechanjsm&#xff09;表示该“如何做”。 操作系…

c++ 压缩与解压缩

1、使用zip开源库&#xff0c;引入比较简单&#xff0c;只需要包含四个头文件&#xff0c;不需要编译成库文件&#xff1a;zip.h、zip.cpp、unzip.h、unzip.cpp。2、压缩使用到的主要函数&#xff1a;CreateZip 创建zip文件ZipAdd 添加文件ZipAddFolder 添加文件夹CloseZip 关闭…

水下无线光通信(UWOC)TDD系统:光收发端编解码与信号处理分析与方案(数字版)

在光收发模块中添加编解码与信号处理模块,核心目标是提升水下信道抗干扰能力(对抗后向散射、环境光、信号衰减)、降低误码率,同时兼容原有TDD时隙控制逻辑。以下从“编码方案选型”“光发送端信号处理”“光接收端信号处理”“与原有系统集成”四部分展开,形成完整技术闭环…

Seat 事务@GlobalTransactional传播行为

一&#xff0c;分布式事务传播行为调用链描述一个普通事务注解的方法&#xff0c;调用一个分布式事务注解方法分布式事务注解方法&#xff1a;包含一个本地更新&#xff0c;和两个外部服务更新操作&#xff0c;涉及三个服务问题1&#xff0c;普通事务注解方法&#xff0c;在全局…

美团龙猫利用expat库实现的保存xml指定范围数据到csv的C程序

用自己代码逐个字符解析的速度较慢&#xff0c;尝试了libxml2也比较慢&#xff0c;它需要一次性读入内存&#xff0c;而expat库支持流式读取。就让龙猫写了一个程序&#xff0c;毕竟是久经考验的库&#xff0c;程序很快就调试通过了。要不是我一开始没信心&#xff0c;让他先输…

Transformer核心—自注意力机制

Transformer基础—自注意力机制 当我们处理文本、语音这类序列数据时&#xff0c;总会遇到一个老问题&#xff1a;模型到底该怎么理解“前后文”呢&#xff1f; RNN 和 LSTM 曾经是热门的答案&#xff0c;它们沿着时间顺序一点点地读数据&#xff0c;但读得太慢&#xff0c;还容…

分片上传-

分片上传原理&#xff1a;客户端将选择的文件进行切分&#xff0c;每一个分片都单独发送请求到服务端&#xff1b;断点续传 & 秒传原理&#xff1a;客户端 发送请求询问服务端某文件的上传状态 &#xff0c;服务端响应该文件已上传分片&#xff0c;客户端再将未上传分片上传…

零知开源——基于STM32F103RBT6的智能风扇控制系统设计与实现

✔零知IDE 是一个真正属于国人自己的开源软件平台&#xff0c;在开发效率上超越了Arduino平台并且更加容易上手&#xff0c;大大降低了开发难度。零知开源在软件方面提供了完整的学习教程和丰富示例代码&#xff0c;让不懂程序的工程师也能非常轻而易举的搭建电路来创作产品&am…

ReACT Agent概述

目录 1. 核心思想&#xff1a;解决传统方法的局限性 2. ReACT 的工作原理&#xff1a;一个循环过程 3. 技术实现的关键要素 4. ReACTAgent 在任务中的具体工作流程 5. 优势与重要性 6. 挑战与局限性 总结 ReACT 是一个非常重要的框架&#xff0c;它代表了构建能够推理&a…

必知!机器人的分类与应用:RPA、人形与工业机器人

每当提及“机器人”这三个字&#xff0c;许多人的第一反应或许仍是科幻电影中那种具备人类外形、可自由行走与对话的仿生装置。然而&#xff0c;一个值得深入探讨的科技现实是&#xff1a;我们对于人形机器人的迷恋&#xff0c;更多源自文化叙事与情感投射&#xff0c;而非真实…

最快的 C 语言 JSON 库 - yyjson

文章目录DOM 模式下的性能比对一、AWS EC2 (AMD EPYC 7R32, gcc 9.3)二、iPhone (Apple A14, clang 12)持续更新中 持续更新中 持续更新中一个用 ANSI C(C89) 编写的高性能 JSON 库 API.md DOM 模式下的性能比对 DOM 模式&#xff0c;即构建完整 JSON 内存结构后访问数据的模…