【使用RUNAS指定脚本以管理员权限执行,但是实际运行效果与选中文件右键->以管理员方式运行不同】

使用RUNAS指定脚本以管理员权限执行,但是实际运行效果与选中文件右键->以管理员方式运行不同

背景

在部署CI时,其中在工程编译脚本,需要以“管理员方式”运行,首先想到的就是使用RUNAS指定用户
当使用选中脚本—>右键—>以管理员方式执行,所有工程编译通过;
当使用RUNAS指定管理员执行编译, runas /savecred /user:Administrator xxx.bat, RUNAS命令执行成功,但是部分工程却出现编译失败问题(CS0518等错误问题)
在这里插入图片描述

RUNAS /user:Administrator不起作用。进行UAC关闭

UAC 概述
用户账户控制 (User Account Control, UAC) 是 Microsoft Windows 操作系统中的一项安全功能,旨在提高系统的安全性和稳定性。它通过限制应用程序的权限和访问级别,来防止恶意软件和未经授权的操作对系统的损害。

什么是用户账户控制 (UAC)
用户账户控制 (UAC) 是从 Windows Vista 开始引入的一项安全机制。它要求用户在执行需要管理员权限的操作时,明确地授予许可。这些操作包括安装软件、修改系统设置、访问敏感文件等。当用户尝试执行这些操作时,UAC 会弹出一个提示框,要求用户确认是否允许该操作。

UAC 的目的和作用
UAC 的主要目的是提高 Windows 系统的安全性,减少恶意软件对系统的损害。在过去,许多 Windows 用户习惯以管理员账户登录系统,这使得恶意软件能够轻松获得系统的最高权限,从而导致严重的安全问题。
通过引入 UAC,Windows 鼓励用户以标准用户身份运行日常任务,只在需要时临时提升权限。这种最小权限原则可以有效限制恶意软件的影响范围,即使恶意软件侵入系统,也难以获得管理员权限,从而保护系统的关键部分免受损害。

UAC 的工作原理
UAC 的工作原理基于用户账户的权限分离和权限提升机制。在启用 UAC 的情况下,即使用户以管理员身份登录,应用程序也会以标准用户权限运行。当应用程序需要执行需要管理员权限的操作时,UAC 会弹出提示框,要求用户明确授权。
具体而言,UAC 使用了两种不同的令牌 (Token) 来表示用户的权限:访问令牌 (Access Token) 和完整令牌 (Full Token)。访问令牌表示标准用户权限,完整令牌表示管理员权限。当用户登录时,系统会同时创建这两种令牌,但默认情况下,应用程序只能使用访问令牌。
当应用程序请求提升权限时,UAC 会切换到安全桌面 (Secure Desktop),显示 UAC 提示框。这个安全桌面是一个独立的桌面会话,其他应用程序无法与之交互,以防止恶意软件模拟用户点击授权。如果用户选择允许,UAC 会使用完整令牌重新启动应用程序,使其获得管理员权限。

解决方案

(1)打开组策略 gpedit.msc

计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项 → 用户账户控制:以管理员批准模式运行所有管理员

(2)将值修改成 禁用(注意:这样相当于关闭了 UAC 功能)
在这里插入图片描述
(3)执行脚本时,可以不用再使用RUNAS /user:Administrator, 同样具有管理员权限
cd /d E:/ExampleFD && runas /savecred /user:Administrator Example.bat, 可以改成 cd /d E:/ExampleFD && Example.bat即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值