Запустите программу в активном пользовательском сеансе с удаленным взаимодействием PowerShell.

Можно ли определить, что конкретный пользователь имеет открытый сеанс на компьютере, и открыть процесс в этом сеансе, чтобы пользователь мог взаимодействовать с приложением с помощью удаленного взаимодействия PowerShell?

Как мне определить, какие пользователи имеют открытые сеансы на машине и каково их состояние (активен, неактивен, отключен и т. д.)? Как мне запустить приложение в одном из этих сеансов?

ОБНОВЛЕНИЕ
Я обнаружил, что вы можете определить идентификатор сеанса, в котором запущен процесс:

PS > ( Get-Process notepad ).SessionId
1

Я все равно не могу найти, чтобы указать идентификатор сеанса для процесса при его запуске.


person Eric Schoonover    schedule 13.11.2009    source источник


Ответы (1)


Powershell не может этого сделать, но инструмент PSEXEC от Microsoft (ранее sysinternal) может это сделать. Взгляните на параметр -i:

 -i         Run the program so that it interacts with the desktop of the
            specified session on the remote system. If no session is
            specified the process runs in the console session.
person x0n    schedule 13.11.2009