Next Topic

Previous Topic

Book Contents

IF-ELSE-STEP 命令

以下是 VSA 代理程序中所用 IF-ELSE-STEP 命令的摘要。

IF 定义

正在运行应用程序

测试以查看是否正在运行指定的应用程序。

检查注册表值

评估给定的注册表值。

检查 64 位注册表值

评估给定的 64 位注册表值。

检查变量

评估给定的代理变量。请参阅“使用变量”

评估表达式

与提供的值比较变量。

服务正在运行

确定服务是否正在受管计算机上运行。

测试文件

测试文件是否存在。

测试目录路径中的文件

测试由“从注册表中获取目录路径”传回的当前目录路径中文件是否存在。

测试注册表项

测试给定注册表项是否存在。

测试 64 位注册表项

测试给定 64 位注册表项是否存在。

True

始终返回 True,执行 IF 分支。

用户已登录

测试特定用户或任意用户是否登录。

用户响应为“是”

为用户提供“是/否”对话框。

STEP 定义

关闭应用程序

关闭正在运行的应用程序。

删除文件

从受管计算机删除文件。

删除目录路径中的文件

删除由“从注册表中获取目录路径”传回的目录中的文件。

删除注册表项

从注册表删除项。

删除 64 位注册表项

从注册表删除 64 位项。

删除注册表值

从注册表删除值。

删除 64 位注册表值

从注册表删除 64 位值。

执行文件

就像从 Windows 开始菜单运行项目一样执行任意文件。

执行目录路径中的文件

就像执行文件一样。文件位置与“从注册表中获取目录路径”传回的目录相关。

执行程序

在当前计算机上启动另一个 VSA 代理程序。

执行 Shell 命令

从命令 Shell 运行任意命令。

从注册表中获取目录路径

传回存储在特定位置注册表中的目录路径。结果在后续步骤中使用。

获取文件

从受管计算机获取文件并将其保存到 KServer。

获取目录路径中的文件

从位置相对于“从注册表中获取目录路径”传回的目录的受管计算机获取文件,并将其保存到 KServer。

获取 URL

传回 URL 的文本和 HTML 内容,并将其存储在受管计算机上的文件中。

获取变量

从受管计算机上的代理获取值并将其分配给变量。请参阅“使用变量”

模拟用户

当指定“作为用户执行”时,使用指定的用户帐户执行筛选器或 Shell。

暂停程序

暂停程序 N 秒。

重新启动

重新启动受管计算机。

重命名已锁定的文件

重命名当前正使用的文件。

重命名目录路径中的已锁定文件

重命名由“从注册表中获取目录路径”传回的目录中当前正使用的文件。

计划程序

计划要在指定计算机上运行的代理程序。

发送电子邮件

发送电子邮件给一个或多个收件人。

发送消息

在受管计算机上的对话框中显示消息。

发送 URL

在受管计算机上打开针对特定 URL 的浏览窗口。

设置注册表值

将注册表值设置为特定值。

设置 64 位注册表值

64 位注册表值设置为特定值。

更新系统信息

使用指定值更新选定的“系统消息”字段。

使用证书

指定“作为用户执行”时,使用“设置证书”中计算机 ID 的用户登录证书集来执行文件或 Shell。

写入目录

从服务器写入目录到受管理计算机。

写入文件

将存储在 KServer 上的文件写入到受管理计算机。

在目录路径中写入文件

使用由“从注册表中获取目录路径”传回的目录,将存储在 KServer 上的文件写入到受管理计算机。

写入程序日志条目

向代理程序日志写入字符串。

IF 命令

正在运行应用程序

检查指定的应用程序当前是否在受管计算机上运行。如果应用程序正在运行,IF 命令已执行;否则 ELSE 命令已执行。从下拉列表中选择此选项时,系统会显示“输入应用程序名”字段。为想要测试的应用程序指定进程名称。例如,要测试计算器应用程序,请指定 calc.exe,这是显示在“Windows 任务管理器进程选项卡中的进程名称。

检查注册表值 / 检查 64 位注册表值

输入注册表路径后,会返回键中包含的值。您可以进行是否存在、等同性或大小差异的检查。例如,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AppPaths\AgentMon.exe\path 包含标识代理在目标计算机上的安装位置的目录路径。测试会确定为此键存储的值是否存在,从而验证代理是否已安装。

键结尾的反斜线字符 \ 传回该键的默认值。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE\ 传回默认值,例如 %ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE

可用的测试如下:

  • 存在:如果配置单元中存在注册表项,则为 True。
  • 不存在:如果配置单元中存在注册表项,则为 True。
  • =:如果注册表项的值等于测试值,则为 True。
  • 不 =:如果注册表项的值等于测试值,则为 True。
  • >:如果注册表项的值大于测试值(值必须为数字),则为 True。
  • >=:如果注册表项的值大于或等于测试值(值必须为数字),则为 True。
  • <:如果注册表项的值小于测试值(值必须为数字),则为 True。
  • <=:如果注册表项的值小于或等于测试值(值必须为数字),则为 True。
  • 包含:如果测试值是注册表值的子字符串(值必须为数字),则为 True。
  • 不包含:如果测试值不是注册表值的子字符串(值必须为数字),则为 True。

检查变量

在提供的空格中于表单 #var_name# 中输入变量名称。检查变量会评估分配给 #var_name# 的当前值并将其与提供的值进行比较。提供的值还可能是格式为 #var_name2# 的另一个变量名称。 如果检查结果为 True,则会执行 IF 命令。如果检查结果为 false,则会执行 ELSE 步骤。请参阅“使用变量”。可用的测试如下:

  • 存在:如果变量存在,则为 True。
  • 不存在:如果变量存在,则为 True。
  • =:如果变量的值等于测试值,则为 True。
  • 不 =:如果变量的值等于测试值,则为 True。
  • >:如果变量的值大于测试值,则为 True。
  • >=:如果变量的值大于或等于测试值,则为 True。
  • <:如果变量的值小于测试值,则为 True。
  • <=:如果变量的值小于或等于测试值,则为 True。
  • 包含:如果测试值是变量值的子字符串,则为 True。
  • 不包含:如果测试值是变量值的子字符串,则为 True。
  • 开始于:如果测试值开始于变量值,则为 True。
  • 结束于:如果测试值以变量值结束,则为 True。

对于测试 =不 =>>=<<=,比较的变量可能是字符串、数字、格式为 yyyy/mm/ddyyyy/mm/dd hh:mmyyyy/mm/dd hh:mm:ss 的日期或包含圆点或逗号的版本号(例如 1.2.34,5,6,7)。如果日期格式已指定,可以使用 + dd:hh:mm:ss- dd:hh:mm:ss 偏移。仅 dd 天是必需的;hh 小时、mm 分钟和 ss 秒可以忽略,在缺少的情况下可以假定为零。可以指定 CURRENT_TIMESTAMP 以指示在执行程序时,当前时间在比较中被替换。例如,CURRENT_TIMESTAMP - 7:12:00:00 将被评估为从执行程序的时间减去 7 天 12 小时。

评估表达式

在提供的空格中,输入包含一个或多个变量名称的表达式,变量的格式为 #var_name#。 评估表达式使用分配 给每个 #var_name# 的当前值、评估数学表达式并将其与提供的值进行比较。提供的值还可能是另一个表达式。数学表达式可以包含 +- * /()。例如 (3.7 + (200 * #countA#)) / (#countB# - #countC#)。如果检查结果为 True,则执行 IF 步骤。如果检查结果为 false,则执行 ELSE 步骤。可用的测试如下:

  • =:如果变量的值等于测试值,则为 True。
  • 不 =:如果变量的值不等于测试值,则为 True。
  • >:如果变量的值大于测试值,则为 True。
  • >=:如果变量的值大于或等于测试值,则为 True。
  • <:如果变量的值小于测试值,则为 True。
  • <=:如果变量的值小于或等于测试值,则为 True。

    注: 不能配合存在不存在包含不包含操作符使用。

服务正在运行

确定服务是否正在受管计算机上运行。指定服务名称

  • 如果服务正在运行,则为 True。
  • 如果服务名称已停止或不存在,则为 False。

    注: 请确保使用服务的服务名称,而不是服务的显示名称。例如,用于 Microsoft SQL Server 服务的显示名称SQL Server (MSSQLSERVER),而服务的服务名称MSSQLSERVER。对于 Windows 计算机,右键单击服务窗口中的任意服务并单击属性选项,以查看该服务的服务名称

测试文件

确定文件在受管计算机上是否存在。输入完整路径和文件名。测试文件会将完整路径和文件名与提供的值进行比较。如果检查结果为 True,则执行 IF 命令。如果检查结果为 false,则执行 ELSE 步骤。

