处理软件分发自定义脚本
对于控制已计划任务(工具 > 分发 > 计划任务)的自定义脚本,需处理以下三个部分:
- 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 代理的正确路径。