
В 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 для извлечения списка пользователей.