В 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, чтобы получить список пользователей.