Чтение переменных среды с использованием VBScript или ActiveX на клиенте Citrix - PullRequest
0 голосов
/ 31 декабря 2010

У меня проблемы с доступом к переменным окружения на html-странице. Мне нужно запустить веб-приложение (php) в дистрибутиве сервера Citrix. То, что я пытался сделать, это следующий код VBScript на моем теле HTML:

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

Это работает до тех пор, пока я вхожу в систему с моей учетной записью администратора (из-за того, что IE запускает разрешения сценариев), но когда я вхожу с обычной учетной записью пользователя, она не работает, говоря, что не может создать объект. Печально то, что невозможно изменить нормальный профиль пользователя.

Кто-нибудь знает другой способ получить их? На машину можно установить новое программное обеспечение, но его следует вызывать с веб-сайта htlm. Так что я думаю, если бы было возможно создать какой-нибудь ActiveX или Java-апплет для чтения этих переменных среды, но поскольку я новичок в ActiveX / Applets, я не знаю, если мне понадобятся какие-то специальные настройки для этих разрешений .

Любая помощь будет приветствоваться! :)

Ответы [ 2 ]

1 голос
/ 01 января 2011

Вероятно, самым простым способом было бы, чтобы ваше приложение принимало строку в URL с именем клиента, а затем передавало это в Citrix при запуске приложения (используя переменную %clientname%).

0 голосов
/ 26 января 2013

Я использую этот vbscript все время через Citrix, чтобы возвращать% clientname% при запуске приложения из Citrix. Я добавил, чтобы дополнительно определить, будет ли приложение работать локально.

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
...