新解决方案

为解决此问题,摸索开发出新的解决方式。
哔哩哔哩(中文):https://www.bilibili.com/video/BV1iG411m744/

问题场景描述

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

较麻烦的解决方案(最能满足要求):Windows ADK

Windows ADK:Windows 评估和部署工具包

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

下载地址

下载地址:https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install
应用程序兼容性工具包技术参考地址:https://docs.microsoft.com/en-us/windows/win32/win7appqual/application-compatibility-toolkit--act-

步骤

一、Custom Database —— New Database(右键) —— Create New —— Application fix
二、依次输入程序名称,描述,选择程序路径
三、Additional compatibility modes —— 勾选 RunAsInvoker(对于某些软件,例如:美图秀秀,只勾选RunAsInvoker)
四、一直下一步到完成
五、save —— 输入名称 —— 选择存储路径
六、File —— Install

不足

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

补充

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

常用的解决方案:runas / runasspc / 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:域\用户 程序路径

不足

  1. 有的程序使用 runas 还是无法执行,例如:美图秀秀。

runasspc

第三方工具,可以代替 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 权限"上做减法更容易?至少对于目前来说,个人时是不太喜欢这种方式的。
举个栗子:
加法:一台台式电脑,没有蓝牙,那么可以加蓝牙模块;没有摄像头,可以加摄像头。一开始使用确实不便,缺什么补什么。
减法:一台笔记本电脑,所有东西都有,但是若要禁止使用/移除摄像头,如何做?开发软件禁止?直接拔掉?要移除本身的内存,更换更大的内存,结果发现是板载内存,如何做?拆主板,风枪换颗粒?这时候确实需要想一下。

其他

Windows AD域中还有由于程序本身不遵守规则而导致始终需要管理员权限的软件,例如下面这个软件:

最后修改:2024 年 11 月 06 日 03 : 34 PM
如果觉得文章帮助了您,您可以随意赞赏。