脚本化任务的脚本
简介
此页面允许您管理可在 WEM 代理上自动执行或运行的脚本。脚本分为以下类别:
-
用于常见 VDA 管理和故障排除需求的即用型脚本。
-
自定义脚本管理员创建的脚本,用于特定于环境的自动化和操作要求。
注意:
要从脚本配置自动化任务,请在配置集中转到脚本化任务。
添加自定义脚本
“脚本化任务”页面列出了所有内置脚本以及您或其他管理员创建的任何自定义脚本。您可以根据需要添加其他自定义脚本以满足您的要求。
开始之前
在 WEM Web 控制台中创建自定义脚本之前:
-
创建脚本内容根据您的要求编写 PowerShell 脚本。
-
验证脚本内容使用 Citrix Environment Tool Hub > Scripted Task Validator 工具运行脚本并查看执行结果。如果需要,您可以导出脚本,以便以后导入到 WEM Web 控制台。有关详细信息,请参阅验证和导出脚本化任务。
工作流程
要添加自定义脚本,请执行以下步骤:
-
在“脚本化任务”页面上,单击“自定义”选项卡,然后单击“添加自定义脚本”。
-
在“添加自定义脚本”向导中,配置以下设置,然后单击“保存”。
-
脚本名称。为脚本指定一个名称。
-
描述。可选地,指定其他信息以帮助您识别脚本。
-
范围(可选)。指定此脚本所属的范围。只有获得该范围授权的管理员才能访问此脚本。如果您未指定范围,则只有完整的 WEM 管理员才能访问此脚本。
-
标签。从现有标签中选择或输入以逗号分隔的标签。标签长度不得超过 20 个字符。标签类似于关键字或标记。使用标签可以帮助您以新方式识别脚本。此外,它们还可以充当筛选器,让您根据对您重要的条件重新排列脚本视图。您可以根据需要使用任意数量的标签。
-
文件类型。为脚本选择文件类型。支持两种文件类型:
-
PowerShell。单个 PowerShell 脚本文件。
-
ZIP。捆绑到单个 zip 文件中的多个文件。不支持大于 10 MB 的 Zip 文件。上传 zip 文件后,指定一个入口点,指示在脚本开始时运行哪个文件。请记住,入口点文件在文件夹结构中的深度不得超过三层。
-
-
上传文件。 单击“浏览”,导航到文件,选择它,然后单击“打开”。您将返回到“添加自定义脚本”向导。提示:您可以通过两种方式上传脚本:
-
选择您已放置在 Web 控制台计算机上的 .zip 文件。
-
使用脚本化任务验证器工具导出脚本后,内容会自动复制到剪贴板。在“添加自定义脚本”页面上,直接从剪贴板粘贴内容 (<Ctrl+V>)。此方法避免了在 Web 控制台计算机上存储 .zip 文件的需要。
-
-
授予权限。指定您要授予脚本的访问级别。确保您了解与每个选项关联的权限。
-
完全访问。分配了完全访问权限的脚本具有广泛的本地访问权限。如果选择此选项,则脚本将获得权限,如同在本地系统帐户下运行一样。
-
受限访问(具有网络访问权限)。分配了受限访问(具有网络访问权限)的脚本不具有广泛的本地访问权限,但可以访问网络资源。如果选择此选项,则脚本将获得权限,如同在网络服务帐户下运行一样。
-
受限访问(无网络访问权限)。分配了受限访问(无网络访问权限)的脚本不具有广泛的本地访问权限,并且无法访问网络资源。如果选择此选项,则脚本将获得权限,如同在本地服务帐户下运行一样。
-
以登录用户身份运行。如果选择此选项,则脚本将在登录用户会话的上下文中运行,并获得相同的权限,无论用户会话是活动状态还是已断开连接。
有关详细信息,请参阅 Microsoft 文档<https://docs.microsoft.com/zh-cn/windows/security/identity-protection/access-control/security-identifiers#well-known-sids>。 -
-
工作文件夹。(可选)键入最终用户操作系统上本地文件夹的绝对路径。工作文件夹是文件启动时的当前文件夹。您可以使用环境变量构建路径(例如,%ProgramFiles%)。如果未指定,则
PSScriptRoot用作默认工作文件夹。有关PSScriptRoot的详细信息,请参阅 Microsoft 文档<https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.1>。 -
此任务是否生成输出文件。选择您添加的脚本是否生成输出文件。
-
输出路径。键入相对于文件所在文件夹的路径。路径必须包含文件名和文件扩展名。示例:
output\report.txt。
-
管理脚本
您可以根据需要管理脚本。可用操作包括:
编辑脚本
要编辑脚本,请执行以下步骤:
-
在“脚本化任务”页面上,找到该脚本。如果需要,可以使用搜索框或标签快速找到它。
-
单击脚本的省略号,然后选择“编辑脚本”。此时将显示“编辑脚本”向导。
-
在“任务信息”选项卡上,根据需要配置设置。
-
在“脚本文件”选项卡上,查看脚本内容。
-
单击 保存。
注意:
您无法编辑内置脚本。
删除脚本
要删除脚本,请执行以下步骤:
-
在“脚本化任务”页面上,找到该脚本。如果需要,可以使用搜索框或标签快速找到它。
-
单击脚本的省略号,然后选择“删除脚本”。
重要提示:
您无法删除内置脚本。
克隆脚本
要克隆脚本,请执行以下步骤:
-
在“脚本化任务”页面上,找到该脚本。如果需要,可以使用搜索框或标签快速找到它。
-
点击脚本的省略号,然后选择 克隆脚本。
注意:
克隆脚本时,系统会提示您更改名称以避免重复名称。
配置脚本化任务
要配置和自动化脚本化任务,请执行以下步骤:
-
在 脚本化任务 页面上,找到脚本。如果需要,可以使用搜索框或标签快速查找。
-
点击脚本的省略号,然后选择 配置任务。
-
在 选择配置集 向导中,选择要创建任务的配置集。
-
按照 创建脚本化任务 中的步骤完成配置。
从脚本创建外部任务
使用此操作可直接从现有脚本创建外部任务。
提示:
脚本化任务在计算机级别运行。要在用户会话级别运行任务,请改为创建 外部任务。
要从脚本创建外部任务,请执行以下步骤:
-
在 脚本化任务 页面上,找到脚本。如果需要,可以使用搜索框或标签快速查找。
-
点击脚本的省略号,然后选择 创建外部任务。
-
在 选择配置集 向导中,选择要创建任务的配置集。
内置脚本
目前,我们提供以下内置脚本供您使用:
云运行状况检查
允许您运行检查以评估虚拟投递代理 (VDA) 的运行状况。VDA 运行状况检查可识别常见 VDA 注册和会话启动问题的可能原因。云运行状况检查在代理主机上的本地系统帐户下运行。
Windows 服务管理
Windows 服务管理提供有关 Windows 服务的常用功能,例如启动、停止、重新启动、配置一个或多个 Windows 服务。
重新启动 Windows 服务
此脚本检查 Windows 服务的状态。如果服务当前未运行且指定了
ForceStart 参数,则脚本会启动该服务。无论当前状态如何,如果服务正在运行且不需要强制启动,则会重新启动该服务,以确保其在最新配置下运行或从停滞状态中恢复。
参数
| 名称 | 类型 | 默认值 | 必需 | 注意 |
|---|---|---|---|---|
ServiceNames |
字符串 | BrokerAgent | 否 | 指定要管理的服务的名称。如果未提供,则默认为 BrokerAgent。如果需要输入多个服务,请用逗号分隔服务名称。所有空格都将被去除。例如,ServiceA, ServiceB。 |
ForceStart |
布尔值 | 是 | 否 | 指示如果服务未运行是否启动它。它不影响正在运行的服务。正在运行的服务始终会因维护或恢复目的而重新启动。 |
停止 Windows 服务
此脚本停止指定 Windows 服务的列表。脚本会检查每个服务是否已安装,并尝试强制停止该服务。然后,脚本会验证服务是否已成功停止并报告状态。
参数
| 名称 | 类型 | 默认值 | 强制 | 注意 |
|---|---|---|---|---|
ServiceNames |
字符串 | BrokerAgent | 否 | 指定要管理的服务的名称。如果未提供,则默认为 BrokerAgent。如果需要输入多个服务,请用逗号分隔服务名称。所有空格都将被去除。例如,ServiceA, ServiceB。 |
配置 Windows 服务
此脚本调整 Windows 服务配置,包括启动类型和恢复操作。
参数
| 名称 | 类型 | 默认值 | 强制 | 注意 |
|---|---|---|---|---|
ServiceNames |
字符串 | BrokerAgent | 否 | 指定要管理的服务的名称。如果未提供,则默认为 BrokerAgent。如果需要输入多个服务,请用逗号分隔服务名称。所有空格都将被修剪。例如,ServiceA, ServiceB。 |
StartupType |
字符串 | 空 | 否 | 设置服务的启动类型。有效选项为“自动”、“手动”或“禁用”。 |
FirstFailureAction |
字符串 | 空 | 否 | 定义首次失败时的操作。例如,重新启动/无。 |
SecondFailureAction |
字符串 | 空 | 否 | 定义第二次连续失败时的操作。 |
SubsequentFailureAction |
字符串 | 无 | 否 | 定义第二次失败之后所有后续失败时的操作。 |
服务器重启
重启计算机
此脚本重启本地计算机,并可选择延迟和强制选项。
参数
| 名称 | 类型 | 默认值 | 必需 | 注意 |
|---|---|---|---|---|
Force |
布尔值 | 是 | 否 | 如果指定,则强制立即重启,忽略任何未保存的数据或活动用户会话。 |
Delay |
整数 | 10 | 否 | 指定计算机重启前的延迟时间(秒)。必须介于 3 到 30 秒之间。默认为 10 秒。 |
CDF 跟踪管理
启动 CDF 跟踪
此脚本使用单个 CTL 文件或预定义的 CTL 文件类别作为输入来启动 CDF 跟踪过程。它跟踪所选 CTL 文件中定义的模块,并在
RunMinutes 参数指定的持续时间后自动停止 cdfcontrol.exe。
参数
| 名称 | 类型 | 默认值 | 必填 | 注意 |
|---|---|---|---|---|
traceOutputPath |
字符串 | C:\ProgramData\Citrix\WEM\CDFLogs |
否 | 指定 CDF 报告的输出路径。 |
category |
字符串 | all |
否 |
指定用于启动跟踪的预定义类别。支持的值为:
|
ctlFilePath |
字符串 | 空 | 假 | 指定用于启动跟踪的 ctl 文件。 |
RunMinutes |
整数 | 30 | 否 | 指定 cdfcontrol.exe 运行多长时间后自动停止并退出。 |
停止 CDF 跟踪
此脚本停止 CDF 工具跟踪。
CDF 日志清理
清理 CDF 跟踪日志有助于节省存储消耗。它应提供一个函数来删除给定目录下的 CDF 文件。
| 名称 | 类型 | 默认值 | 强制 | 注意 |
|---|---|---|---|---|
FileAgeDays |
整数 | 3 | 否 | 指定以天为单位的年龄阈值。早于此值的文件和文件夹将被删除。默认值为 3 天,此参数是可选的。如果 FileAgeDays 小于 1 天,则所有文件或目录都将被删除。 |
收集 Citrix AOT 故障日志
此脚本是一个全面的自动化工具,旨在收集和处理 Citrix AOT 日志。它与 Citrix CDFControl 集成,用于配置跟踪收集、应用筛选(默认值:
Level=1, Class=Failure)并将 ETL(事件跟踪日志)文件转换为可读的 CSV 格式以进行分析。
| 名称 | 类型 | 默认值 | 强制 | 注意 |
|---|---|---|---|---|
StartTime |
[DateTime] |
EndTime - 30 minutes |
否 | 指定日志筛选的开始时间 |
EndTime |
[DateTime] |
当前日期和时间 | 否 | 指定日志筛选的结束时间 |
检查 DNS 设置
此脚本是一个全面的 DNS 运行状况检查工具,专为 Citrix VDA 环境设计。它验证 DNS 配置并执行故障排除,以识别可能影响 Citrix 服务的潜在 DNS 相关问题。
| 名称 | 类型 | 默认值 | 强制 | 注意 |
|---|---|---|---|---|
DomainName |
[string] |
不适用 | 否 | 指定用于测试 DNS 解析的域名(启用 DNS 名称解析测试) |
FlushDNS |
[switch] |
否 | 否 | 指定是否将 DNS 缓存作为独立操作刷新 |
检查 RDS 许可证
此脚本是一个全面的远程桌面服务 (RDS) 许可证验证工具,旨在检查本地计算机上的 RDS 许可配置和状态。它在 Citrix VDA 环境中特别有用,因为 RDS 许可合规性对于正常运行至关重要。使用此脚本可确保许可合规性并保持不间断的多会话用户访问。
| 名称 | 类型 | 默认值 | 强制 | 注意 |
|---|---|---|---|---|
DomainName |
[string] |
不适用 | 否 | 指定用于测试 DNS 解析的域名(启用 DNS 名称解析测试) |
FlushDNS |
[switch] |
否 | 否 | 指定是否将 DNS 缓存作为独立操作刷新 |
诊断 VDA 注销
此脚本是一个全面的诊断工具,旨在排查 Citrix Virtual Delivery Agent (VDA) 注销问题。它执行多项健康检查和诊断过程,以识别 Citrix 环境中 VDA 注销问题的潜在原因。
| 名称 | 类型 | 默认值 | 必填 | 注意 |
|---|---|---|---|---|
StartTime |
[DateTime] |
EndTime - 30 minutes |
否 | 指定日志筛选的开始时间 |
EndTime |
[DateTime] |
当前日期和时间 | 否 | 指定日志筛选的结束时间 |
运行配置文件管理健康检查
此脚本对您的 Citrix Profile Management 部署执行全面的健康检查。它扫描配置以查找潜在问题,并分析日志以检测关键问题,例如临时配置文件错误和登录期间的显著时间间隔。
| 名称 | 类型 | 默认值 | 必填 | 注意 |
|---|---|---|---|---|
CtxSessionKey |
[string] | 空 | 否 | 指定用于搜索特定会话日志的 Citrix 会话密钥。如果未指定,脚本将分析过去 24 小时内的会话。 |
LogonTime |
[string] | 空 | 否 | 指定登录时间以筛选事件日志搜索。接受各种日期和时间格式。如果未指定,脚本将筛选过去 24 小时内的事件日志。 |
StructuredOutputOnly |
[switch] | 是 | 否 | 指定是否输出结构化 JSON 数据而不进行控制台日志记录。 |
Parallel |
[switch] | 是 | 否 | 指定是否对日志分析操作使用并行处理以提高性能。 |
设置配置文件重置触发器
此脚本设置一个触发器以重置用户配置文件。在用户下次登录时,现有配置文件将进行备份,并创建一个新的干净配置文件文件夹。
| 名称 | 类型 | 默认值 | 必填 | 注意 |
|---|---|---|---|---|
CtxSessionKey |
[string] | 空 | 真 | 指定用于在用户下次登录时触发配置文件重置的 Citrix 会话密钥。 |
FoldersToRestore |
[string] | 空 | 假 | 指定配置文件重置后要还原的文件夹。如果未指定,则默认还原已知文件夹,例如“下载”、“桌面”和“图片”。 |
BackupNameSuffix |
[string] | 空 | 假 | 指定配置文件重置期间备份文件夹名称的后缀。如果未指定,则后缀默认为 upm_%CurrentTimeStamp%。 |
诊断 Citrix AOT 问题
此脚本验证 Citrix Always On Tracing (AOT) 配置,诊断常见问题,并生成 AOT 诊断报告以支持故障排除。将
StructuredOutputOnly 参数设置为 true 会在结构化 UI 视图中显示结果,以便于查看。
| 名称 | 类型 | 默认值 | 强制性 | 注意 |
|---|---|---|---|---|
StructuredOutputOnly |
[boolean] | 否 | 否 | 如果指定,脚本将仅输出原始 JSON 诊断报告,而不是人类可读的格式化文本。 |
收集 Citrix 诊断日志
此脚本从 VDA 收集 Citrix Always On Tracing (AOT) 日志和 Windows 事件日志,并将其保存为带时间戳的 ZIP 文件。
| 名称 | 类型 | 默认值 | 强制性 | 注意 |
|---|---|---|---|---|
LogType |
[string] | 不适用 | 否 | 控制要收集哪些日志。AOTLog 仅收集 AOT ETL 文件,EventLog 仅收集 Windows 事件日志。留空以同时收集两者。 |
RestartTelemetryService |
[boolean] | 是 | 否 | 是否在收集 AOT 日志之前停止并重新启动 CitrixTelemetryService,这会释放 ETL 文件上的文件锁。接受 true 或 false。默认为 true。 |
StartTime |
[DateTime] | 24 小时前 | 否 | 指定日志收集的开始时间。默认为 24 小时前。示例:2025-08-01 10:57:15 |
EndTime |
[DateTime] | 当前时间 | 否 | 指定日志收集的结束时间。默认为当前时间。必须晚于 StartTime。示例:2025-08-14 11:57:15 |
OutputPath |
[string] | C:\ProgramData\Citrix\WEM\CitrixLogs |
否 | 写入输出 zip 文件的目录。默认为 C:\ProgramData\Citrix\WEM\CitrixLogs。 |
收集 Windows 事件日志
此脚本从虚拟投递代理 (VDA) 收集 Windows 事件日志,并将其保存为带时间戳的 ZIP 文件。
| 名称 | 类型 | 默认值 | 必填 | 注意 |
|---|---|---|---|---|
LogChannelPrefixes |
[string] | 不适用 | 否 | 逗号分隔的前缀,用于匹配 ETW 通道名称。如果提供,将覆盖默认的四日志收集。示例:Citrix-HostCore,Microsoft-Windows-AppLocker。 |
ProviderPrefixes |
[string] | 不适用 | 否 | 逗号分隔的前缀,用于匹配事件提供程序/源名称。脚本通过其 LogLinks 自动发现每个提供程序写入的日志通道,因此它适用于经典日志(应用程序、系统)和自定义 ETW 通道。如果提供,则覆盖默认的四日志收集。示例:WEM Agent Service,Norskale Agent Service。 |
StartTime |
[DateTime] | 24 小时前 | 否 | 指定事件日志收集的开始时间。默认为 24 小时前。示例:2025-08-01 10:57:15 |
EndTime |
[DateTime] | 当前时间 | 否 | 指定事件日志收集的结束时间。默认为当前时间。必须晚于 StartTime。示例:2025-08-14 11:57:15 |
OutputPath |
[string] | C:\ProgramData\Citrix\WEM\CitrixEventLogs |
否 | 写入输出 zip 文件的目录。默认为 C:\ProgramData\Citrix\WEM\CitrixEventLogs。 |
收集 Citrix Scout 诊断信息
此脚本运行 ScoutCLI.exe 以从 VDA 收集 Citrix 诊断数据,并将输出保存为带时间戳的 ZIP 文件。您可以选择排除特定的收集器,例如 MSI 或 localdata。
| 名称 | 类型 | 默认值 | 强制 | 注意 |
|---|---|---|---|---|
OutputPath |
[string] | C:\ProgramData\Citrix\WEM\CitrixScoutCliLogs |
否 | 写入 Scout 输出 zip 文件的目录。默认为 C:\ProgramData\Citrix\WEM\CitrixScoutCliLogs。 |
Exclude |
[string] | 不适用 | 否 | 要从 Scout 收集排除的收集器列表(逗号分隔)。支持的值:msi、localdata。留空以包含所有收集器。 |
更多信息
有关如何使用脚本化任务的示例,请参阅: