Назад | Перейти на главную страницу

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

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

qwinsta /server:SERVER_NAME

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

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

qwinsta /server:SERVER_NAME | find /I "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, чтобы получить список пользователей.