Форум » [x]Harbour » Как отловить вход на сервер ? » Ответить

Как отловить вход на сервер ?

Andrey: Столкнулся с проблемой. Есть сервер-терминала. Есть рабочие места пользователей. Все работают через сервер-терминала. И каждый раз набирают свой логин и пароль. Можно ли сделать программу которая бы отлавливала момент входа на сервер ? И в соответствии с тем или иным пользователем выводила бы просто сообщение для этого пользователя !!! Меня интересует только первоначальный вход !!!

Ответов - 8

КСС: Как один из самых простых вариантов я бы попробовал добавить в раздел HKLM\Run на сервере вызов своей программы, которая проверяет имя пользователя и выполняет некие действия. Раздел Run имеется в папке HKLM\Software\Microsoft\Windows\Run, а также в HKLM\Software\Microsoft\Windows NT\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run. Из первой ветки можно наверняка сделать такой вызов и прога будет срабатывать для любого входа на сервер, а из второй, возможно, прога будет срабатывать только для терминального входа - это я не пробовал. Почему из реестра понятно - чтобы юзеры не видели, а иначе можно вставить вызов в "C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка".

КСС: Хотел бы дополнить. Само собой есть разделы Run и в ветке HKCU и в ветках каждого пользователя. И с ними тоже можно поэкспериментировать в зависимости от задачи. Но, если у Вас полноценный терминальный доступ с открытым рабочим столом, меню и прочими возможностями, то Вы наверняка настроили жесткие параметры безопасности, в т.ч. и на файловом уровне. Поэтому вполне можно не заморачиваться, а вставить вызов спецпрограммы в "C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка", а саму программу и её ярлык (*.lnk) защитить от юзверей на файловом уровне и всё.

Andrey: Вот блин заработался. Совсем забыл об "автозагрузке" ! А как моя программа в Автозагрузке узнает "Имя" вошедшего пользователя ?


LYSK: Andrey пишет: А как моя программа в Автозагрузке узнает "Имя" вошедшего пользователя ? А переменные окружения для чего? там есть (я имею ввиду под терминалом) CLIENTNAME - имя компа клиента USERDOMAIN USERNAME USERPROFILE SESSIONNAME ну и много еще разных полезных переменных..

Andrey: LYSK пишет: ну и много еще разных полезных переменных.. Спасибо большое за подсказку ! А как бы можно прочитать (программно) список USERNAME всего СЕРВЕРА ?

КСС: С этим тоже можно поступить легко: в папке "C:\Documents and Settings" имеются папки для всех пользователей.

КСС: А как моя программа в Автозагрузке узнает "Имя" вошедшего пользователя ? В MiniGUI-Ext имеется функция GetUserName(). Полагаю она должна сработать.

Andrey: КСС пишет: В MiniGUI-Ext имеется функция GetUserName(). Полагаю она должна сработать. Спасибо большое за помощь !



полная версия страницы