Posiadam kilka maszyn slave i master, które razem uruchamiają aplikację rozproszoną. Procesy na każdej maszynie slave muszą mieć GUI i dostęp do sieci (myślę, że wówczas nazywałoby się to procesem interaktywnym). Dla łatwości użycia byłoby dobrze, gdyby maszyna główna mogła uruchomić/zatrzymać procesy na tych maszynach slave.Uruchamianie zdalnych procesów w sieci Windows
Moim pierwszym pomysłem było wykorzystanie WMI i klasy Win32_Process do uruchomienia zdalnego procesu, ale po dalszych badaniach odkryto, że procesy rozpoczęte w ten sposób są nieinteraktywne i izolowane, a zatem nie mogą mieć żadnego graficznego interfejsu użytkownika. Uwaga mówi, że można użyć Win32_ScheduledJob.Create do stworzenia zdalnego procesu interaktywnego, ale działa on pod kontem LocalSystem, którego chciałbym uniknąć (również nie mogłem go uruchomić).
Jakie są dobre sposoby rozwiązania tego problemu? Może jest możliwe uruchomienie aplikacji pomocniczej, która z kolei rozpoczyna prawidłowy proces, ale to wydaje się dość brudne.
Edytuj: PsExec był naprawdę niezgrabny, gdy próbowałem go i powoli jak cholera (nie wiem dlaczego). Patrząc dalej na PsExec wydaje się, że instaluje tymczasową usługę na zdalnym komputerze, aby uruchomić aplikację. Czy byłby to jedyny sposób na stworzenie interaktywnego procesu z wykorzystaniem właściwej tożsamości? Czy powinienem dołączyć usługę pomocniczą w konfiguracji dla węzłów? Ale nawet wtedy, skąd miałbym się z tym porozumieć?
Kiedy próbowałem PsExec, było dość powolne (nie wiem dlaczego) i nie działało poprawnie. Aplikacje GUI będą uruchamiane, pod odpowiednim kontem, będą widoczne na pasku zadań, ale rzeczywisty GUI nigdy nie był aktualizowany i widoczny był tylko martwy "blok". – gix