Product Documentation

XenApp 服务器实用程序参考

Sep 14, 2015

Citrix XenApp 服务器实用程序提供使用控制台维护和配置服务器和场的其他方法。必须在运行 Citrix XenApp 的服务器上从命令提示符下运行 Citrix XenApp 服务器实用程序。

命令 说明
altaddr 指定服务器备用 IP 地址。
app 运行应用程序执行 shell。
auditlog 生成服务器登录/注销报告。
ctxkeytool 生成进行 IMA 加密的场密钥。
ctxxmlss 更改 Citrix XML Service 端口号。
dscheck 验证服务器场数据存储的完整性。
dsmaint 维护服务器场的数据存储。
icaport 配置服务器上 ICA 协议所使用的 TCP/IP 端口号。
imaport 更改 IMA 端口。
query 查看与服务器场、过程、ICA 会话和用户有关的信息。

ALTADDR

使用 altaddr 可以为运行 Citrix XenApp 的服务器查询并设置备用(外部)IP 地址。备用地址会返回到提出此请求的客户端,并用于访问防火墙后的服务器。

语法

altaddr [/server:servername] [/set alternateaddress] [/v]
altaddr [/server:servername] [/set adapteraddress alternateaddress] [/v]
altaddr [/server:servername] [/delete] [/v]
altaddr [/server:servername] [/delete adapteraddress] [/v]
altaddr [/?]

参数

服务器名称
服务器的名称。
alternateaddress
服务器的备用 IP 地址。
adapteraddress
为其分配备用地址的本地 IP 地址。

选项

/server:servername
指定要在其上设置备用地址的服务器。默认为当前服务器。
/set
设置备用 TCP/IP 地址。如果指定了 adapteraddress,则仅将 alternateaddress 分配给具有此 IP 地址的网络适配器。
/delete
删除指定服务器上的默认备用地址。如果指定了适配器地址,则会删除该适配器的备用地址。
/v (verbose)
显示正在执行的操作的相关信息。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

备注

服务器子系统仅在启动时读取服务器外部 IP 地址的 altaddr 设置。如果使用 altaddr 更改 IP 地址设置,您只有重新启动 Citrix Independent Management Architecture Service,新设置才会生效。

如果 altaddr 在没有任何参数的情况下运行,则会显示在当前服务器上配置的备用地址信息。

示例

将服务器的备用地址设置为 1.1.1.1:

altaddr /set 1.1.1.1

在其适配器地址是 1.1.1.1 的网络接口卡上将服务器的备用地址设置为 2.2.2.2:

altaddr /set 2.2.2.2 1.1.1.1

安全限制

无。

APP

App 是用于安全执行应用程序的脚本解释器。使用 App 可先读取执行脚本,将标准 .ini 类型文件复制到用户目录,再启动应用程序;或在应用程序终止后执行与应用程序相关清理。下面将介绍脚本命令。

语法

app scriptfilename

参数

scriptfilename
包含 app 命令的脚本文件名称(请参阅以下脚本命令)。

脚本命令

copy sourcedirectory\filespec targetdirectory
将文件从 sourcedirectory 复制到 targetdirectory。Filespec 指定要复制的文件,可包含通配符(*、?)。
deletedirectory\filespec
删除用户在指定目录中所拥有的文件。Filespec 指定要删除的文件,可包含通配符(*、?)。有关详细信息,请参阅“示例”一节。
deleteall directory\filespec
删除指定目录中的所有文件。
execute
使用 workdir 命令指定的工作目录执行 path 命令指定的程序。
path executablepath
Executablepath 是要运行的可执行文件的完整路径。
workdir directory
将默认的工作目录设置为 directory 指定的路径。

脚本参数

directory
目录或目录路径。
executablepath
要运行的可执行文件的完整路径。
filespec
指定要复制的文件,可包含通配符(*、?)。
sourcedirectory
从其中复制文件的目录和路径。
targetdirectory
文件复制到的目录和路径。

备注

如果未指定 scriptfilename,则 app 会显示错误消息。

Application Execution Shell 会从脚本文件读取命令,然后按顺序处理命令。脚本文件必须位于 %SystemRoot%\Scripts 目录中。

示例

下面的脚本将运行 Notepad.exe 程序。当此程序终止时,脚本会删除为启动应用程序的用户创建的 Myapps\Data 目录中的文件:

PATH C:\Myapps\notepad.exeWORKDIR C:\Myapps\DataEXECUTEDELETE C:\Myapps\Data\*.*

以下脚本复制 C:\Write\Files 目录中的所有 .wri 文件,并执行 C:\Temp.wri 目录中的 Write.exe,然后在程序终止时删除此目录中的所有文件:

PATH C:\Wtsrv\System32\Write.exeWORKDIR C:\Temp.wriCOPY C:\Write\Files\*.wri C:\Temp.wriEXECUTEDELETEALL C:\Temp.wri\*.*

在下面的示例中,将使用脚本文件实现前端注册实用程序,然后运行应用程序 Coolapp.exe。您可以使用此方法连续运行多个应用程序:

PATH C:\Regutil\Reg.exeWORKDIR C:\RegutilEXECUTEPATH C:\Coolstuff\Coolapp.exeWORKDIR C:\TempEXECUTEDELETEALL C:\Temp

安全限制

无。

AUDITLOG

Auditlog 可基于 Windows Server 安全事件日志生成登录/注销活动报告。要使用 auditlog,必须先启用登录/注销帐户管理。可以使 auditlog 输出至文件。

语法

auditlog [username | session] [/eventlog:filename] [/before:mm/dd/yy] [/after:mm/dd/yy] [[/write:filename] | [/detail | /time] [/all]]
auditlog [username | session] [/eventlog:filename] [/before:mm/dd/yy] [/after:mm/dd/yy] [[/write:filename] | [/detail] | [/fail ] | [ /all]]
auditlog [/clear:filename]
auditlog [/?]

参数

filename
事件日志输出文件的名称。
session
指定用于生成登录/注销报告的会话 ID。可以使用此参数检查特定会话的登录/注销记录。
mm/dd/yy
限制登录的月、日和年(两位数格式)。
username
指定要为其生成登录/注销报告的用户名。可以使用此参数检查特定用户的登录/注销记录。

选项

/eventlog:filename
指定用作 auditlog 输入的备份事件日志名称。可以使用auditlog /clear: filename在事件日志查看器中备份当前日志。
/before:mm/dd/yy
仅报告 mm/dd/yy 之前的登录/注销活动。
/after:mm/dd/yy
仅报告 mm/dd/yy 之后的登录/注销活动。
/write:filename
指定输出文件的名称。创建可导入应用程序的逗号分隔文件(例如电子表格),以生成自定义的报告或统计信息。它会生成每位用户的登录/注销活动报告,显示登录/注销时间及总登录时间。如果文件名称已经存在,则数据会附加到文件。
/time
生成每位用户的登录/注销活动报告,显示登录/注销时间及总登录时间。适用于按用户收集使用情况统计信息。
/fail
生成所有登录尝试失败的报告。
/all
生成所有登录/注销活动的报告。
/detail
生成登录/注销活动的详细报告。
/clear:filename
在 filename 中保存当前的事件日志,并清除事件日志。如果 filename 已经存在,则此命令不起作用。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

备注

Auditlog 提供用来验证系统是否安全以及使用是否正确的日志。信息即可提取为报告,也可提取为逗号分隔文件以用作其他程序的输入。

您必须在本地服务器上启用登录/注销帐户管理,以收集供 auditlog 使用的信息。要启用登录/注销帐户管理,请以本地管理员身份登录,然后使用 Microsoft Windows 的“审核策略”启用登录/注销帐户管理。

安全限制

您必须拥有 Windows 管理员权限,才能运行 auditlog

CTXKEYTOOL

ctxkeytool 可用于启用和禁用 IMA 加密功能,并生成、加载、替换、启用、禁用或备份场密钥文件。

语法

ctxkeytool [generate | load | newkey | backup] filepath
ctxkeytool [enable | disable | query]

选项

