Получение только «активных» сеансов удаленного рабочего стола

Получение только «активных» сеансов удаленного рабочего стола

В Windows я могу получить сеансы удаленного рабочего стола на определенном сервере, используя:

qwinsta /server:SERVER_NAME

Но это дает мне сеансы всех различных состояний (например: Активный, Диск, ...).

Кто-нибудь знает о команде или пакетном файле или скрипте, чтобы просто получить "активные" сеансы? Я хочу иметь возможность запустить его из обычного клиента Windows 7.

решение1

qwinsta /server:SERVER_NAME | find /I "Active"

Обратите внимание, что это всего лишь быстрый и грязный однострочный код, который просто выплюнет каждую строку, содержащую «Active» (в нижнем или верхнем регистре). Если вы ожидаете имена пользователей, которые содержат эту строку, все будет сложнее и потребуется проверить четвертый столбец на наличие правильной строки «Active»:

for /F "usebackq tokens=1,2,3,4,5*" %i in (`qwinsta /server:SERVER_NAME ^| find "Active"`) do if "%l" == "Active" ( echo %i %j %k %l %m )

Если вам в любом случае необходимо обработать отдельные поля выходных данных, предпочтительнее использовать последнюю форму, поскольку она откроет поля в переменных %i....%m

Но эта конструкция также ломается, если у вас есть имена пользователей, содержащие пробелы. Если это так, то все потеряно с qwinsta, и вам следует искать функцию PowerShell для извлечения списка пользователей.

Связанный контент