求助:如何在SCCM中无需检测方法部署MSI?脚本执行无响应
针对SCCM部署MSI检测失败及脚本失效的解决方案
首先明确:你完全可以在SCCM里部署这款MSI时跳过检测方法,但先得说清楚——检测方法是用来避免重复安装、确认安装状态的,跳过它可能会导致重复部署或无法验证安装结果,所以如果能修复检测方法是更稳妥的选择。不过先解决你当前脚本没效果的问题,再讲跳过检测的具体操作。
一、先排查脚本直接运行无效果的核心原因
你用的脚本msiexec /i "\jbocleit\SoftwareInstalls\Worksmart\FrontEnd.msi" /q大概率有这几个问题:
- 路径错误:UNC共享路径必须以两个反斜杠开头,你写的
\jbocleit\...少了一个,系统根本识别不了这个网络路径,正确格式应该是\\jbocleit\SoftwareInstalls\Worksmart\FrontEnd.msi。 - 权限不足:SCCM部署时默认用Local System账户执行,这个账户可能没有访问
\\jbocleit\SoftwareInstalls共享的权限。你需要给这个共享的共享权限和NTFS权限都添加Local System或者Domain Computers组的读取权限。 - MSI本身的问题:先在目标机器上手动运行修正后的命令
msiexec /i "\\jbocleit\SoftwareInstalls\Worksmart\FrontEnd.msi" /qn(/qn是完全静默,比/q更可靠),看看有没有报错。如果失败,去事件查看器的Windows日志 -> 应用程序里找MsiInstaller来源的错误日志,里面会有具体的失败代码和原因。
二、在SCCM中跳过检测方法部署的步骤
如果确实要跳过检测,按以下流程操作:
- 打开SCCM控制台,创建一个新的应用程序,选择“手动指定应用程序信息”。
- 进入“部署类型”创建环节,选脚本安装(不要选MSI安装程序,因为MSI类型会自动生成检测规则)。
- 在“安装程序”字段里输入修正后的静默命令:
msiexec /i "\\jbocleit\SoftwareInstalls\Worksmart\FrontEnd.msi" /qn。 - 到“检测方法”步骤时,选择无,然后一路下一步完成部署类型的创建。
- 最后把这个应用程序部署到你的目标设备集合即可。
三、更推荐的方案:修复检测方法
跳过检测毕竟是权宜之计,修复检测方法能让后续的软件管理更规范。常见的修复思路:
- 手动指定产品GUID:SCCM自动生成的检测方法可能没抓到正确的MSI产品GUID。你可以先手动安装一次MSI,然后打开注册表,去
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall(64位系统还要看Wow6432Node下的同一路径)找到对应Worksmart的项,里面的ProductCode就是产品GUID。回到SCCM的部署类型编辑界面,把检测方法改成“Windows Installer”类型,输入这个GUID即可。 - 检测关键文件/注册表项:如果MSI安装后不生成常规的卸载项,那就找一个安装后一定会生成的标志性文件(比如
C:\Program Files\Worksmart\FrontEnd.exe),在检测方法里添加“文件”类型的规则,指定文件路径和版本号(如果有版本信息的话);或者找安装时写入的特定注册表项来做检测。
内容的提问来源于stack exchange,提问作者mpeytonfan18
相关产品推荐
相关产品推荐