generate
生成新的密钥并将其保存到 filepath。仅使用此命令不足以启用 IMA 加密。
load
可用于:
  • 将新密钥加载到之前无密钥的服务器上
  • 将正确的密钥加载到已有密钥的服务器上
  • 将新密钥加载到计算机及场中
newkey
使用本地场密钥,在数据存储中创建新的加密密钥。
backup
将现有场密钥备份到文件。
enable
为场启用 IMA 加密功能。
disable
为场禁用 IMA 加密功能。
query
可用于:
  • 检查本地计算机上是否有密钥
  • 检查以确定是否为场启用了 IMA 加密功能
  • 简称您的密钥是否与场密钥匹配

备注

首次为要启用 IMA 加密的服务器场中的第一台服务器生成密钥时,请依次使用以下选项:generateloadnewkey。对于场中的每台后续服务器,只需要加载密钥。在一台服务器上激活 IMA 加密功能之后,即会在整个场中启用此功能。

如果丢失了某台服务器的密钥文件,只要对同一场中仍有密钥的另一台服务器运行 backup 选项,即可获得相同的密钥文件。此命令会重新创建密钥文件。重新创建密钥文件后,使用 load 将其加载到丢失此文件的服务器。

使用 disable 选项禁用 IMA 加密功能之后,必须重新输入配置日志记录数据库的密码。如果希望再次激活 IMA 加密功能,请在场中的任一服务器上运行 enable

安全限制

只有具有本地管理员权限的 Citrix 管理员,才能运行 ctxkeytool

CTXXMLSS

语法

ctxxmlss [/rnnn] [/u] [/knnn] [/b:a] [/b:l] [/?]

选项

/rnnn
将 Citrix XML Service 的端口号更改为 nnn。
/u
卸载内存中的 Citrix XML Service。
/knnn
保持连接 nnn 秒。默认值为 9 秒。
/b:a
将服务绑定到所有网络接口。此为默认设置。
/b:l
仅将服务绑定到 localhost。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

安全限制

无。

备注

有关详细信息,请参阅系统要求

DSCHECK

语法

dscheck [/clean] [/?]

选项

/clean
尝试修复找到的任何一致性错误。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

备注

Dscheck 执行各种测试,验证服务器场的数据存储的完整性。如果运行此命令时不使用参数,则仅会运行这些测试。在可直接连接至数据存储的场中的服务器上运行 dscheck

使用 /clean 选项运行 dscheck 时,该实用程序将运行测试,并删除数据存储中不一致的数据(通常是服务器和应用程序)。因为删除这些数据会影响场的操作,所以请务必先备份数据存储,然后再使用 /clean 选项。

使用 /clean 选项运行该实用程序时,您可能需要在场中的每台服务器上运行具有 recreatelhc 参数的 dsmaint 命令,以更新本地主机缓存。运行此命令会将 XenApp(32 位版本)的 HKLM\SOFTWARE\Wow6432Node\Citrix\IMA\RUNTIME 或 HKLM\SOFTWARE\Citrix\IMA\RUNTIME 中的 PSRequired 注册表值设置为 1。

Dscheck 通过多种方法报告测试结果。首先,它将发现的所有错误及摘要发送至事件日志和命令窗口。您也可以将 dscheck 生成的输出写入文件。

其次,在 Citrix XenApp 的性能对象下更新多个性能监视器值。这些值包括服务器错误计数、应用程序错误计数、组错误计数以及指示检测到这些错误的整体标志。

最后,dscheck 在扫描成功(未发现任何错误)时返回错误代码 0,在遇到任何问题时返回错误代码 1。

Dscheck 主要在以下三个数据存储对象中进行查找:服务器、应用程序和组。对于这些对象类型的每一种,dscheck 都会对每个对象实例执行一系列测试。

例如,对于数据存储中的每个服务器对象,dscheck 都会确认是否存在相应的通用服务器对象,然后再进一步确认这两个对象的主机 ID 和主机名是否匹配。

示例

仅运行一致性检查:

dscheck

检查一致性并修复错误:

dscheck /clean

DSMAINT

