处理软件分发自定义脚本

对于控制已计划任务(工具 > 分发 > 计划任务)的自定义脚本,需处理以下三个部分:

  • Premachine:首先处理自定义脚本的 Premachine 部分,并且仅在任务开始时处理一次。这一部分可用于没有目标设备的任务和/或定向多播。在脚本的 Premachine 部分中只能使用本地命令 LOCxxx。
  • Machine:其次运行脚本这部分中的命令,并且对每个目标设备仅运行一次。这些命令可以使用远程或本地执行命令,主要用于远程执行 SDCLIENT.EXE。必须先在目标设备上安装 SWD 代理,才能执行这部分脚本中的命令。
  • Postmachine:最后处理这一部分,同样,仅在处理完所有设备后执行一次。软件分发不会向这一部分添加命令,并且该部分仅支持本地命令 LOCxxx。如果任务中的设备不能运行这部分中的命令,则不对其进行处理。随 Endpoint Manager 一起提供的 InventoryScanner.ini 脚本包含有关脚本命令的详细信息。

自定义脚本命令

自定义脚本支持各种本地和远程命令:

  • LOCEXEC:本地执行,此命令用于执行本地设备(通常是核心服务器)中的应用程序。
  • LOCDEL:本地删除,删除本地设备中的文件。
  • LOCMKDIR:本地创建文件夹,在本地设备上创建文件夹。
  • LOCRD:本地删除文件夹,此命令用于删除本地设备中的文件夹。
  • REMCOPY:远程复制,将本地设备上的文件复制到远程设备。
  • REMEXEC:远程执行,执行指定远程设备中的应用程序。
  • REMDEL:远程删除,删除远程设备中的文件。
  • REMMKDIR:远程创建文件夹,该命令在远程设备上创建文件夹。
  • REMRD:远程删除文件夹,该命令在远程设备上删除文件夹。

脚本中的 HTTP 和 UNC 路径

下面是软件分发 .ini 文件的示例,该文件反映了 HTTP 与 UNC 路径脚本文件之间的不同之处。

HTTP 路径脚本文件:

; This file was generated by Desktop Manager

[MACHINES]

REMEXEC0=C:\Program Files\LANDesk\LDClient\sdclient.exe -p=http://<web server>/packages/test package.exe -g={6DD454C0-11D3A0D1-a000B3B5-9BACBBC99CFC6D-9CE3504801A0D4B2FZ0829F08} -Ac -Ab

UNC 路径脚本文件:

; This file was generated by Desktop Manager

[MACHINES]

REMEXEC0=C:\Program Files\LANDesk\LDClient\sdclient.exe -p=\\sample_core\onefile\test package.exe -g={6DD454C0-11D3A0D1-a000B3B5-9BACBBC99CFC6D-9CE3504801A0D4B2FZ0829F08} -Ac -Ab

注意,这两个 .ini 文件包含的元素相似。在 MACHINES 部分中,-P 选项指定了设备下载软件程序包的路径。在 HTTP 示例中,路径为 http://<web server>/packages/test package.exe。

下一个选项是 -G 选项,即 GUID,每个程序包的唯一数字标识符。此数字标识符由程序包生成器生成,有助于避免在安装过程中混淆名称相似的程序包。

部署脚本 (.ini) 文件的脚本指南

不必使用创建软件分发脚本窗口来创建部署脚本文件。部署文件是 .ini 文件,其中包含安装程序包时设备应使用的设置。根据需要,可以在文本编辑器(如记事本)中创建您自己的部署文件。

软件分发 .ini 脚本文件包含以下组件:

[MACHINES]

REMEXEC0=C:\Program Files\LANDesk\LDClient\sdclient.exe

/p="http://computer_name/95Packages/Acro32_95.exe"

/g={281B46C0-11D3766F-a0008bab-F9751AC966F808-66E3BC2DF01A0D4B2F88670DE4}

/Ac

/N

REMEXEC0 命令参数

REMEXEC0 命令的参数已放在不同的行,这是为了使组件更为直观。置于 .ini 文件中时,该命令应位于一行上。

REMEXEC0 是远程执行命令。如果希望在一个脚本文件中多次使用 REMEXEC0 命令,则该命令每使用一次,其名称编号都会递增 1。例如,如果一个 .ini 文件中调用了三次 REMEXEC,则应该显示为 REMEXEC0、REMEXEC1 和 REMEXEC2。如果这些命令在不同的文件中,则其名称编号不用递增 1。

C:\Program Files\LANDesk\LDClient 参数是 SWD 代理的正确路径。