无人参与(命令行)安装,强制接受EULA
-
28-09-2019 - |
题
我有一个正在使用的安装项目,并且已在用户界面中添加了EULA。我需要通过运行安装程序来支持无人值守(命令行)安装和GUI安装。在GUI安装中强制执行EULA,但在无人参与的安装中则不执行。
当前,我以以下格式运行命令行安装,并传入自定义操作中使用的参数:
MSIEXEC / i ProjectSetup.msi / qn / l * log.txt Param1=“ Foo” Param2= Bar
在最坏的情况下,我想我可能需要一个附加参数“ AcceptEULA”,如果在进行命令行安装时找不到该炸弹,则会退出安装。任何人都可以提供的任何指导都将不胜感激。
解决方案
每个人都应该意识到,不能将Param1 Param2和AcceptEULA传递给MSI。只能传递ACCEPTEULA之类的公共属性(全部大写)。
MSI可以通过使用LaunchCondition轻松完成此操作,该启动条件可以关闭自定义属性(例如ACCEPTEULA和内置属性UILevel)。目标是仅在UILevel= 5或ACCEPTEULA= 1或已经(已)安装产品的情况下允许安装
条件:
UILevel= 5或ACCEPTEULA或已安装
您必须接受EULA才能安装[ProductName]。
公共属性: http://msdn.microsoft.com/en-us /library/aa370912(VS.85).aspx
启动条件: http://msdn.microsoft.com/en-us /library/aa369752(VS.85).aspx
UILevel: http://msdn.microsoft.com/en-us /library/aa372096(VS.85).aspx
其他提示
启动GUI时,在第一次运行时显示EULA。例如。就像各种sysinternals工具一样(FileMon,RegMon等)。好的想法是它可以与xcopy部署一起使用。
我通常认为单击“接受”与仅使用该软件相比没有任何法律约束力。在某些辖区,接受EULA是赋予用户安装/运行软件的权利。
否则,我只是对安装程序进行了调整,因此它永远不会显示EULA,因此我不受它们的束缚。