Имя: Пароль:
IT
 
Проектирование: Способы запуска интерактивного приложения на клиенте из сессии Citrix?
0 spock
 
14.11.07
12:38
Интересует как делают другие - cookbook так сказать.
Нужно из сессии Citrix запустить IE и показать его пользователю.
1 FreeFin
 
14.11.07
12:59
Опубликовать/Запустить приложение/вставить в логон-скрипт...что нужно, для что нужно...человеческим можешь объяснить?
2 spock
 
14.11.07
13:04
(1)объясняю человечески: нужно запустить приложение на клиентской машине (в нашем случае IE нужно запустить).
Нажали на кнопочку в 1с (или хоть где) из сессии Citrix, а на клиенте(!!) открылся IE.
Публикуя приложение, мы его запускаем в адресном пространстве самого сервера. Нужно этого избежать.

ps: может есть другие варианты? отличные от моей реализации. пока не внедрили :)
3 FreeFin
 
14.11.07
13:08
(2) Кратенько понял. Ты сидишь дето (на консоле напр.) Жмешь кнопу в своей сессии/който программе, а у клиента (сначала определиться у какого/каких) вылазиит на экране, в его сессии, иашка с картинками? Так?
4 Молния
 
14.11.07
13:17
закачиваешь себе PStools и сайта мелкософта. Там среди тузлов есть pcexec.exe. Он способен запустить прогу на удаленной тачке под указанным юзером. А в 1С на кнопку вешаешь команду системы запустить этот pcexec с указанными заранее параметрами
5 Молния
 
14.11.07
13:17
тока хз как ты будешь разбираться на каком компе надо запустить
6 smaharbA
 
14.11.07
13:18
7 smaharbA
 
14.11.07
13:19
Для продвинутых и того просче, скрипт по отслеживанию тогоже что и в (6) и запуск построчно, в файлике еще и проги с параметрами путями укажешь, все просто как апельсин
8 spock
 
14.11.07
13:20
(3)Есть сервер под управлением Citrix MF/PS: "ServerMF";
На этом сервере установлена 1с.
Есть клиент, с которого заходят на сервер "ServerMF": "Ivan-IV";

1. Пользователь залогинился в видну на "Ivan-IV", кликнул по ярлыку "ICA Connections" и попал на сервер "ServerMF";
2. Далее пользователь в сессии Citrix на сервере "ServerMF" кликнул по ярлыку "1С Предприятие", выбрал базу и ввел пароль для входа в базу "1С";
3. Далее пользователь открыл обработку/справочник/документ и нажал на кнопку - после чего на клиенте "Ivan-IV" должен запуститься процесс "IEXPLORE.EXE";
9 smaharbA
 
14.11.07
13:20
(5) при старте 1с в справочник пользователей запишет
10 smaharbA
 
14.11.07
13:21
+(9) для цитрикса есть прекрассный ком объект (в составе его) определит все и даже РДП сессии
11 Молния
 
14.11.07
13:21
(6) прикольно.
просто не все вкурсе что для psexec надо что бы с удаленной тачки был доступ к шаре admin$. Т.е. тачка должна быть с XP Pro и у юзера должен быть пароль. а на серваке надо прописать в control userpasswords2 что к тачке нужно подключаться с таким то паролем.
12 spock
 
14.11.07
13:22
(6)банально
13 FreeFin
 
14.11.07
13:28
(12) У мне Control Agent для этих целей прикручен. Еще банальнее? По файл-флагам задачи фасует. А шедулер виндовый я не пользую, нехороший он )))
14 spock
 
14.11.07
14:09
А если сервер и клиент находятся в разных сетях? Так же могут быть закрыты порты 135-139.
15 spock
 
14.11.07
16:40
+0 у меня получилось запустить по такой схеме:

Процедура Сформировать()
   Перем оCtxShl;
   Перем стрПутьIE, стрКомСтрока, стрURL;
   
   стрURL = "http://www.neta.ru/";
   
   оCtxShl = СоздатьОбъект("CtxShlCom.server");
   
   // Создается виртуальный канал
   //
   оCtxShl.Create();
   
   // Определяется путь до Program Files на клиенте
   //
   стрПутьIE = оCtxShl.GetFolderPath(38);
   стрПутьIE = стрПутьIE + "\Internet Explorer\IEXPLORE.EXE";
   
   // Создается процесс на клиентском компьютере по командной строке:
   // ""C:\Program Files\Internet Explorer\IEXPLORE.EXE" "http://www.neta.ru/""
   //
   стрКомСтрока = """" + стрПутьIE + """" + " " + """" + стрURL + """";
   
   оCtxShl.ExecCommandLine(стрКомСтрока);
КонецПроцедуры // Сформировать()
16 spock
 
