Как получить все сессии терминальной службы?

Вопрос или проблема

На Windows Server 2019 я сравниваю пользователей, подключенных в диспетчере задач, что я получаю от команды query user (или ярлык quser) из командной строки и в конечном итоге то, что я вижу с помощью счетчиков производительности в утилите Мониторинг производительности.

Вот в чем моя проблема: я подключен по RDP, поэтому в диспетчере задач и утилите командной строки я вижу, что мой раздел RDP активен. Однако, когда я смотрю на счетчики производительности, я вижу 1 активную сессию и 2 неактивные сессии, всего 3 сессии. Акцент на следующем скриншоте:

Скриншот доказательства

Что за 2 неактивные сеансовые службы терминалов, которые я не вижу в диспетчере задач и в командной строке? Как я могу выяснить, что это?

Вы можете использовать команду “query session”, чтобы увидеть их все. Одна из них будет “services”, а другая – “console”. Так что одна из них – это физическая сессия, которая будет использоваться, если будут подключены клавиатура и монитор. Не знаю, что такое “services” — но, возможно, это связано с интерактивными службами?

Ответ или решение

Чтобы получить полное представление о всех сессиях терминальных служб на Windows Server 2019, необходимо учитывать множество факторов. На основании предоставленной информации и вашего вопроса, ниже приведены рекомендации по выявлению всех активных и неактивных сессий.

Шаг 1: Использование команды query session

Для начала, важно знать, что команда query session, как и команда query user (или quser), предоставляет наиболее полное представление о всех сессиях. Выполнив команду:

query session

Вы получите список всех сессий, включая активные и неактивные. Обратите внимание на следующие ключевые моменты:

  • Сессия с идентификатором "services" обычно используется для процессов, работающих под управлением служебного контекста.
  • Сессия с идентификатором "console" представлена, когда сервер имеет физический доступ к монитору и клавиатуре, но не подключен через RDP.

Шаг 2: Разница между утилитами

Сравнивая результаты командной строки, задачника и утилиты производительности, следует учитывать, что некоторые службы и программы могут не отображаться в стандартных инструментах, таких как диспетчер задач:

  • Task Manager: отображает активные сессии RDP, но может скрывать системные и служебные сессии.
  • Performance Monitor: фокусируется на производительности системы, отчеты о сессиях могут включать скрытые или неактивные сессии.

Шаг 3: Что такое неактивные сессии?

Неактивные сессии, которые вы видите в Performance Monitor, могут быть вызваны несколькими факторами:

  1. Сессии, не имеющие активных пользователей: Это могут быть сессии, которые были открыты, но не используют активное взаимодействие с пользователем, например, сессии служб.
  2. Контекст служб: Сессия "services" используется для запуска различных фоновый служб, которые не имеют пользовательского интерфейса.

Шаг 4: Дополнительные команды для диагностики

Если вам нужно получить более детальную информацию о каждой сессии, можете использовать команду query user или qwinsta, которая также предоставляет информацию о состоянии каждий сессии:

qwinsta

Шаг 5: Проверка с помощью PowerShell

Также существует возможность использования PowerShell для получения информации о сессиях. Выполните следующий скрипт:

Get-RDUserSession

Эта команда позволит вам эффективно отследить все активные сессии, включая те, что могут отсутствовать в других инструментах.

Заключение

Подводя итог, для полной картины всех терминальных сессий на Windows Server 2019, следует использовать комбинацию команд query session, quser и qwinsta, а также рассмотреть возможность применения PowerShell. Это позволит вам не только увидеть все активные и неактивные сессии, но и понять природу их существования.

Следуя вышеизложенным рекомендациям, вы сможете глубже понять и контролировать терминальные сессии на вашем сервере.

Оцените материал
Добавить комментарий

Капча загружается...