7

リモートマシンにログインしている特定のユーザーのセッションIDを特定できるスクリプトまたはpowershellコマンドが必要です。後で、そのセッションでのリモートGUIプロセスのpsexec -i実行のパラメーターとして使用されます。リモート マシン上のユーザー。

これまでのところ、私はなんとか使用できました

psexec \\remoteMachine -u user -p pswrd query 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を分離して使用できると思いますが、まだそれを行うことができていません

何か案は?多分他の - もっと簡単な方法?

助けてくれてありがとう。

4

3 に答える 3

15

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

PSExec で使用することに注意してください-d。そうしないと、起動されたプログラムが終了するまで待機します。

于 2010-09-19T00:50:39.403 に答える
7

これは、PowerShell がなくても実行できます。Windows に同梱されているqwinstaコマンド ライン ツールを使用できます。

例:

c:\>qwinsta
 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
 services                                    0  Disc
 console                                     1  Conn
>rdp-tcp#0         YourUser                  2  Active  rdpwd
 rdp-tcp                                 65536  Listen

使用法:

c:\>qwinsta /?
Display information about Remote Desktop Sessions.

QUERY SESSION [sessionname | username | sessionid]
              [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER] [/VM]

  sessionname         Identifies the session named sessionname.
  username            Identifies the session with user username.
  sessionid           Identifies the session with ID sessionid.
  /SERVER:servername  The server to be queried (default is current).
  /MODE               Display current line settings.
  /FLOW               Display current flow control settings.
  /CONNECT            Display current connect settings.
  /COUNTER            Display current Remote Desktop Services counters information.
  /VM                 Display information about sessions within virtual machines.
于 2012-01-11T14:16:00.300 に答える
4

PSerinalServices powershell モジュールを使用すると、ユーザー セッションと ID を取得できます。
モジュールは次の場所にあります: http://code.msdn.microsoft.com/PSTerminalServices

PS > Get-TSSession -UserName user1 -ComputerName pc1 | select UserName,SessionId

UserName SessionId
-------- ---------
User             1
于 2010-09-19T15:53:27.660 に答える