我正在编写一个PowerShell脚本来查找远程计算机上活动用户的会话ID,然后使用该会话ID启动程序。这是我到目前为止。从psexec/PowerShell提取会话ID查询用户命令
$queryusers = $psexecdirectory + ' \\' + $remotepc + ' -u ' + $domain + '\' + $username + ' -p ' + $password + ' query user'
$results = iex $queryusers
以上工作正常,下面被存储在变量$results
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
usr1 3 Disc 1:12 9/5/2013 11:59
AM
>usr2 rdp-tcp#1 4 Active . 9/5/2013 11:59
AM
我用下面来获取ID的例子的结果,但在会话名称“的数量RDP- CTP#0' 改变当另一个用户登录时,就像上面的输出,使之无用:
$id = $results | Select-String "$rdp-tcp#0\s+(\w+)" |
Foreach {$_.Matches[0].Groups[1].Value}
我不熟悉的PowerShell语法,并一直无法找到网站解释格式化选项。有人可以帮我吗?如果你知道一个网站,我可以了解更多关于从字符串中提取片段的信息?提前致谢。
或者使用更多的powershell(实际上是WMI),你不需要psexec也不需要字符串挥手。 http://gallery.technet.microsoft.com/scriptcenter/0e43993a-895a-4afe-a2b2-045a5146048a –