none
Как запретить пользователю выкидывать другого из системы? RRS feed

  • Вопрос

  • Здравствуйте.


    В государственном образовательном учреждении есть компьютерный класс. Используются Windows XP и Windows 7 (Win 7 Pro x64 SP1 Ru). Все компьютеры являются членами домена. Есть необходимость, что бы был доступ не только локальный, но и удаленный (через VPN-сервер и далее RDP). Причем, что бы пользователю, вошедшему в систему, не смог помешать другой пользователь пытающийся войти на тот же компьютер. Все пользователи имеют ограниченные учетные записи. Удаленный рабочий стол доступен только пользователям с личными учетными записями (есть еще общая УЗ). С XP проблем нет, т.к. компьютеры подключены к домену и это выключает быстрое переключение пользователей. Если бы XP не были членами домена, то эта проблема решалась бы выключением параметра “Использовать быстрое переключение пользователей” в панели управления. А вот с Windows 7 полный завал.

    Windows 7 ведет себя следующим образом. При попытке войти в систему, в которую уже произведен вход другим пользователем, система предлагает отправить запрос уже вошедшему с просьбой войти другому. Казалось бы, уже вошедший может просто проигнорировать запрос или отклонить его. Но, проблема в том, что если ответа нет в течении 30 сек., ОС выключает текущего и впускает желающего войти. На сколько я понимаю, т.к. речь идет не о серверной ОС, то программы выполняющиеся от первого вошедшего в этом случае будут приостановлены. Это первая проблема. Вторая в том, что второй вошедший, в случае сбоя ПО, может нарушить работу ОС, а так же проигнорировав предупреждение перезагрузить систему.


    Я так и не смог выключить быстрое переключение пользователей. Кое-что нашел, но это не решает главной проблемы:

    1. Редактор локальной групповой политики -> Политика “Локальный компьютер” -> Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключения -> значение параметра “Ограничить количество подключений” выставляю равным 1. Это не позволяет удаленно войти в систему, если другой пользователь уже вошел удаленно, но еще не отключился.


    2. Редактор локальной групповой политики -> Политика “Локальный компьютер” -> Конфигурация компьютера -> Административные шаблоны -> Система -> Вход в систему -> включаю параметр “Скрыть точки входа для быстрого переключения пользователей”. Это не позволяет войти локально в систему, если другой пользователь уже вошел локально и заблокировал учетную запись.

    3. В реестре по адресам “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost” и “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Svchost” нашел мультистроковый параметр “Netsvcs”. В нем есть строка “FastUserSwitchingCompatibility”. Удаление ее не привело к ожидаемому результату.

    Повторю еще раз. Необходимо, чтобы пользователю, вошедшему в систему, не смог помешать (выкинуть его из системы) другой пользователь пытающийся войти на тот же компьютер.

    Можно ли решить эту проблему в Windows 7? 


    7 октября 2012 г. 15:29

