自定义操作和执行操作
在此部分:
自定义操作
您可以使用 PowerShell、Visual Basic 或 Java Script 创建自定义操作,使其他 Environment Manager 操作无法进行处理。脚本先保存在 XML 配置中,在运行时复制到磁盘,而后再执行,最后在完成时删除。
使用无效脚本的操作将会失败,并且不会运行任何子操作。对于 Environment Manager 8.1 之前的版本,不管脚本有效与否,自定义操作都会通过。
系统将为成功和失败的操作创建单独的审核事件,您可通过管理功能区中的审核按钮来查看这些事件。
' ==========================================================
' Checks to see if a process (EMCoreService.exe) is running
' =========================================================
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objShell = CreateObject("Wscript.Shell")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'EMCoreService.exe'")
If colProcesses.Count =0 Then
Wscript.Echo "There are no instances of EMCoreService.exe running"
Wscript.Quit 0
Else
Wscript.Echo "EMCoreService.exe is running"
Wscript.Quit 1
End If
系统将为成功和失败的操作创建单独的审核事件。您可通过管理功能区中的审核按钮来查看这些事件。
选择所需的脚本类型:PowerShell、Visual Basic 或 Java Script,然后直接在对话框中输入脚本。您还可以使用复制、粘贴来添加脚本,或使用导入按钮来导入脚本。
您可应用以下设置来影响操作的行为:
-
超时 - 设置脚本完成的超时时间。如果达到设置时间,则操作将失败。除非设置为 0(无限),否则超时最大值可设为 60 秒。自定义操作中设置的超时会覆盖默认节点设置。
- 防止脚本交互运行 - 默认情况下,此选项处于选中状态,这意味着脚本运行时不会出现需要用户交互的弹出窗口。
- 将环境变量应用于配置 - 选择此选项后,脚本中设置的任何环境变量也将设置在注册表和 EM 客户端中,使其可以在脚本之外使用。
- 插入 - 选择要添加到脚本的会话变量。该列表包括以下内置变量:
- SessionID - 当前的会话 ID
- UserSID - 用户的安全标识符
- UserTemp - 用户临时目录的位置
在“网络可用”、“网络已连接”和“网络连接已断开”触发器中,可以将更多内置会话变量添加到脚本中,以确定连接特性。
退出代码
所有自定义脚本都必须指定一个退出代码,返回后,Environment Manager 代理会使用该代码来确定脚本是通过还是失败。对于没有退出代码的脚本,代理将假定其成功(0 值)。
每种脚本类型必须使用特定的退出声明:
- VBScript: WScript.Quit [value]
- JScript - WScript.Quit([value])
- PowerShell: exit ([value])
用脚本的退出代码替换 [value]:0 表示成功,1 表示失败。例如:WScript.Quit 0、WScript.Quit(0)、exit (0)
PowerShell 脚本
Windows PowerShell 脚本使用多种执行策略,这些策略可以阻止脚本运行,或者仅允许受信任的发布者签名的脚本运行。Environment Manager 可覆盖执行策略并绕过任何限制,以使 PowerShell 脚本能够运行。
您还可以通过组策略来设置用户和计算机的执行策略,这些策略将覆盖所有 PowerShell 执行策略。如果 PowerShell 自定义操作以系统身份运行,则不允许执行任何脚本或仅允许执行签名脚本的用户策略不会影响到该操作的运行。但是,如果该操作以当前用户身份运行,则用户策略将不允许执行脚本,自定义操作也将失败。不允许执行任何脚本或仅允许执行签名脚本的计算机策略不会允许任何 PowerShell 自定义操作运行。
因此,要成功运行使用 PowerShell 的自定义操作,必须将组策略设置为允许为用户和计算机运行这些脚本。
Environment Manager 与 PowerShell 1.0、2.0 和 3.0 版本兼容。
执行操作
这些操作在触发后执行应用程序或进程。从文件名字段浏览至相关应用程序。应用程序选中后,系统会自动添加工作目录。可以添加其他参数以将其传递给程序。
要使进程能够使用不同的用户凭据运行,请选择运行身份选项卡,然后根据需要选择用户。
如果选中不要创建窗口(基于控制台的应用程序)复选框,则将向用户隐藏与应用程序或进程相关的所有命令窗口。
在设置为依序执行需要完成用户交互的文件(如程序文件)的节点中,应避免在登录时包含执行操作。否则,登录进程将无限期停止,因为登录脚本将等待脚本执行完成。例如,如果执行操作启动 notepad.exe,则登录脚本将等待记事本结束,然后再继续执行登录进程。
如果取消选中在进程退出之前,不要执行此操作的子操作选项,则在用户交互关闭时不会出现这种情况。