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

问题描述 投票:0回答:3

我有一个奇怪的场景,我有一个 C# Windows 窗体应用程序和一个在 VS 2015 中构建 MSI 的安装项目。

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

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

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

用 Orca 打开时,我可以在 MSI 中看到 CustomAction 表: Orca table view picture 提前非常感谢!

最诚挚的问候,理查德

c# wix windows-installer custom-action intune
3个回答
2
投票

检查详细日志以确保确定,请注意,我是在摸索,因为我不熟悉 Intune 如何启动事物,但我猜您还没有标记属性

CODE
GROUP 
Secure="yes"
(或者可能为
COMPANYCODE
;你的问题与这些有关)。当属性不安全时,某些情况下将不允许将其传递给执行序列。有关 Microsoft 的信息,请参阅 SecureCustomProperties 属性


0
投票

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

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

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

SecureCustomProperties 先前安装的版本;发现新产品

您需要添加代码和组,以分号分隔。


0
投票

我也遇到了和你一样的问题。经过多方排查,发现原因是intune部署的文件路径不能是相对的,也不能通过调用方法获取,如图 $installDir =[System.Environment]::GetFolderPath('MyDocuments') × $installDir = "C:\Users\kdan\Documents" √ 居然收到参数了

© www.soinside.com 2019 - 2024. All rights reserved.