我正在尝试打包一个使用 InstallShield 安装程序的软件。我尝试过/r
获取C:\Windows\setup.iss
文件,然后通过以下方式调用包
start "" /wait %~dp0setup.exe /s /SMS /f1"%~dp0setup.iss"
来自批处理文件。所有文件都放在 WinRAR sfx 中并提取到 C:\Temp\ 文件夹中。
此设置在以管理员身份运行时运行良好,但从 SCCM 部署时无法运行。我已将此问题缩小到 SCCM 在 SYSTEM 帐户下运行其软件包的事实。我使用 psexec 重现了该问题,使用以下命令运行 exe
psexec \\localhost -s -i -h \\path\to\setup.exe
启动时一切正常,但刚开始安装时就出现错误-3 The system cannot find the path specified
。我使用过 procmon,但找不到它要查找的路径,因此无法找到系统帐户无法使用的原因。
我从 Google 上看到其他环境在使用其他 InstallShield 包时也存在此问题,但我还没有发现明确的问题,因此也没有解决方法或解决方案。
答案1
我在使用 Pixelogic Sculptris 的 installshield 安装程序时也遇到了问题。
问题在于 SCCM 在运行时使用 SYSTEM 帐户的方式,就像设置了“以管理员权限运行”一样。这就是为什么我以自己的身份运行缓存文件夹(指向 iss 文件)中的批处理文件并“以管理员身份运行”可以正常工作,但从 Advertised Programs 中启动该程序却不行。
如果我将程序设置为以用户权限运行,则没有问题。
不幸的是,有些环境不允许普通用户帐户成为管理员。我希望有办法解决这个问题。