问题
Is it possible to detect that a specific user has an open session on a computer and to open a process in that session so that the application can be interacted with by the user using PowerShell remoting?
How would I go around detecting which users have sessions open on the machine and what their state is (active, idle, disconnected, etc...)? How would I launch an application within one of those sessions?
UPDATE
I have found that you can identify the session ID a process is running in:
PS > ( Get-Process notepad ).SessionId
1
I can't seem to find anyway to specify the session ID for a process when you start it though.
回答1:
Powershell cannot do this, but microsoft's (previously sysinternal's) tool PSEXEC can do this. Take a look at the -i parameter:
-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.
来源:https://stackoverflow.com/questions/1727828/start-a-program-in-active-user-session-with-powershell-remoting