比如说:我是用windows账号通过mstsc远程到了主机A上,但结束时我只是关闭了远程会话窗口,如果主机A不关机,我的windows账号依然会挂在主机A上面
这里会出现一种情况,当我远程到十几台电脑后,有一些注销了,另一些则没有所以有什么方法可以看到我用windows账号登录到了哪些ip/hostname上 且 这些会话是目前还未中断的?
补充:
我登录的主机或者虚拟机都是静态ip,数量会比较多,我不知道自己远程过其中的哪些,根据qwinsta查询只能获取当前主机的登录状况吧,应该不能满足我的使用需求
你可以使用powershell脚本来查询你的windows账号登录的所有主机的ip/hostname及连接会话的状态,下面是一个示例脚本:
```shell
# Get all active mstsc session
$TSSessions = qwinsta /server:*
# Iterate through the array
foreach ($TSession in $TSSessions)
{
# Get only the active sessions
if($TSession -match "Active")
{
# Get the IP/Hostname
$ServerIP = $TSession.split()[2]
# Get the session name
$SessionName = $TSession.split()[3]
# Get the session state
$SessionState = $TSession.split()[4]
# Output the info
Write-Host "IP/Hostname
```
可以使用Windows自带的工具查看,在命令行中输入qwinsta,可以查看到当前连接到主机的远程会话的详细信息,其中包括远程会话的IP地址、用户名等信息,可以查看到目前还未中断的会话。
或者
可以使用命令行工具query.exe来查询。
在命令提示符窗口中输入以下命令:
query session
这将显示所有当前会话,其中包括用mstsc远程连接的会话。您可以使用“ID”列中的会话ID来识别远程会话,并使用“STATE”列来确定会话是否仍处于活动状态。
在 Windows 操作系统中,可以使用以下方法查询已经使用 mstsc 远程连接的会话是否仍未中断:
打开 Task Manager:按 Ctrl + Shift + Esc 或者在开始菜单中搜索 "Task Manager"。
在 Task Manager 中点击 "Users" 标签:该标签将显示所有当前使用该计算机的用户。
在用户列表中查找你的用户名:如果你的用户名已经标识为 "远程会话",则说明你的远程会话仍未中断。
对于要查询的每台电脑,都需要重复上述步骤,以查看你的用户名是否标识为 "远程会话"。
如果你是在网络环境中使用多台计算机,你可以使用以下方法查询每台计算机上是否有未中断的远程会话:
在命令提示符中输入以下命令:qwinsta
检查命令输出:如果 "状态" 列中显示为 "Active",则说明该远程会话仍未中断。
使用查询命令query session查看会话状态。
使用命令net session查看会话状态。
使用远程桌面管理器查看会话状态。
使用远程桌面管理器的“系统管理”菜单中的“连接会话”来查看会话状态。
使用Windows PowerShell命令Get-RDSession来查看会话状态。