Все ответы

  • Ваша проблема действительно многократно описана в различных форумах, причем предлагается решение, нарушающее Лицензионное соглашение. Рекомендовать его я, разумеется не могу.

    Попробуйте воспользоваться командой change logon, которая нередко используется при работе с терминальными серверами. Тем не менее, команда доступна и в Windows 7. В случае успешного входа пользователя в систему должна быть выполнена команда (с правами администратора)

    change logon /disable

    а при выходе из терминальной сессии

    change logon /enable .

    Это не позволит пользователю подключаться к удаленному рабочему столу Windows 7, пока существует терминальная сессия другого пользователя. Обратите внимание, что команда должна запускаться в контексте локального администратора, тогда как пользователи, регистрирующиеся в терминальной сессии, скорее всего, не будут иметь административных прав. Проблему можно решать разными путями. Например, создавая назначенные задания, запускаемые по событиям входа пользователя в систему и выхода из нее. Либо разработать сценарий, который будет выполняться с момента старта компьютера, причем сценарий должен мониторить изменение текущего числа терминальных сессий и при значении, отличном от нуля, выполнять первую вышеуказанную команду, а при нуле - вторую.

    7 октября 2012 г. 20:38
    Модератор
  • Спасибо за ответ. Что-то я сам найти ничего не смог. Очень плохо, что все так. Я надеялся, что просто сам плохо копал систему. Умеет же Microsoft удивлять пользователей. Зачем же так гадить людям?
    8 октября 2012 г. 13:19
  • Злого умысла здесь нет. Microsoft не меняет поведение той или иной функции операционной системы, если на то не поступают многочисленные пожелания. Здесь, думаю, имела место похожая ситуация. Представители служб техподдержки жаловались, что не могут подключиться удаленно к компьютерам сотрудников, которые вошли в систему, а их самих нет на рабочем месте. Проблема была решена, причем достаточно разумно (открытые документы пользователя и запущенные приложения не закрываются, а "подвешиваются"), но возникла проблема в вашей ситуации.

    8 октября 2012 г. 14:22
    Модератор
  • Я не против нового функционала, я против, когда новым убивают нужное старое. Заметьте, в XP, если комп. не подключен к домену, можно было и так и так.
    8 октября 2012 г. 14:41
  • Я тоже могу возразить, что запускать приложения в терминальных сессиях лучше на Windows Server, а не в клиентских операционных системах. Там и функционала больше, и проблема, с которой вы столкнулись, в принципе невозможна.

    Кроме того, требуемое поведение на клиентских ОС можно попробовать получить, используя какое-нибудь стороннее бесплатное средство удаленного подключения к экрану без создания терминальной сессии, например, VNC.


    8 октября 2012 г. 19:10
    Модератор
  • Что касается сервера, то это дороже, если покупать (нам Microsoft дает бесплатно, но с ограничениями). Да и антивирус под него будет в ряде случаев другой и тоже дороже. Так же могут быть некоторые проблемы с работой программ. Согласитесь, что не все программы обязаны корректно работать на серверной ОС. Скорее всего будут, но, если производитель на это не рассчитывал, как повезет. Жизнь идет, что-то меняется, вчера ты был уверен, что такая-то программа не нужна, а сегодня оказалось, что позарез необходима. И тут могут начаться танцы с бубном. Я уже сталкивался с ситуацией, когда программа к дорогущему специальному GPS-приемнику отказывалась работать на серверной Windows. На клиентской проблем не было.

    Что касается VNC, то я так понимаю, что это на подобие TeamViewer. Особенность этой дряни заключается в том, что эта программа как-бы перемещает пользователя к компьютеру. Проблема в том, что пользователь имеющий доступ к компьютеру через такую программу может получить доступ к чужой учетной записи. А это, как Вы понимаете, рубит под корень политику разграничения прав пользователей. Поэтому я перешел на VPN.

    Что касается выкидывания пользователя, раньше проблемы не было, а теперь есть.

    9 октября 2012 г. 10:10
  • Там достоинство только в том, что нельзя подключиться удаленно, если кто-то другой уже работает в удаленном сеансе. А при локальной работе удаленный доступ потребуется отключать, чтобы кто-то действительно не подключился к чужой пользовательской сессии.

    9 октября 2012 г. 10:43
    Модератор
  • А при локальной работе удаленный доступ потребуется отключать, чтобы кто-то действительно не подключился к чужой пользовательской сессии.

     Согласитесь, что это неудобно.
    9 октября 2012 г. 12:06
  • Андрей Владимирович   удалось решить проблему?

    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий

    19 октября 2012 г. 7:56
    Модератор
  • К сожалению нет. Полагаю, что решить эту проблему в состоянии только Microsoft. Обходной путь, нарушающий лицензионное соглашение я в Интернете найти так и не смог. Так что даже попробовать не удалось.
    19 октября 2012 г. 9:31
  • Yuriy Lenchenkov, а зачем Вы пометили сообщение osr_ как ответ? Отставить хулиганство!!! Я пробовал использовать change logon. Это не решает проблемы. 1. Если пользователь вошел в систему через удаленный рабочий стол, то локальный пользователь всегда его выкинет. 2. Если произойдет разрыв связи, удаленный пользователь сможет подключиться опять? Думаю, что нет.
    1 ноября 2012 г. 20:52