Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запрет на вход в сеть с одинаковыми именами

2.1K
31 марта 2005 года
pnvnik
40 / / 26.04.2004
Как вышеозначенную тему организовать в скрипте?
Возможно это есть в настройках политики
безопасности сервера, но я что-то такого в явном
виде не нашел. При входе пользователя в домен
выполняется батник, как определить что пользователь
с таким именем уже подключен к сети (а дальше уже
принимать меры:))?
405
01 апреля 2005 года
Dmitrii
554 / / 16.12.2004
Цитата:
Originally posted by pnvnik
Как вышеозначенную тему организовать в скрипте?
Возможно это есть в настройках политики
безопасности сервера, но я что-то такого в явном
виде не нашел. При входе пользователя в домен
выполняется батник, как определить что пользователь
с таким именем уже подключен к сети (а дальше уже
принимать меры:))?



Домен на Windows 2000/XP/2003?
Если - "да", то настроек политики безопасности с запретом на регистрацию нескольких сеансов под одним именем нет.
У нас реализовано так:
1. Есть два сценария на VBS. Один регистрирует начало сеанса, другой - завершение.
2. Сценарии запускаются на основании настроек политики безопасности домена, заданных в ключе: Политика "Default Domain Policy" – Конфигурация пользователя – Конфигурация Windows – Сценарии (вход/выход из системы).
2.1. Сценарий входа создаёт в некотором сетевом каталоге текстовый файл, имя которому задаётся по имени зарегистрированного сеанса.
Сценарий выхода этот файл удаляет.
2.2. Если сценарий входа обнаруживает, что файл с таким же именем, как и у регистрирующегося в сети пользователя, уже существует, то он выдёт пользователю сообщение об отказе в регистрации сеанса и немедленно завершает сеанс.
Здесь, правда, есть "подводный камень": при любом завершении сеанса начинает работать сценарий выхода и удаляет файл с именем уже зарегистрировавшегося пользователя. Таким образом, вторая попытка входа "нарушителя дисциплины" увенчается успехом.
Чтобы избежать такой ситуации сценарий входа вносит в создаваемый им файл имя компьютера, на котором был открыт сеанс, а сценарий выхода удаляет файл лишь в том случае, когда имя указанного в нём компьютера совпадает с именем станции, на которой завершается сеанс.
3. Включена политика "Синхронный запуск сценариев входа в систему" (ключ Конфигурация компьютера – Административные шаблоны – Система – Вход в систему).

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

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

Самые сложные моменты:

1. Определение имён пользователя и компьютера.
Dim objSysInfo 'As ADSystemInfo
Dim cmpInfo,usrInfo
Dim cmpName,usrName
Set objSysInfo = CreateObject("ADSystemInfo")
cmpInfo=objSysInfo.ComputerName
usrInfo=objSysInfo.UserName
Set objSysInfo = Nothing
x=InStr(1,cmpInfo,",",vbTextCompare)
cmpName=Mid(cmpInfo,4,x-4)
x=InStr(1,usrInfo,",",vbTextCompare)
usrName=Mid(usrInfo,4,x-4)

2. Принудительное завершение сеанса.
Dim objWMIService,colOperatingSystems,objMy
Set objWMIService = GetObject("winmgmts: {impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objMy In colOperatingSystems
objMy.Win32Shutdown(4)
Next

2.1K
01 апреля 2005 года
pnvnik
40 / / 26.04.2004
Спасибо, Dmitrii! Именно к такому варианту мы и склоняемся, дабы не заморачиваться со сторонними программами. По ходу дела еще одна засада: некорректное завершение сеанса (в этом случае скрипт при выходе не отработает, хотя это не очень страшно, т.к. это уже внештатная ситуация => не часто происходит).
Если есть что-нибудь в эл. виде по работе с Active Directory можешь поделиться?
405
01 апреля 2005 года
Dmitrii
554 / / 16.12.2004
Цитата:
Originally posted by pnvnik
По ходу дела еще одна засада: некорректное завершение сеанса (в этом случае скрипт при выходе не отработает, хотя это не очень страшно, т.к. это уже внештатная ситуация => не часто происходит).



У нас это зависит, по большей части, от интенсивности открывания/закрывания сеансов, так как высокопроизводительными серверами мы не располагаем, а пользователей - много.
Бывает не каждый день и не более трёх случаев в день (по всем возможным причинам).
Выход очень прост - повторная регистрация пользователя (всё будет благополучно, если он регистрируется на той же станции, на которой работал прежде).
Замечу, что я описал минимизированный алгоритм сценария входа. У нас он сложнее, а значит и ресурсов "съедает" больше.

Цитата:
Originally posted by pnvnik
Если есть что-нибудь в эл. виде по работе с Active Directory можешь поделиться?



К сожалению, в электронном виде ничего нет. Если надо, могу перечислить литературу, которой пользуемся.
Могу также поделиться макросом для пакетной процедуры создания и первичной настройки учётных записей пользователей.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог