我想在远程计算机中获取用户会话的会话ID。我可以通过命令
实现这一目标$result = Query Session account17 /server:localhost
和
$result = qwinsta account17 /SERVER:localhost
但这是在本地完成的。
但是当尝试在远程会话上运行该命令时,我收到错误“帐户17没有会话”,即使用户帐户17已登录。我可以通过执行上述操作来获取用户的会话本地命令在机器上。
有没有办法检索远程机器的会话ID?
答案 0 :(得分:0)
尝试Terminal Services PowerShell Module
PS> Get-TSSession -ComputerName server1 -UserName account17
答案 1 :(得分:0)
你可以通过Win32_LoggedOnUser类从WMI中获取它,但是你必须做一些解析才能很好地解决它:
gwmi win32_loggedonuser -ComputerName $computername |
foreach {
[PSCustomObject]@{
User = $_.antecedent -replace '.+Domain="(.+)",Name="(.+)"','$1\$2'
Session = $_.dependent -replace '.+LogonID="(\d+)"','$1'
}
}
或者您可以使用CIM:
Get-CimInstance win32_loggedonuser -ComputerName $computername |
foreach {
[PSCustomObject]@{
User = $_.antecedent -replace '.+Name = "(.+)", Domain = "(.+)".','$2\$1'
Session = $_.dependent -replace '.+LogonID = "(\d+)".','$1'
}
}