注: 可以接受环境变量,例如 %windir%\notepad.exe

可用的测试如下:

  • 存在:如果完整路径和文件名存在,则为 True。
  • 不存在:如果完整路径和文件名存在,则为 True。
  • 包含:如果测试值是文件内容的子字符串,则为 True。
  • 不包含:如果测试值是文件内容的子字符串,则为 True。
  • 开始于:如果测试值开始于变量值,则为 True。
  • 结束于:如果测试值以变量值结束,则为 True。

测试目录路径中的文件

使用“从注册表中获取目录路径”步骤测试位于传回路径中的指定文件。可用的测试如下:

  • 存在:如果文件名存在,则为 True。
  • 不存在:如果文件名存在,则为 True。
  • 包含:如果测试值是文件内容的子字符串,则为 True。
  • 不包含:如果测试值是文件内容的子字符串,则为 True。
  • 开始于:如果测试值开始于变量值,则为 True。
  • 结束于:如果测试值以变量值结束,则为 True。

测试注册表项 / 测试 64 位注册表项

测试注册表项是否存在。测试注册表项检查注册表值不同,因为它可以检查仅包含多个注册表项(非值)的目录级别注册表条目。

True

选择True” 会执行 IF 命令。使用“True”直接执行不需要任何决策点的一系列步骤,例如使用“测试文件”确定文件是否存在。

用户已登录

测试以查看特定用户或任意用户是否已登录到受管计算机。输入计算机用户的登录名或将字段留为空,以检查任意用户是否已登录。如果用户已登录,则会执行 IF 命令。如果用户未登录,则会执行 ELSE 步骤。

用户响应为“是”

在受管计算机上显示对话框,同时显示“是”“否”按钮。如果指定的时间量已超时,还可以执行 ELSE 命令。如果计算机用户选定了“是”,则会执行 IF 命令。如果选择超时或计算机用户选择“否”,则会执行 ELSE 命令。此功能需要计算机用户具有继续执行代理程序的权限。此查询对于需要在完成前重新启动受管计算机的代理程序非常有用。

程序变量,例如 #varName# 可能用于“用户响应为“是””字段内,以根据程序数据动态生成消息。

STEP 命令

关闭应用程序

如果受管计算机上正运行指定的应用程序,则该应用程序会关闭。为想要关闭的应用程序指定进程名称。例如,要关闭计算器应用程序,请指定 calc.exe,这是显示在“Windows 任务管理器进程选项卡中的进程名称。

删除文件

删除受管计算机上的文件。输入完整路径和文件名。

注: 如果用户计算机上设置了环境变量,则可以接受环境变量。 例如,使用路径 %windir%\notepad.exe 与使用 C:\windows\notepad.exe 类似。

注: 您可以使用“重命名已锁定的文件”命令删除当前正使用的文件。

删除目录路径中的文件

使用“从注册表中获取目录路径”命令删除位于传回路径中的指定文件。

删除注册表项 / 删除 64 位注册表项

删除指定的注册表项及其所有子键。

删除注册表值 / 删除 64 位注册表值

删除存储在指定注册表项中的值。

执行文件

在受管计算机上执行指定文件。此功能使用位于 Microsoft Windows“开始”菜单中的“运行…”命令异地启动应用程序。此功能需要三个参数:

  • .exe 文件的完整路径文件名。
  • 传递至 .exe 文件的参数列表
  • 直至 .exe 完成与否程序要等待的选项。

    注: 如果用户计算机上设置了环境变量,则可以接受环境变量。 例如,使用路径 %windir%\notepad.exe 与使用 C:\windows\notepad.exe 类似。

执行目录路径中的文件

“执行文件”相同,除了 .exe 文件的位置位于从从注册表中获取目录路径”命令传回的路径中。

执行程序

可导致另一个具名的程序执行。使用此功能将多个 IF-ELSE-STEP 程序结合到一块。如果程序不再存在于 KServer 上,程序下拉列表旁会显示错误消息。您可以使用此命令运行系统程序。您可以将程序嵌套为 10 个级别。

执行 Shell 命令

允许程序将命令传递到受管计算机上的命令解释器。选定此命令时,系统会显示“输入要在命令 Shell 中执行的命令”。在字段中输入命令。命令必须在语法上正确,并且可以在受管计算机使用操作系统版本执行。包含空格的命令和参数都应用引号括起。由于命令相对于代理目录执行,因此输入命令时应使用绝对路径。

