在Citrix客户端上使用VBScript或ActiveX读取环境变量

时间:2010-12-30 21:05:08

标签: vbscript activex applet citrix

我在访问html页面中的环境变量时遇到了麻烦。 我需要在Citrix服务器分发上运行Web应用程序(php)。 我试图做的是我的html主体上的以下VBScript代码:

Set oShell = CreateObject( "WScript.Shell" )
comp=oShell.ExpandEnvironmentStrings("%CLIENTNAME%")

只要我使用我的管理员帐户登录(因为IE运行脚本权限),它就可以工作,但是当我使用普通用户帐户输入时,它无法正常工作,说它无法创建对象。 可悲的是,无法更改正常的用户配置文件。

有人知道另一种方式来获取它们吗? 可以在机器上安装新软件,但应该从htlm网站调用。 所以我在想是否可以创建某种ActiveX或java applet来读取这些环境变量,但是因为我是ActiveX / Applets的新手我不知道如果我需要某些特殊的设置来获得这些权限

任何帮助都将受到欢迎! :)

2 个答案:

答案 0 :(得分:1)

最简单的方法可能是让您的应用程序接受带有客户端名称的URL中的字符串,然后在启动应用程序时使用Citrix传递此信息(使用%clientname%变量)。

答案 1 :(得分:0)

我一直使用此vbscript通过Citrix在从Citrix运行应用程序时返回%clientname%,此外我还添加了以确定它应该在应用程序本地运行。

Dim sh
Dim en
noWorkstation = "No Workstation"
Set sh = CreateObject("WScript.Shell")
Set en = sh.Environment("VOLATILE")
en("Citrix_Variable") = sh.ExpandEnvironmentStrings("%CLIENTNAME%")
sTemp = sh.ExpandEnvironmentStrings("%CLIENTNAME%")
set WshNetwork = CreateObject("Wscript.Network")
computername = wshNetwork.Computername
msgbox "Computer name is" computername "...And should be empty because we are looking for CLIENTNAME"
msgbox "CLIENTNAME is..." clientname

'Or if you can return the correct answer via Citrix or locally connected app
if sTemp = "%CLIENTNAME%" then
  clientname = computername
end if