我们将软件的一个组件作为MSI发送给激活了AppLocker的客户。AppLocker启动导致安装失败。在我看来,问题是:
- AppLocker默认规则只允许管理员安装MSI文件
- 根据设计,Windows安装程序首先运行无特权的MSI文件,然后才切换到更高的特权
所以安装程序对AppLocker来说"太晚了"。什么工作(只尝试了1-3):
- 以Admin身份打开命令提示符并运行MSI文件
- 创建AppLocker规则,允许普通用户从指定目录安装MSI
- 让setup.exe运行MSI并以管理员身份运行setup.exe
- 破解Windows为MSI文件创建一个"运行为"的上下文菜单项
- 将MSI打包成一个自提取的EXE
所有这些都需要在客户端进行更改(2,4),不像安装(1,3)那样容易,或者是两倍的软件包(5)。(其他客户需要MSI进行部署。)
是否有一个简单的方法使MSI与AppLocker一起工作?
AppLocker是一个允许企业创建可以安装和执行哪些软件的保护策略的特性。这是你的客户造成的问题,他们需要在内部处理你的应用程序的白名单。
MSI和AppLocker完全按照设计运行。安全性和可用性成反比。(
是否有一个简单的方法使MSI与AppLocker一起工作?
是的,我的建议是对MSI进行数字签名。
有了数字签名,客户就可以创建一个发布者规则,允许该规则允许由您的公司签名的任何MSI从主机系统的任何位置安装。
引用:
了解AppLocker中的Publisher Rule条件
https://technet.microsoft.com/en-us/library/ee460943 (v = ws.11) . aspx
Windows Installer Rules in AppLocker
https://technet.microsoft.com/en-us/library/ee460957 (v = ws.11) . aspx