在场服务器上运行 dsmaint 可以执行 XenApp 数据存储维护任务,包括备份数据存储、将数据存储迁移到新服务器以及压缩 XenApp 数据存储或通过流技术传输脱机数据库。并非所有 dsmaint 命令都适用于所有数据库类型。

使用此命令时,用户名和密码可能需要区分大小写,具体取决于使用的数据库和操作系统。

语法

dsmaint config [/rade] [/user:username] [/pwd:password] [/dsn:filename]
dsmaint backup destination_path
dsmaint compactdb [/lhc]
dsmaint migrate [{/srcdsn:dsn1 /srcuser:user1 /srcpwd:pwd1}] [{/dstdsn:dsn2 /dstuser:user2 /dstpwd:pwd2}]
dsmaint publishsqlds {/user:username /pwd:password}
dsmaint recover
dsmaint recreatelhc
dsmaint recreaterade
dsmaint verifylhc [/autorepair]
dsmaint [/?]

参数

destination_path
备份数据存储的本地路径。请不要使用与原始数据库或共享点相同的路径。
dsn1
源数据存储的 DSN 文件名称。
dsn2
目标数据存储的 DSN 文件名称。
filename
数据存储的名称。
password
连接到数据存储的密码。
pwd1
源数据存储密码。
pwd2
目标数据存储密码。
user1
源数据存储用户登录。
user2
目标数据存储用户登录。
username
连接到数据存储时使用的用户名。

选项

config
更改用于连接到数据存储的配置参数。输入 DSN 文件的完整路径,并用引号括起。例如:
dsmaint config /user:ABCnetwork\administrator /pwd:Passw0rd101 /dsn:"C:\Program Files (x86)\Citrix\Independent Management Architecture\mf20.dsn"

首先停止 Citrix Independent Management Architecture Service,然后再将 config/pwd 选项一起使用。

警告:必须将 /dsn 指定给 dsmaint config,否则会更改用于访问 SQL Server 或 Oracle 数据库的安全上下文。
/rade
压缩脱机数据存储。
/user:username
连接到数据存储时所用的用户名。
/pwd:password
连接到数据存储时所用的密码。
/dsn:filename
IMA 数据存储的文件名。
backup
创建 SQL Server Express 部署数据存储的备份副本。在承载数据存储的 XenApp 服务器上运行此命令。需要指定保存备份数据库文件副本的本地文件夹路径。请勿使用此参数备份 SQL Server 或 Oracle 数据存储。
警告:运行dsmaint backup时,指定与现有数据存储相同的路径会对现有数据存储造成无法挽回的损坏。
compactdb
压缩本地数据库文件。在数据库压缩期间,会暂时无法读取和写入数据库。根据数据库大小和使用情况,压缩时间可以为几秒种到几分钟。
/lhc
在运行此参数的服务器上压缩本地主机缓存。在场与维护任务运行同样长的时间之后,运行dsmaint /lhc
migrate
在不同的数据存储数据库之间迁移数据。在任何连接到数据存储的 XenApp 服务器上运行此命令。使用此命令可将数据存储移动到其他服务器,在服务器名称发生变化时重命名数据存储,或将数据存储迁移到不同类型的数据库(例如,从 SQL Server Express 迁移到 SQL Server)。
要将数据存储迁移到新的服务器:
  1. 使用您在第一次运行 XenApp 安装程序之前执行的步骤,准备新的数据库服务器。
  2. 在要运行 dsmaint migrate 的服务器上,创建此新数据库服务器的 DSN 文件。
  3. 在任何连接到数据存储的服务器上运行 dsmaint migrate
  4. 在场的每台服务器上运行 dsmaint config,以将其指向新数据库。
