【问题标题】:Command Line Installation with SCCM 2012使用 SCCM 2012 进行命令行安装
【发布时间】:2018-12-07 19:45:58
【问题描述】:

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

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

 0x8007010B(-217024629)

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

 @echo off
 ApplicationName.exe

我是否需要编辑文件以 cd 进入放置文件的 CCMCache 文件夹?如何让批处理文件运行下载到 CCMCache 文件夹的可执行文件?

谢谢!

【问题讨论】:

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

标签: batch-file deployment automation windows-server-2008 sccm


【解决方案1】:

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

@echo 关闭

\\.exe 的路径

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

【讨论】:

    【解决方案2】:

    推荐解决方案:

    在开始之前,由于您只是使用批处理文件启动 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 2016-02-25
      相关资源
      最近更新 更多