Batch file 使用SCCM 2012安装命令行

Batch file 使用SCCM 2012安装命令行,batch-file,deployment,automation,windows-server-2008,sccm,Batch File,Deployment,Automation,Windows Server 2008,Sccm,我有一些应用程序正试图使用SCCM 2012进行部署,但安装失败,无法通过应用程序目录进行。因此,对于部署类型,我有一个脚本安装程序。我在安装程序字段中有“cmd.exe”(不带引号),在安装开始字段中有“Installer.bat” 当我查看CCMCHACHE文件夹时,该应用程序上的所有内容都在那里,但软件中心显示以下错误: 0x8007010B(-217024629) 我在网上读了一些书,“10B”是无效目录的常见命令行错误。我已经在硬编码路径时测试了批处理文件,但我的问题是,如何编辑批

我有一些应用程序正试图使用SCCM 2012进行部署,但安装失败,无法通过应用程序目录进行。因此,对于部署类型,我有一个脚本安装程序。我在安装程序字段中有“cmd.exe”(不带引号),在安装开始字段中有“Installer.bat”

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

 0x8007010B(-217024629)
我在网上读了一些书,“10B”是无效目录的常见命令行错误。我已经在硬编码路径时测试了批处理文件,但我的问题是,如何编辑批处理文件或SCCM以从本地客户端上下载文件的CCMCache路径中提取?当前,批处理文件仅为:

 @echo off
 ApplicationName.exe
我是否需要将文件编辑到放置文件的CCMCache文件夹中?如何获取批处理文件以运行下载到CCMCache文件夹的可执行文件


谢谢大家!

您需要在脚本中具有安装的完整路径

@回音

\\.exe的路径

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

推荐的解决方案:

在开始之前,由于您只使用批处理文件启动exe,因此我建议在SCCM中使用ApplicationName.exe作为命令行参数,而不是使用批处理。这将消除进一步设计的需要

修改现有解决方案以使其工作:

如果仍然希望使用批处理文件,请记住几件事。用于启动批处理文件的语法将不起作用。我建议只使用批处理文件名“installer.bat”作为命令行。如果仍要使用cmd.exe作为批处理的开头,则绝对需要使用/c开关

cmd.exe /c installer.bat
如果您不使用/c,控制台主机将只向Prompt打开,而不会执行批处理

但这不是一个理想的解决方案,因为使用“cmd.exe/c”会将您的工作目录设置为cmd.exe的位置(即“c:\windows\system32”),并且由于您的内容暂存在ccmcache中,因此您需要指定其在批处理中的位置。为此,可以使用%dp0变量,该变量提供当前批处理运行的目录。这意味着将批处理修改为

@echo off
%~dp0ApplicationName.exe

批处理文件不知道
.exe
在哪里,因此您必须告诉它,1。通过将
.exe
的路径添加到系统的
路径
变量,或2。通过使用
cd/D
或3显式更改到包含目录。通过完整路径调用
.exe
,如
“D:\path\to\ccmcache\folder\ApplicationName.exe”
。感谢您的回复。CCMCache文件夹始终会更改。我怎么能硬编码呢?我明白了。你能查一下位置吗?或者只有一个
CCMCache
文件夹,所以脚本可以搜索它?或者,如果可能有多个,可以使用包含最新
.exe
文件的文件吗?只有一个CCMCache文件夹,但每个子文件夹都不同。我们有一个与图像一起提供的文件夹,因此我们环境中的每台机器都有它。SCCM中有没有办法告诉它下载所需文件并将其放置在其他位置?对不起,我无法帮助SCCM,我只能帮助处理批处理文件部分。。。