Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

Удалённый запуск приложений через WMI   Найти похожие ветки 

 
AbrosimovA ©   (2006-05-15 12:52) [0]

Кто-нибудь знает ответ на вопрос: "Почему приложения, которые я запускаю удалённо на другой машине посредством WMI, не отображаются, хотя видны в менеджере задач? Как с этим бороться?"


 
umbra ©   (2006-05-19 16:29) [1]

а где они должны отображаться?


 
AbrosimovA ©   (2006-05-22 08:25) [2]

Поверх рабочего стола.


 
umbra ©   (2006-05-22 10:22) [3]

не видны они, скорее всего, потому, что не привязяны ни к одной интерактивной сессии и поэтому нет рабочего стола, поверх которого они должны отображаться


 
AbrosimovA ©   (2006-05-22 11:20) [4]

А как же привязать к интерактивной сессии или это невозможно в-принципе для удалённого запуска.

function TMainForm.StartApplication(strServer: string; const Command: string): boolean;
var
ObjWMI: OleVariant;
ObjProcess,ProcessID: OleVariant;
ObjConfig: OleVariant;
Error: OleVariant;
begin
Result:=False;
ObjWMI:=GetObject("Winmgmts:{impersonationLevel=impersonate}!"+strServer+"\root\cimv2");
ObjProcess:= objWMI.Get("Win32_Process");
ObjConfig:=objWMI.Get("Win32_ProcessStartup").SpawnInstance_;
ObjConfig.ShowWindow:=SW_NORMAL;
ObjConfig.WinstationDesktop:=Здесь что указывать;
Error:=ObjProcess.Create(Command,,ObjConfig,ProcessID);
if Error = 0 then
 begin
   Caption:=IntToStr(ProcessID);
   Sleep(300);
   Result:=True;
   SetForegroundWindow(MainForm.Handle);
 end
 else
   MessageBox(0, PChar("Не удалось запустить приложение."),
              PChar(MainForm.Caption), MB_OK);
end;


 
umbra ©   (2006-05-22 13:44) [5]


> А как же привязать к интерактивной сессии или это невозможно
> в-принципе для удалённого запуска.

невозможно. Вот цитат из МСДН

Создание Процессов на удаленных машинах

Вы можете использовать Win32_Process.Create, чтобы выполнить скрипт или программу на удаленном компьютере. Однако, из соображений безопасности, процесс не может быть интерактивным. Когда Win32_Process.Create вызывается на локальным компьютере, процесс может быть интерактивным.

Удаленный процесс не имеет пользовательского интерфейса, но виден в списке процессов Менеджера Задач.

.....................

Чтобы удаленно создать интерактивный процесс Вы можете использовать
Win32_ScheduledJob.Create. Однако, Win32_ScheduledJob.Create создает процессы от имени учетной записи LocalSystem, что может привести к получению процессом слишком больших прав.


 
AbrosimovA ©   (2006-05-22 13:57) [6]

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
15-1213202010
Dmitry S
2008-06-11 20:33
2008.07.27
Упорядочивание mp3 архива.


2-1214468381
Ega23
2008-06-26 12:19
2008.07.27
Правильно ли написал наследника TList?


15-1212446696
alex-drob
2008-06-03 02:44
2008.07.27
Где написать код, чтобы он выполнился после загрузки программы


10-1148343170
The Only
2006-05-23 04:12
2008.07.27
Не создаётся excel


2-1214480489
lewka-serdceed
2008-06-26 15:41
2008.07.27
Поиск слова в строке