14.11.07
19:40
(4)этот вариант не подходит. Клиент может зайти на сервер тонких клиентов (который сам является Citrix сервером), а с него уже уйти на основной Citrix сервер. Получается, что на первом сервере (тонких клиентов) уже куча сеансов (а могут даже с одними и теми же логинами). И в каком сеансе будет запущен IE? В консоли.
17 spock
 
14.11.07
19:41
+16 по этой же причине не все хорошо с (6)
18 t80
 
14.11.07
20:03
(16) нахер вам это все надо? живите проще
19 t80
 
14.11.07
20:05
+18 вам нужен спутниковый интернет wi-fi, с ним это все просто реализуется
20 t80
 
14.11.07
20:09
можно еще с рейдом поиграться
21 SnarkHunter
 
15.11.07
00:04
(20)А может просто использовать НайтиЗначение?
22 Ковычки
 
15.11.07
00:56
(15) откудова такой объект ?
это
set c = CreateObject("MetaFrameCOM.MetaFrameSession")
call c.Initialize(6, "", "", -1)
msgbox c.ClientAddress
msgbox c.ClientName
знаю, ну и подобное, а про (15) не слыхал
23 spock
 
15.11.07
06:59
(22)логично, что не слышал.
24 spock
 
15.11.07
07:01
(19)$ля, это что за поток сознания?
25 smaharbA
 
15.11.07
07:09
(23) просвети всеже, чито это было, в (15)
26 spock
 
15.11.07
07:11
(25)драйвер виртуального канала ICA + com-server
27 spock
 
15.11.07
07:12
+26 документации пока нет.
28 smaharbA
 
15.11.07
07:35
ужос, ради этого писать ком и сервис...
29 spock
 
15.11.07
07:40
(28)как оказалось, это не сложно.
30 smaharbA
 
15.11.07
07:46
а че там для драйвера IAM ?
31 spock
 
15.11.07
08:06
IAM?
32 spock
 
15.11.07
10:56
+31 что за IAM?
33 smaharbA
 
15.11.07
12:11
Identity and Access Management
34 spock
 
15.11.07
14:44
(33)а что для драйвера IAM?
развивай тему, ничего не понял, что хотел узнать от меня :)
35 vde69
 
15.11.07
15:36
можно пойти примерно таким путем


'Скрипт демонстрирует возможность принудительного завершения процессов "1cv7s.exe" на всех компьютерах
'указанного домена. Данный код можно применять непосредственно перед пакетным запуском 1С:Предприятия,
'требующим монопольного входа в базу данных (например, при резервном копировании).

'ВНИМАНИЕ! Задайте нужное значение переменной "DomainName"!

'ВНИМАНИЕ! Для успешной работы скрипта его желательно запускать с правами администратора домена.

'ВНИМАНИЕ! Чтобы опробовать скрипт, не производя деструктивных действий, достаточно закомментировать
'оператор "Proc.Terminate".

Option Explicit
On Error Resume Next

Dim DomainName 'Имя домена
DomainName = "MYDOMAIN"

Dim StrResult 'строка результата работы всей программы
StrResult = StrResult & CStr(Now) & " начало работы скрипта" & VbCrLf

Dim ADSI
Set ADSI = GetObject("WinNT://" & DomainName)
ADSI.Filter = Array("computer")

Dim Comp 'компьютер
Dim WMI 'объект WMI
Dim Proc 'процесс

Dim CurrName 'имя текущего компьютера
CurrName = GetNameComp()

'Цикл по компьютерам домена
For Each Comp In ADSI
   If Comp.Name <> CurrName Then
       Set WMI = GetObject("winmgmts:{ImpersonationLevel=Impersonate}!\\" & Trim(Comp.Name) & "\Root\CIMV2")
       If Err.Number=0 Then
           'Цикл по процессам компьютера
           For Each Proc In WMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv7s.exe'")
               StrResult = StrResult & _
                           CStr(Now) & " Computer=" & Comp.Name & " PID=" & Proc.ProcessId & _
                           VbCrLf
               'Завершение процесса
               'Proc.Terminate
           Next 'Цикл по процессам компьютера
       Else 'Не удалось соединиться с компьютером
           If Err.Number <> 462 Then 'The remote server machine does not exist or is unavailable
               StrResult = StrResult & _
                             "    " & CStr(Now) & " Computer=" & Comp.Name & " ERROR " & Err.Number & _
                             VbCrLf
           End If
       End If
       Err.Clear
   End If
Next 'Цикл по компьютерам домена

StrResult = StrResult & CStr(Now) & " конец работы скрипта" & VbCrLf

'Функция возвращает путь к каталогу временных файлов текущего пользователя
Function GetTempPath()
   GetTempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%")
End Function 'GetTempPath

'Функция возвращает имя текущего компьютера
Function GetNameComp()
   GetNameComp = CreateObject("WScript.Network").ComputerName
End Function 'GetNameComp
36 spock
 
15.11.07
15:51
(35)изменив этот скрипт, запускать на клиентах приложения? Читай (16)
AdBlock убивает бесплатный контент. 1Сергей