作者:lucky_笨鸟_660 | 来源:互联网 | 2024-12-27 13:28
本文探讨了如何在发布XenApp应用时,通过命令行参数实现启动时的参数传递。特别介绍了静态和动态参数传递的方法,并详细解释了ICA文件中两种参数传递方式的区别及安全检查机制。
在部署 XenApp 应用程序时,可以通过命令行参数直接在可执行文件路径后添加参数,以实现在启动时传递参数的功能。然而,如果需要动态调整这些参数,则需要在 Web Interface 端进行二次开发,以便动态修改 ICA 文件中的 LongCommandLine 值。
### 直接在可执行文件后面添加参数
可以直接在应用程序的可执行文件路径后添加命令行参数,以实现启动时的参数传递。此外,还可以通过 ICA 文件传递参数到应用程序,具体方法如下:
#### 使用 ICA 文件传参的两种方式
ICA 文件支持两种参数传递方式:%* 和 %**,它们各有特点:
- **%*** 用于安全地传递文件名。Citrix 会检查传递的文件名称的合法性和安全性。
- **%*** 用于无检查地传递文件名,适用于某些特殊场景。
因此,如果使用 %* 传递参数不成功,可以尝试使用 %**。此外,也可以通过修改注册表项来强制启用或禁用安全检查。
#### 注册表设置
可以通过修改以下注册表项来控制是否启用安全检查:
- **HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI\PublishedAppCommandLineFlag**
该值是一个 DWORD 类型,值为 1 表示启用安全检查,值为 0 表示禁用安全检查。即使使用 %*,在修改注册表强制禁用安全检查后,也能成功传递参数。
### 动态调整参数
为了实现动态调整参数,可以在 Web Interface 端进行二次开发,动态修改 ICA 文件中的 LongCommandLine 值,从而实现更灵活的参数传递功能。