Я пишу несколько сценариев, чтобы сделать удаленное подключение к серверу Windows 2003 более удобным для пользователя, и при этом я хочу видеть, кто уже вошел в систему. В Windows я мог бы использовать qwinsta.exe для этого даже для удаленных серверов. Так что он каким-то образом раскрывается, но я не смог найти подходящий инструмент командной строки для Unix.
Не имея такого инструмента, я мог бы установить ssh-сервер на машину и вызвать его удаленно, анализируя вывод или написать небольшую собственную услугу, которая бы открывала это через http, если мне не нужен полноценный ssh-доступ.
Должен ли я это делать, или уже есть инструмент для удаленного запроса терминальных служб?
Если вам нужен простой доступ к серверу Windows из командной строки,
Там есть freeSSHd для этого.
Это позволит вам войти в Windows Server, используя свой ssh
клиент и запускать команды удаленно. Затем вы можете запустить qwinsta.exe
и использовать его вывод.
Я сбит с толку, вы хотите увидеть, кто вошел в систему с ОС UNIX или кто вошел в систему с Windows? Для Unix просто используйте who.
Если вы можете найти подходящие средства для запроса Windows WMI с хоста, отличного от Windows (и есть некоторые доступные, например вот один для Linux), то вы можете получить текущие сеансы, запросив Win32_LogonSessions. Обратной стороной этого метода является то, что служба WMI должна быть активна на вашей цели.
Другая (возможно, более простая) альтернатива - как вы упомянули, использовать SSH-соединение для локального запуска команды qwinsta и получить / проанализировать этот вывод.
Все те ребята, которые занимаются переполнением стека, очень сообразительны, когда дело касается программирования, у них, вероятно, будет дополнительная информация.