Просмотр активного подключения к удаленному рабочему столу на данном компьютере

Я ищу инструмент, чтобы узнать, удален ли доступ к компьютеру в локальной сети пользователем или нет, и в идеале я хотел бы знать, кто этот пользователь. В моей компании мы обмениваемся виртуальными машинами, и мы продолжаем просить членов команды, если они используют какой-либо удаленный компьютер. Я хотел бы иметь какую-то панель управления, которая может сказать мне, какой компьютер используется, и какой компьютер свободен.

Я рад использовать любое коммерческое решение, которое потребует установки сервисов на каждой из машин, которые необходимо отслеживать, или что-то в этом роде.

Ответы

Ответ 1

Ниже приведено упрощение, если вы запрашиваете от клиента Windows, присоединенного к тому же домену, что и запрашиваемая система, и могут требовать определенные права выше и выше обычного пользователя домена. Если вы столкнетесь с проблемами аутентификации/разрешения, это будет первое, что я проверил.

Существует инструмент, доступный по крайней мере еще в Windows XP под названием "qwinsta". Более поздние версии Windows имеют как qwinsta, так и "сеанс запроса".

qwinsta /server:computer01
 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
 console                                     0  Conn    wdcon
 rdp-tcp                                 65536  Listen  rdpwd
                   administrator             2  Disc    rdpwd

Это показывает, что пользователь "администратор" зарегистрирован, но отключен. Так как в этом примере computer01 представляет собой систему Windows Server 2003 с лицензией RDP по умолчанию "администрирование", там второй сеанс прослушивает кого-то для подключения.

Повторное выполнение этой же команды после подключения к ранее отключенному сеансу выглядит следующим образом:

 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
[unchanged output removed]
 rdp-tcp#25        administrator             2  Active  rdpwd

Этого достаточно, чтобы ответить "кто-то в настоящее время активен через RDP", и если вы используете индивидуальные имена пользователей, он должен также ответить "кому". Если вы все используете "testuser" или "administrator" или что-то еще, вы, вероятно, захотите узнать ответ "от какого клиента", и это не указано выше.

Вышеприведенный дает быстрый базовый ответ без дополнительных инструментов. Для получения более подробной информации вы можете посмотреть cassia library или PSTerminalServices (построена на кассии). См. Некоторые ответы в этом вопросе для более подробной информации.

Моя первая мысль заключалась в том, чтобы использовать инструменты Sysinternals, такие как PsLoggedOn или LogonSessions. Затем я нашел ссылку на инструменты qwinsta и rwinsta, ранее неизвестные мне, в этот пост в блоге с 2003 года.