/srcdsn:dsn1
要从中迁移数据的源数据存储名称。
/srcuser:user1
用于连接到要从中迁移数据的数据存储的用户名。
/srcpwd:pwd1
用于连接到要从中迁移数据的数据存储的密码。
/dstdsn:dsn2
迁移数据的目标数据存储名称。
/dstuser:user2
允许您连接到迁移源数据存储的目标数据存储的用户名。
/dstpwd:pwd2
允许您连接到迁移源数据存储的目标数据存储的密码。
publishsqlds
发布 SQL Server 数据存储进行复制。仅从创建场的服务器运行 publishsqlds。发布的名称为 MFXPDS。
recover
将 SQL Server Express 数据存储还原为最后所知的好的状态。在未运行 Citrix Independent Management Architecture Service 的情况下,直接在服务器上运行此命令。
recreatelhc
重新创建本地主机缓存数据库。如果运行dsmaint verifylhc后系统显示提示,请运行此命令。运行 dsmaint recreatelhc 后,请重新启动 IMA Service。启动 IMA Service 后,将使用数据存储中的新数据填充本地主机缓存。
recreaterade
重新创建应用程序流技术推送脱机数据库。如果 Citrix Independent Management Architecture Service 停止运行,但本地主机缓存未损坏,请运行此命令作为故障排除步骤。
verifylhc
验证本地主机缓存的完整性。如果本地主机缓存已损坏,则系统会提示您重新创建该缓存的选项。如果使用verifylhc /autorepair选项,则在发现本地主机缓存损坏时会自动重新创建该缓存。或者,可以使用dsmaint recreatelhc重新创建本地主机缓存。
/?
显示实用程序的语法和选项。

备注

使用 dsmaint 之后,Citrix 建议运行 dscheck 以检查 XenApp 数据存储上的数据完整性。

安全限制

只有拥有正确的数据库用户名和密码的用户,才能运行 dsmaint configdsmaint migrate 命令。

ICAPORT

语法

icaport {/query | /port:nnn | /reset} [/?]

选项

/query
查询当前的设置。
/port:nnn
将 TCP/IP 端口号更改为 nnn。
/reset
将 TCP/IP 端口号重置为 1494(默认值)。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

备注

默认端口号为 1494。此端口号必须介于 0 和 65535 之间,且不得与其他已知端口号相冲突。

如果更改端口号,请重新启动服务器,新值才能生效。如果在服务器上更改端口号,那么在每个要连接到该服务器的 Receiver 或插件上也必须进行相应的更改。有关在 Receiver 或插件上更改端口号的说明,请参阅 Receiver 或插件的文档。

示例

将 TCP/IP 端口号设置为 5000

icaport /port:5000

将端口号重置为 1494

icaport /reset

安全限制

只有拥有 Windows 管理员权限的 Citrix 管理员才能运行 icaport

IMAPORT

使用 imaport 可查询或更改 IMA 端口。

语法

imaport {/query | /set {IMA:nnn | ds:nnn}* | /reset {IMA | DS | ALL} } [/?]

选项

/query
查询当前的设置。
/set
将指定的 TCP/IP 端口设置为指定端口号。
ima:nnn
将 IMA 通信端口设置为指定端口号。
ds:nnn
将数据存储服务器端口设置为指定端口号。
/reset
将指定的 TCP/IP 端口重置为默认值。
ima
将 IMA 通信端口重置为 2512。
ds
将数据存储服务器端口重置为 2512。
all
将所有适用的端口重置为默认值。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

QUERY FARM

使用 query 可显示网络中与服务器场有关的信息。

语法

query farm [server [/addr | /app | /app appname | /load | /ltload]]
query farm [ /tcp ] [ /continue ]
query farm [ /app | /app appname | /disc | /load | /ltload | /lboff | /process]
query farm [/online | /online zonename]
query farm [/offline | /offline zonename]
query farm [/zone | /zone zonename]
query farm [/?]

参数

appname
已发布应用程序的名称。
server
场中服务器的名称。
zonename
场中区域的名称。

选项

