场景描述
公司的电脑都加了域,回收管理员权限防止用户滥用,所以安装任何软件都由IT来安装。但是这里涉及到一个问题,安装的时候需要管理员密码,但是某些软件(不在少数),不知为何在运行时竟然需要管理员权限。若该软件使用人员较多,又不能把管理员密码给他们,那只能由管理员手工输入,这样的话IT人员一天到晚就输入密码了。
显然这样傻傻的,尝试了很多方案在这记录一下。
一、Windows ADK 评估和部署工具包
Windows ADK是微软最新发布的用于Windows 部署是的一个工具包,这个工具主要用于在企业和OEM厂商中执行大规模的Windows部署。 在以前用于大规模部署时用到的工具主要是OPK和WAIK,而Windows ADK不仅包含了这些工具,还包含了Windows 预安装环境、部署映像、服务和管理以及Windows 系统映像管理器。
Windows ADK 中可用的功能包括:应用程序兼容性工具包 (ACT)、部署工具、用户状态迁移工具 (USMT)、批量激活管理工具 (VAMT)、Windows 性能工具包 (WPT)、Windows 评估服务、Windows 预安装环境 (Windows PE)。
此工具包具有很多的功能,这次仅用其中的"应用程序兼容工具":Compatibility Administrator,执行以后,以后在这台电脑上登录的所有用户运行指定程序都不再需要管理员密码。
下载地址
使用步骤
- Custom Database —— New Database(右键) —— Create New —— Application fix
- 依次输入程序名称,描述,选择程序路径
- Additional compatibility modes —— 只勾选RunAsInvoker 一直下一步到完成
- save —— 输入名称 —— 选择存储路径
- File —— Install
不足
- 部分软件不支持;
- 只是跳过UAC控制,没权限的功能还是没权限;
- 32位应用要安装32位工具、64位应用要安装64位工具;
- 未与域结合,不能批量操作,只能在每台电脑上逐一操作,如果软件较多,人员较多,会比较费时。
补充
RunAsInvoker – 在没有UAC提示符的情况下以父进程的特权运行应用程序;
RunAsHighest – 运行具有用户最高级别权限的程序(如果用户具有管理员权限,将显示UAC提示);
RunAsAdmin – 以管理员身份运行应用程序(每次都会出现UAC提示)。
二、runas / cpau
runas
使用 Windows 内部命令 runas,通常可以使用它来执行安装程序,即可不用切换用户来安装。有关 runas 命令请参考 Microsoft 官方文档:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc771525(v=ws.11),本文只做简要介绍。
命令参考
域管理员认证:
runas /profile /env /user:域\用户 程序路径
不足
- 有的程序使用 runas 还是无法执行;
- 运行使用较为繁琐;
- 当使用脚本时,包含 runas 的 bat 脚本中管理员账号密码是明文,如果要使用,建议加密或转 exe。
cpau
第三方工具,可以代替 runas,解决 runas 中账号密码明文问题,它会将程序位置,账号及密码,加密存储到一个文本文件中,再调用文本文件来执行程序。
命令参考
域管理员认证:
d:\cpau.exe -u 域\拥有域管理员权限的用户 -p 密码-ex 程序路径 -lwp -enc -file 加密后的文本文件存储路径
本机管理员认证:
d:\cpau.exe -u .\拥有本机管理员权限的用户 -p 密码-ex 程序路径 -lwp -enc -file 加密后的文本文件存储路径
执行程序:
d:\CPAU.exe -dec -file 加密后的文本文件存储路径 -lwp
不足
- 在使用网络路径时会有问题;
- 有的程序,仍旧无法运行。
三、RAAdmin
原理
RAAdmin是一个vb.net写的小工具,可以将计算机本地管理员账号和密码简单加密后保存在机器的注册表中,并以保存的账号密码(本地管理员)运行指定的程序
为了防止随意替换可执行文件exe,导致随便启动任意软件,RAAdmin有对添加的以设置的账号密码运行的可执行文件EXE检验。
下载地址
使用步骤
安装(安装请不要更改默认安装路径)后首次打开需以管理员身份运行,然后设置一个密码(软件打开时需输入正确的密码才能进到“设置”),即可进入软件“设置”。
不足
- 使用管理员权限为本地管理员帐号;
- 利用保存的管理员账号密码启动了程序,程序可能默认把数据保存在本地管理员账号的用户目录下。
补充
软件会使用这两处的注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\WDPH\RAAdmin
HKEY_CURRENT_USER\Software\WDPH\RAAdmin
四、计划任务运行程序
原理
如果用户可以访问图形界面,Windows任务计划程序可能被绕过用户帐户控制(UAC)。这是由于当用户创建新任务时,具有最高权限的安全性选项不需要用户使用管理员帐户进行身份验证。
手工添加计划任务
这里简单讲讲手工添加的方法,了解原理,多了还是得用工具
创建任务计划
- 右键 [开始菜单] 点击 [计算机管理]
- 选择 [任务计划程序库] - [创建任务]
- 计划任务名称随意,但后面会用到。记得勾选 [使用最高权限运行]
- 然后去 [操作] 选项卡中点击 [新建] 按钮
- 填写程序路径 或通过 [浏览] 选择程序后,点击 [确定]
- 最后点击 [确定] 保存就行了
创建快捷方式
总不能每次运行都要去 [任务计划程序] 中运行吧?接下来可以创建一个快捷方式来方便我们运行。
桌面右键新建快捷方式,快捷方式的位置填写为:
schtasks.exe /run /tn "计划任务名称"
例如:
schtasks.exe /run /tn "RunCMDAdmin"
然后下一步,为快捷方式起个名字点击完成保存就行了。
以后通过双击创建的快捷方式运行程序,就不会弹出 UAC 并且 [以管理员身份运行] 了。
开源工具批量添加
要添加到程序多的话我们不可能挨个去添加,这时可以使用根据这个原理制作的小工具来批量添加。
下载地址
使用步骤
- [拖拽] 或 [浏览] 选择一个应用程序 (.exe) 或快捷方式 (.lnk) 。
- [程序名称] 随意,但必须唯一 不可重复。
- [启动参数] 与 [起始位置] 均可选。
- [添加至 UAC 白名单] 后,[桌面] 就会出现一个快捷方式,只有通过该快捷方式运行才不提示 UAC!(运行后默认拥有管理员权限)
注意:生成于桌面的快捷方式可以复制、移动、重命名,不影响使用!
注意:为了方便寻找和删除,添加白名单时 [程序名称] 前会添加 [noUAC.] 标识。
另外,因为添加任务计划必须要有管理员权限,所以工具启动时会提示 UAC,但是可以把工具添加到白名单中!(为了安全建议不要将小工具添加计划任务)
补充
运行提示 .NET 错误?
小工具最低依赖是 .NET Framework 4.5,报错说明你系统的该依赖版本低于 4.5(Win10 默认满足该依赖),请安装更高版本的 .NET Framework
不足
- 只能对制作好了的快捷方式启动时才会生效
五、待补充
欢迎评论留言补充