问题场景描述

公司的所有电脑都加了域,防止有些不安分的员工擅自下载及安装一些其他软件,导致电脑变卡或者中毒等,所以加了域后,安装任何软件都由IT来安装,但是这里涉及到一个问题,安装的时候需要管理员密码,但是某些软件(不在少数),不知为何在运行时竟然需要管理员权限,例如:美图秀秀。若该软件使用人员较多,又不能把管理员密码给他们,那只能由管理员手工输入,这样的话IT人员一天到晚就输入密码了。显然,这是不可取的,那么如何解决这个问题?

较麻烦的解决方案(最能满足要求):Windows ADKWindows ADK:Windows 评估和部署工具包

包含了原Microsoft Application Compatibility Toolkit,此工具包具有很多的功能,这次仅用其中的"应用程序兼容工具":Compatibility Administrator,执行以后,以后在这台电脑上登录的所有用户运行指定程序都不再需要管理员密码。

下载地址

win11: https://docs.microsoft.com/zh-cn/windows-hardware/get-started/ADK-install 其他windows: https://docs.microsoft.com/zh-cn/windows-hardware/get-started/adk-install

步骤

下载后只需要勾选安装 “应用程序兼容行工具”

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(1)

一、Custom Database —— New Database(右键) —— Create New —— Application fix

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(2)

二、依次输入程序名称,描述,选择程序路径

(这里以bandicam为例,需要注意ADK安装后分32位和64位,要和程序匹配

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(3)

三、Additional compatibility modes —— 勾选 RunAsInvoker(对于某些软件,例如:美图秀秀,只勾选RunAsInvoker)也可以选择 RunAsAdmin。

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(4)

四、一直下一步到完成五、save —— 输入名称 —— 选择存储路径

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(5)

六、File —— Install

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(6)

不足

1.部分软件不支持,例如:360壁纸(小鸟壁纸)。2.此工具未与域结合,似乎能不批量操作,只能在每台电脑上逐一操作,如果软件较多,人员较多,会比较费时。

补充

RunAsInvoker – 在没有UAC提示符的情况下以父进程的特权运行应用程序; RunAsHighest – 运行具有用户最高级别权限的程序(如果用户具有管理员权限,将显示UAC提示); RunAsAdmin – 以管理员身份运行应用程序(每次都会出现UAC提示)。

使用RunAsTool这个工具提升权限

这个软件可以网上搜索下载,打开会自动扫描本地具有管理权限的用户,

并输入密码,把要运行的软件的快捷方式直接拖过去

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(7)

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(8)

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(9)

选择 以管理员身份运行,之后编辑--创建快捷方式,用新创建的快捷方式打开软件。

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(10)

常用的解决方案:runas / runasspc / cpaurunas

使用 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:域\用户 程序路径

不足
  1. 有的程序使用 runas 还是无法执行,例如:美图秀秀。
  2. 当使用脚本时,包含 runas 的 bat 脚本中管理员账号密码是明文,可以使用 runasspc 进行包装,生成 exe 从而实现加密。
runasspc

第三方工具,可以代替 runas,解决 runas 中账号密码明文问题,与 cpau 类似,会生成一个加密文本,用于存储程序位置,帐号及密码,且使用一个 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

不足
  1. 在使用网络路径时会有问题。
  2. 有的程序,仍旧无法运行,例如:美图秀秀。
不好的解决方案:将域用户加入本地 administrators 组

有人说这个没办法解决,因为 Microsoft 或 域 并没有提供这样的解决方案,建议将使用该电脑的域用户加入本地电脑的administrators 组。但是每当这个电脑换一个员工使用,并且同样拥有这样的软件,那么也得将域用户加入 administrators 组,且用户将拥有本地电脑的所有权限,包括安装软件。有人又说,这个可以通过组策略或者其他方式来禁止用户安装软件。但是对于一个不清楚"administrator 权限"和"普通用户权限"的人员来说,又增加了维护的难度。在普通用户权限上做加法更容易,还是在"administrator 权限"上做减法更容易?至少对于目前来说,个人时是不太喜欢这种方式的。

ad域账号是什么(AD域允许普通用户打开需要管理员权限的软件)(11)

,