2011/08/03

Display computer name for logged on user in AD Users and Computers

Описание как можно сделать следующее:

Т.е. для учетных записей пользователей отображается имя компьютера, на который они вошли (или последний с которого вышли), а для учетных записей компьютера отображается имя пользователя который на них вошел (или последний вышедший). Для этого необходимо будет добавить VBS logon/logoff скрипт пользователям, который будет редактировать атрибут carLicense в AD для учеток компа и юзера. Добавить права пользователю на редактирование своего атрибута carLicense, и всем пользователям на редактирование атрибута carLicense у всех компьютеров. А так же добавить отображение колонки с нашим атрибутом в оснастку AD Users and Computers.
Краткая инструкция:
  1. Открываем AD Users and Computers и на OU содержащем ваших юзеров и компы нажимаем правой кнопкой и запускаем Delegate Wizard.
    • На первом экране нажимаем Далее
    • На следующем выбираем группу SELF
    • Далее выбираем Создать особую задачу для делегирования, которую применяем только к следующим объектам в этой папке - пользователь
    • Далее выбираем разрешения для записи атрибута carLicense
  2. Точно так же назначаем для группы пользователи домена (или более мелкой группы ваших пользователей) права для Компьютер объектов на запись его атрибута carLicense.
  3. Для добавления колонок в оснастку AD Users and Computers запускаем adsiedit.msc. Переходим в конфигурацию
    CN=default-Display,CN=409,CN=DisplaySpecifiers,CN=Configuration,DC=example,DC=org
    В зависимости от языка системы выбирайте 409 - en, 419 - rus. Изменения конфигурации затронит все оснастки на всех компьютерах. Раскрываем параметр extraColumns и добавляем строку 
    carLicense,Use,1,130,0
    Поля, разделенные запятыми, означают:
    имя поля AD,
    заголовок колонки,
    1=отображать по умолчанию 0=нет,
    ширина -1=автоподбор ширины по заголовку колонки,
    0=неизвестный параметр ;)
  4. Таким образом мы добавили колонку к просмотру AD U&C в режиме запросов. Если же необходимо добавить колонку к режиму просмотра OU, а так же OU Users и OU Computers (которые являются специальными контейнерами) - то необходимо так же отредактировать параметр extraColumns в конфигурациях:
    CN=container-Display,CN=409,CN=DisplaySpecifiers,CN=Configuration,DC=example,DC=org ;
    CN=organizationalUnit-Display,CN=409,CN=DisplaySpecifiers,CN=Configuration,DC=example,DC=org
    Обратите внимание что параметра extraColumns там может и не быть, или он может быть пустой. И как только вы добавите в него строку, при добавлении колонок вы сможете выбирать только из списка который вы добавили в параметр - т.е. из одной колонки. Поэтому я так же добавляю колонку
    whenChanged,Modify,1,130,0
    Чтобы иметь колонку с датой изменений (редактирования объекта, или последнего входа/выхода)
  5. Назначаем через GPO следующие vbs скрипты юзерам.
    На logon:
    Dim adsinfo, ThisComp, oUser 
    ' Определяем объекты
    Set adsinfo = CreateObject("adsysteminfo")
    Set ThisComp = GetObject("LDAP://" & adsinfo.ComputerName)
    Set oUser = GetObject("LDAP://" & adsinfo.UserName) 
    ' Заносим данные в AD
    ' В поле CarLicense компьютера пишем фамилию, имя пользователя и знак входа
    Thiscomp.put "CarLicense", oUser.sn + " " + oUser.givenName + " <"'+  CStr(Now)
    ThisComp.Setinfo 
    'В поле CarLicense учетки пользователя пишем имя компьютера и знак входа
    oUser.put "CarLicense", ThisComp.cn + " <"'+  CStr(Now)
    oUser.Setinfo 
    wscript.quit
    И на logoff:
    Dim adsinfo, ThisComp, oUser 
    ' Определяем объекты
    Set adsinfo = CreateObject("adsysteminfo")
    Set ThisComp = GetObject("LDAP://" & adsinfo.ComputerName)
    Set oUser = GetObject("LDAP://" & adsinfo.UserName) 
    ' Заносим данные в AD 
    ' В поле CarLicense компьютера пишем фамилию,имя пользователя и знак выхода
    Thiscomp.put "CarLicense", oUser.sn + " " + oUser.givenName + " >"'+  CStr(Now)
    ThisComp.Setinfo
    'В поле CarLicense пользователя пишем имя компьютера и знак выхода
    oUser.put "CarLicense", ThisComp.cn + " >" '+ CStr(Now)
    oUser.Setinfo 
    wscript.quit 
  6. Для проверки можно попробовать запустить logon скрипт с правами пользователя, он не должен выдавать ошибок, а в оснастке AD Users and Computers при обновлении должна появиться необходимая информация.

No comments:

Post a Comment