注: “执行 Shell 命令”会打开要从中执行操作的受管计算上的命令提示窗口。如果不想在受管计算机上打开窗口,因为这样可能使用户混乱,则请将所有命令放到批处理文件中。使用“写入文件”命令将该文件发送到受管计算机。然后使用“执行文件”命令运行批处理文件。“执行文件”不会在受管计算机上打开窗口。

从注册表中获取目录路径

传回存储在指定注册表项中的文件路径。使用此命令可以获取文件位置。例如,使用此命令可以找到已安装应用程序的目录。结果在后续步骤中由以下命令使用:

  • 删除目录路径中的文件
  • 执行目录路径中的文件
  • 获取目录路径中的文件
  • 重命名目录路径中的已锁定文件
  • 测试目录路径中的文件(IF 命令)
  • 在目录路径中写入文件

获取文件

从受管计算机的指定路径上传文件。请确保输入想要上传的完整路径文件名。例如:news\info.txt。运行“获取文件”命令时会创建文件夹(如果文件夹尚不存在)。文件会存储在每台受管理计算机个人目录中的 KServer 中。使用“代理程序”>“获取文件”可以查看或运行上传的文件。

  • 有选择性地使用 .bak 扩展名重命名上传文件的现有副本,然后上传下个文件。这可让您检查文件的最新版本和以前版本。
  • 如果上传的文件不同或与先前上传的文件相同,有选择性地创建“获取文件”提示。必须使用“监控”>“提示 - 获取文件”页面为计算机 ID 创建“获取文件”提示,以使用“获取文件”命令启用提示的发送。为计算机 ID 定义后,相同的“获取文件”提示对于任意使用“获取文件”命令并在该计算机 ID 上运行的代理程序都是可用的。可以在代理程序编辑器中选择其中一个没有提示的选项,关闭针对特定文件的提示。

获取目录路径中的文件

“获取文件”命令类似,但是将从“从注册表中获取目录路径”命令传回的路径添加到远程文件路径的开头。使用“代理程序”>“获取文件”功能访问上传的文件。

获取 URL

传回 URL 的文本和 HTML 内容,并将其存储在受管计算机上的文件中。为了说明这一点,请尝试将 www.kaseya.com 指定为 URL,将 c:\temp\test.htm 指定为文件以存储此 URL 的内容。包含此网页所有文本和 HTML 内容的受管计算机上创建有网页的副本。您可以在后续命令中搜索受管计算机上文件的内容。

另一种用法是下载可从 Web 服务器获取的可执行文件,这样就不需要将文件上传到 VSA 服务器,也不需要使用 VSA 的带宽即可将文件向下写入到每个代理。您可以使用后续命令在受管计算机上运行下载的可执行文件。

获取变量

定义新的代理变量。程序步骤执行时,系统会定义新的变量并根据从受管计算机的代理获取的数据为其分配值。

注: 请参阅“使用变量”以获取“获取变量”命令支持的变量值的类型。

模拟用户

为代理输入登录使用的用户名、密码和域。此命令用于在程序中于“执行文件”“执行目录路径中的文件”或指定“以登录的用户身份执行”选项的“执行 Shell 命令”前使用。将域留为空以登录受管计算机上的帐户。 使用“模拟用户”可以使用由代理程序指定的证书运行代理程序。使用“使用证书”可以使用由受管计算机指定的证书运行代理程序。

暂停程序

暂停程序 N 秒。使用此命令可以为 Windows 提供时间完成异步任务,例如启动或停止服务。

重新启动

无条件重新启动受管计算机。要首先提醒用户,请在使用此命令前使用“用户响应为“是””命令。“用户响应为“是””命令会提示用户然后再重新启动计算机。

重命名已锁定的文件

重命名当前正使用的文件。系统下次重新启动时会重命名该文件。指定的文件名是完整的文件路径名。如果“新文件名”留为空,则可用于删除当前正使用的文件。系统重新启动时会删除该文件。

重命名目录路径中的已锁定文件

重命名位于“从注册表中获取目录路径”命令传回的路径中的当前正使用的文件。系统下次重新启动时会重命名该文件。如果“新文件名”留为空,则可用于删除当前正使用的文件。系统重新启动时会删除该文件。

