使用 SCCM 2012 进行命令行安装

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

我尝试使用 SCCM 2012 部署一些应用程序,但通过应用程序目录安装失败。所以我的部署类型是脚本安装程序。我在安装程序字段中有“cmd.exe”(不带引号),在安装启动字段中有“Installer.bat”。

当我查看 ccmcache 文件夹时,该应用程序上的所有内容都在那里,但软件中心显示以下错误:

 0x8007010B(-217024629)

我在网上做了一些阅读,“10B”是无效目录的常见命令行错误。我在对路径进行硬编码时测试了批处理文件,但我的问题是,如何编辑批处理文件或 SCCM 以从文件下载到本地客户端的 CCMCache 路径中提取?目前批处理文件很简单:

 @echo off
 ApplicationName.exe

我需要编辑文件并cd到文件所在的CCMCache文件夹中吗?如何获取批处理文件来运行下载到 CCMCache 文件夹的可执行文件?

谢谢您!

batch-file deployment automation windows-server-2008 sccm
2个回答
0
投票

您需要在脚本中包含安装的完整路径

@回声关闭

\.exe 路径

命令的写法会找不到.exe文件。您需要将 .exe 的完整 unc 路径添加到 .cmd 文件中。您的安装 .exe 和 .cmd 文件应该位于分发共享上的同一位置


0
投票

推荐解决方案:

在开始之前,由于您仅使用批处理文件启动 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
© www.soinside.com 2019 - 2024. All rights reserved.