通过Intune部署时忽略CustomAction和MSI属性

本文关键字:CustomAction MSI 属性 Intune 部署 通过 | 更新日期: 2023-09-27 18:04:55

我有一个奇怪的场景,我有一个c# Windows Forms应用程序和一个在VS 2015中构建MSI的设置项目。

在Windows窗体项目中,我已经创建并正确设置了InstallerClass.cs,在设置项目中,我已经配置了一个安装自定义动作并设置CustomActionData为:/CODE="[CODE]"/GROUP="[GROUP]",并且InstallerClass属性设置为true。

当在命令提示符中运行安装程序时:"msiexec/i/qb myapp. exe"。msi/COMPANYCODE=12345/GROUP=Test"它工作得很好,我可以在InstallerClass的Install函数中获得COMPANYCODE和GROUP属性,它们被填充为12345和Test。然后在Installer函数中,我可以使用这些值并根据需要执行自定义操作(在本例中,将其写下来以供以后使用)。

但是,当我通过Microsoft Intune部署msi时,参数完全被忽略,并且在InstallClass的Install函数中为空…你对此有什么建议吗?

我可以看到CustomAction表在MSI与Orca打开时:虎鲸表视图图片提前感谢!

敬祝Richard

通过Intune部署时忽略CustomAction和MSI属性

检查详细日志以确定,并注意我正在黑暗中尝试,因为我不熟悉Intune如何启动事物,但我猜您没有将属性CODEGROUP标记为Secure="yes"(或COMPANYCODE;你的问题是矛盾的)。当属性不安全时,某些情况将不允许将其传递给执行序列。

查看微软的SecureCustomProperties属性。

问题很可能是这些属性值没有被转移到安装的执行部分,因为它们没有被标记为安全。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa371571 (v = vs.85) . aspx

在Visual Studio设置中不支持此功能,因此您需要使用Orca之类的工具编辑MSI文件。转到属性表,查看SecureCustomProperties,它可能是:

SecureCustomProperties PREVIOUSVERSIONSINSTALLED; NEWERPRODUCTFOUND

,您需要添加CODE和GROUP,分号分隔。