计划程序

计划要在指定计算机上运行的程序。根据需要指定执行此步骤后在运行程序前要等待的时间,并指定要运行程序的指定计算机 ID。如果未指定计算机,则程序会在运行代理程序的相同计算机上运行。输入计算机的完整名称,例如 machine.unnamed.org此命令使代理程序可以在一台计算机上运行,以计划在第二台计算机上运行代理程序。您可以使用此命令运行系统程序。您可以将程序嵌套为 10 个级别。

发送电子邮件

发送电子邮件给一个或多个收件人。指定电子邮件的主题和正文。

发送消息

给受管计算机发送输入的消息。如果选中其他复选框,则在用户单击闪烁的代理系统托盘图标之后发送消息。如果保持不选定,则会立即发送消息。

发送 URL

在受管计算机的 Web 浏览器窗口中显示输入的 URL。如果选中其他复选框,则在用户单击闪烁的代理系统托盘图标之后显示 URL。如果保持不选定,则会立即显示 URL。

设置注册表值 / 设置 64 位注册表值

将数据写入指定的注册表值。此功能需要三个参数:

  • 输入包含值的注册表值完整路径 - 通过添加尾部反斜杠 \ 为注册表值指定(默认)值。否则,为现有值指定名称或创建一个新值。请参阅下图中的名称列。
    设置(默认)值的示例如下:HKEY_LOCAL_MACHINE\SOFTWARE\000Sample\
  • 输入要写入注册表值的数据
  • 选择数据类型
    • REG_SZ - 字符串值。
    • REG_BINARY - 以十六进制格式显示的二进制数据。
    • DWORD - 限制为 32 位的二进制数据。可以以十六进制或小数格式输入。
    • REG_EXPAND_SZ - 包含变量的“可扩展”字符串值。例如:%SystemRoot%。
    • REG_MULTI_SZ - 多个字符串阵列。用于输入多个值,每个都用 \0 字符串隔开。使用 \\0 以将 \0 包括在字符串阵列值中。

    Word 60% / HTML 100%

更新系统信息

使用用于运行此程序的计算机 ID 的指定值更新选定“系统信息”字段。您可以更新的“系统信息”字段中包括 vSystemInfo 的所有列,除了 agentGuidemailAddrMachine_GroupIDmachNamegroupName 之外。vSystemInfo 列信息由“审计”>“系统信息”、“代理”>“系统状态”“查看定义”中的“筛选器汇总表”“汇总表”报表使用。您可以使用任意字符串值(包括任意先前定义的代理程序变量的值)更新“系统信息”字段。

使用证书

使用在“设置证书”中为计算机 ID 设置的证书。此命令用于在程序中于“执行文件”“执行目录路径中的文件”或指定“以登录的用户身份执行”选项的“执行 Shell 命令”前使用。还用于访问用户登录时需要计算机证书的网络资源。使用“模拟用户”可以使用由代理程序指定的证书运行代理程序。使用“使用证书”可以使用由受管计算机指定的证书运行代理程序。

注: 如果“设置证书”程序命令遇到空的用户名,则系统会记录程序执行错误。

注: “补丁管理”>“补丁提示”可以提示您—或运行代理程序—如果计算机 ID 的证书缺失或无效。

写入目录

“管理存储在服务器上的文件”将选定的目录(包括子目录和文件)写入受管计算机上指定的完整路径目录名称。

写入文件

“管理存储在服务器上的文件”将选定的文件写入受管计算机上指定的完整路径文件名。如果想要重命名文件,请输入新的文件名。

每次程序执行“写入文件”命令时,代理都会检查文件是否已存在或者对文件进行哈希校验以验证其完好性。如果文件不存在,则会写入文件。如果文件已存在,则程序会移至下个步骤。您可以使用“写入文件”重复运行程序,将较大文件发送到受管计算机,您会知道 VSA 只下载该文件一次。

注: 如果用户计算机上设置了环境变量,则可以接受环境变量。例如,使用路径 %windir%\notepad.exe 等同于使用 C:\windows\notepad.exe

在目录路径中写入文件

将指定文件名写入由“从注册表中获取目录路径”命令传回的路径。

写入程序日志条目

将提供的字符串写入执行此代理程序的计算机 ID 的代理程序日志。

主题 : 发送反馈。 从内容表格的第一个主题下载此联机图书的 PDF 版本。