脚本化规则
脚本规则支持使用 PowerShell 或 VBScript 创建自定义规则,以满足复杂的要求。 可以根据各种脚本条件动态允许、阻止或提升应用程序,从而对应用程序行为提供强大、灵活的控制。
脚本规则可以利用任何可通过 PowerShell 或 VBScript 访问的接口,例如 COM(组件对象模型),并且在以下情况下评估每个脚本:
-
将新配置部署到计算机时
-
用户登录时
配置脚本化规则
在何时分配此规则?页面中设置应用程序控制规则时,可以配置脚本规则。 要配置脚本规则,请按照以下步骤操作:
-
在分配时间?页面上,从选择源下拉列表中选择脚本化选项。
脚本选项卡出现。 -
指定脚本的名称。
-
在脚本语言下拉列表中,根据您的要求选择 PowerShell 或 VBScript 选项。
有关使用脚本的更多信息,请参阅以下部分。
PowerShell 脚本
如果脚本返回(退出)值为 0,则脚本将通过并应用规则。 如果返回任何非零值,脚本将失败,规则将不适用。
每个 PowerShell 脚本都在 PowerShell.exe 实例中执行,因此,Application Control 既不强制也不添加任何特定语法 - 所有正确形式的 PowerShell 都将起作用。
PowerShell 必须安装在将使用脚本的任何端点上。
VBScripts
每个脚本都在托管脚本引擎中运行,从而可以更好地控制脚本执行,同时提供高度的输入和输出控制。
-
未使用 VBS 文件。
-
未生成单独的进程。
脚本必须作为函数写入,可以包含许多函数,但必须指定主启动函数。 启动功能由 Application Control 代理运行,可用于调用其他功能。
AMScriptRule COM 对象内置于脚本引擎中,并提供对以下方法的访问:
-
strUsername = AMScriptRule.UserName
-
strUserdomain = AMScriptRule.UserDomain
-
strSessionid = AMScriptRule.SessionID
-
strStationname = AMScriptRule.WinStation
此实例的 Microsoft 标准意味着 WinStation 返回由会话类型决定的终端服务会话名称的值,典型值为“控制台”或“RDP-Tcp#34”,而不是窗口站名称,通常为 WinSta0。
AMScriptRule COM 对象还包括以下方法:
-
strLog = AMScriptRule.Log "My Log Statement"
允许您将日志字符串输出到代理日志文件,以便与调试脚本规则一起使用。
-
strEnvironmentvar = AMScriptRule.ExpandEnvironment ("%MyEnvironmentVariables%")
扩展运行脚本的用户的环境变量。
使用 WScript。 shell 扩展环境变量仅返回 SYSTEM 变量。
-
-
在入口函数下拉列表中,选择脚本规则。
输入功能选项仅适用于 VBScript。
-
在脚本字段中,添加 PowerShell 或 VBScript。
-
导航到选项选项卡以配置脚本执行和超时。
-
在选项选项卡上,从执行类型下拉列表中选择脚本执行方法,如下所示:
-
每个会话作为用户:指定脚本为每个登录的用户运行。 设置仅在用户会话期间应用。 请注意,如果桌面解锁,脚本也将运行。
-
每个会话作为系统:指定脚本以系统帐户权限为每个登录的用户运行一次。 设置仅在用户会话期间应用。
-
每台计算机作为系统: 指定脚本在计算机启动时以系统帐户权限运行一次。 设置将应用于所有用户会话,直到计算机重新启动、Application Control 代理重新启动或出现配置更改。
-
-
启用在用户登录完成之前,不要执行脚本选项,以防止脚本在用户登录完成之前运行。
-
在等待秒数或脚本超时中指定一个时间,以允许在脚本超时之前继续运行。 设置零 (0) 秒可防止脚本超时。 如果发生超时,则结果失败,无法应用设置。
-
点击添加。