我有一些应用程序正在尝试使用 SCCM 2012 进行部署,但通过应用程序目录安装失败。因此,我拥有的部署类型是脚本安装程序。我在安装程序字段中有"cmd.exe"(不带引号(,在安装开始字段中有"安装程序.bat"。
当我查看 ccmcache 文件夹时,该应用程序上的所有内容都在那里,但以下错误显示软件中心:
0x8007010B(-217024629)
我已经在网上做了一些阅读,"10B"是无效目录的常见命令行错误。我已经在硬编码路径时测试了批处理文件,但我的问题是,如何编辑批处理文件或 SCCM 以从本地客户端上下载文件的 CCMCache 路径中提取?目前批处理文件很简单:
@echo off
ApplicationName.exe
我是否需要将文件编辑到 cd 到放置文件的 CCMCache 文件夹中?如何获取批处理文件以运行下载到 CCMCache 文件夹的可执行文件?
谢谢!
您需要在脚本中具有安装的完整路径
@echo关闭
\\.exe路径
命令的编写方式将无法找到.exe文件。 您需要将.exe的完整 unc 路径添加到 .cmd 文件中。 安装.exe和 .cmd 文件应位于分布共享上的同一位置
推荐的解决方案:
在开始之前,由于您只使用批处理文件启动 exe,因此我建议仅使用 ApplicationName.exe 作为 SCCM 中的命令行参数,而不是使用批处理。 这将消除进一步工程的需要。
修改现有解决方案以使其正常工作:
如果您仍想使用批处理文件,请记住一些事项。 用于启动批处理文件的语法将不起作用。 我建议只使用批处理文件名"installer.bat"作为命令行。 如果您仍然想在批处理前面加上 cmd.exe,则绝对需要将/c 开关与它一起使用
cmd.exe /c installer.bat
如果不使用/c,控制台主机将仅向 promopt 打开,而不会执行批处理。
这不是一个理想的解决方案,因为使用"cmd.exe/c"会将您的工作目录设置为 cmd 的位置.exe即"C:\windows\system32"(,并且由于您的内容是在 ccmcache 中暂存的,您需要指定其在批处理中的位置。 为此,您可以使用 %~dp0 变量,该变量为您提供当前批处理运行的目录。 这意味着修改批处理以读取
@echo off
%~dp0ApplicationName.exe