我需要一个脚本或powershell命令来确定远程计算机上特定登录用户的 session ID,稍后用作该计算机上远程gui进程的 psexec -i 执行的参数该用户在远程计算机上的 session 。
到目前为止我设法使用
psexec \\remoteMachine -u user -p pswrd query session
获取远程计算机上的 session 列表:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
console 0 Conn wdcon
rdp-tcp#919 user 1 Active rdpwd
rdp-tcp#916 user 3 Active rdpwd
所以我想我可以以某种方式隔离所需的 id 并使用它 - 但还没有设法做到这一点
有什么想法吗? 也许还有其他更简单的方法?
感谢您的帮助。
最佳答案
只要您使用 PSExec,我就会坚持使用它。给定用户名即可轻松获取 ID 字段,例如:
$username = 'joe'
$results = psexec \\remoteMachine -u adminuser -p password query session
$id = $results | Select-String "$username\s+(\w+)" |
Foreach {$_.Matches[0].Groups[1].Value}
psexec \\remoteMachine -u $username -i $id -d notepad.exe
请注意,您需要将 -d
与 PSExec 一起使用,否则它将等到启动的程序退出。
关于scripting - 如何使用 script/powershell/... 确定远程计算机上的 session ID 以便与 psexec -i 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3742896/