Если память обслуживает, PoSh не поддерживает запросы RDP-сессий (если только не использует RDS-брокер, но я могу ошибаться), но вы можете легко сделать это с помощью запроса
Я не могу проверить это прямо сейчас, но что-то вроде этого должно сработать:
C:\>query session
SESSIONNAME USERNAME ID STATE TYPE DEVICE
console Administrator1 0 active wdcon
rdp-tcp#1 User1 1 active wdtshare
rdp-tcp 2 listen wdtshare
Вы даже можете позвонить с именем пользователя напрямую, если оно вам известно.
Слежение за сессией можно легко выполнить с помощью чего-то вроде
mstsc /v:"$srv" /shadow:"$id" /control /noconsentprompt
Я не проверял это, так что, возможно, он нуждается в некоторой настройке, но возможной отправной точкой может быть
$userSessions = query session user01 /SERVER:server01 | Select-Object -skip 1 | ForEach-Object{$_.Split(' ',[System.StringSplitOptions]::RemoveEmptyEntries)}
$sessionId = $userSessions[2]
mstsc /v:"$srv" /shadow:"$sessionId" /control /noconsentprompt
Конечно, при запуске с локального сервера вы можете опустить аргумент / SERVER: XXX.
Надеюсь, это поможет вам начать.