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