farm
显示基于 IMA 的服务器场中与服务器有关的信息。可以将 qfarm 用作 query farm 的简写形式。
server /addr
显示指定服务器的地址数据。
/app
显示应用程序名称,以及场中所有服务器或特定服务器的服务器负载信息。
/app appname
显示指定应用程序的信息,以及场中所有服务器或特定服务器的服务器负载信息。
/continue
每输出一页后不暂停。
/disc
显示场的已断开会话数据。
/load
显示场中所有服务器或特定服务器的服务器负载信息。
/ltload
显示场中所有服务器或特定服务器的服务器负载限制信息。
/lboff
显示运行状况监视和恢复从负载平衡中删除的服务器的名称。
/process
显示场的活动进程。
/tcp
显示场的 TCP/IP 数据。
/online
显示场和所有区域中的联机服务器。数据收集器由符号“D”表示。
/online zonename
显示指定区域中的联机服务器。数据收集器由符号“D”表示。
/offline
显示场和所有区域中的脱机服务器。数据收集器由符号“D”表示。
/offline zonename
显示指定区域中的脱机服务器。数据收集器由符号“D”表示。
/zone
显示所有区域中的所有数据收集器。
/zone zonename
显示指定区域中的数据收集器。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

备注

Query farm 可返回服务器场中基于 IMA 的服务器的信息。

安全限制

只有 Citrix 管理员才能运行 query farm

QUERY PROCESS

使用 query 可显示与网络中的进程有关的信息。

语法

query process [ * | processid | username | sessionname | /id:nn | programname ] [ /server:servername ] [ /system ]
query process [/?]

参数

*
显示所有可见进程。
processid
在场中运行的进程的三位或四位 ID 号。
programname
场中程序的名称。
服务器名称
场中服务器的名称。
sessionname
会话名称,例如 ica-tcp#7。
username
连接到场的用户名。

选项

process
显示与在当前服务器上运行的进程有关的信息。
process *
显示当前服务器上的所有可见进程。
process processid
显示指定 processid 的进程。
process username
显示属于指定用户的进程。
process sessionname
显示以指定会话名称运行的进程。
process /id:nn
显示与在当前服务器上以指定 ID 号运行的进程有关的信息。
process programname
显示与指定程序名称相关联的进程信息。
process /server:servername
显示与在指定服务器上运行的进程有关的信息。如果未指定服务器,则会返回当前服务器的信息。
process /system
显示与在当前服务器上运行的系统进程有关的信息。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

安全限制

无。

QUERY SESSION

使用 query 可显示与网络中的会话有关的信息。

语法

query session [sessionname | username | sessionid]
query session [/server:servername] [/mode] [/flow] [/connect] [/counter]
query session [/?]

参数

服务器名称
场中服务器的名称。
sessionname
会话名称,例如“ica-tcp#7”。
sessionid
会话的两位 ID 号。
username
连接到场的用户名。

选项

session sessionname
识别指定的会话。
session username
识别与用户名相关联的会话。
session sessionid
识别与会话 ID 号相关联的会话。
session /server: servername
识别指定服务器上的会话。
session /mode
显示当前行设置。
session /flow
显示当前流控制设置。
session /connect
显示当前连接设置。
session /counter
显示当前远程桌面服务计数器信息。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

安全限制

无。

QUERY TERMSERVER

使用 query 可显示与网络中的终端服务器有关的信息。

语法

query termserver [servername] [/domain:domain] [/address] [/continue]
query termserver [/?]

参数

服务器名称
场中服务器的名称。
要查询的域的名称。

选项

termserver servername
识别终端服务器。
/address
显示网络和节点地址。
/continue
每输出一页后不暂停。
/domain: domain
显示与指定域有关的信息。如果未指定域,则默认为当前域。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

备注

如果未指定参数,则 query termserver 会列出当前域中的所有终端服务器。

安全限制

无。

QUERY USER

使用 query 可显示与网络中的用户有关的信息。

语法

query user [ username | sessionname | sessionid ] [ /server:servername ]
query user [/?]

参数

服务器名称
场中服务器的名称。
sessionname
会话名称,例如“ica-tcp#7”。
sessionid
会话的 ID 号。
username
连接到场的用户名。

选项

user username
显示指定用户名的连接信息。
user sessionname
显示指定会话名称的连接信息。
user sessionid
显示指定会话 ID 的连接信息。
user /server: servername
定义要查询的服务器。默认情况下会查询当前服务器。
/?
显示实用程序的语法以及与实用程序选项有关的信息。

备注

如果未指定参数,query user 会显示当前服务器上的所有用户会话。可以将 quser 用作 query user 命令的缩写形式。

安全限制

无。