Thiscomp setinfo error

Есть скрипт при логоне пользователя в описание компа пишется учетка залогиненного, так же и с учеткой пользователя, только вот минус, что он пишет и имя терминальных серверов когда пользователь логинится туда, как сделать исключение этих серверов (на самом терминальном сервере не могу сделать, чтоб не прилетали доменные политики, т.к. не обходимые политики должны лететь)
  • Remove From My Forums
  • Вопрос

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

    On Error Resume Next 

    Dim adsinfo, ThisComp, oUser 

    Set adsinfo = CreateObject(«adsysteminfo») 

    Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName) 

    Set oUser = GetObject(«LDAP://» & adsinfo.UserName) 

    Thiscomp.put «description», oUser.cn + » | Logged on: » + » » + CStr(Now) 

    ThisComp.Setinfo

    oUser.put «Department», ThisComp.cn + » | Logged on: » +  » » + CStr(Now)

    oUser.Setinfo 

    wscript.quit

Ответы

  • Ну как нить так например

    On Error Resume Next 

    Dim adsinfo, ThisComp, oUser 

    Set adsinfo = CreateObject(«adsysteminfo») 

    Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName) 

    Set oUser = GetObject(«LDAP://» & adsinfo.UserName) 

    if Lcase(ThisComp.cn)=»terminal1″ or Lcase(ThisComp.cn)=»terminal2″ then
    wscript.echo «I’ve did nothing»
    wscript.quit
    end if

    Thiscomp.put «description», oUser.cn + » | Logged on: » + » » + CStr(Now) 

    ThisComp.Setinfo

    oUser.put «Department», ThisComp.cn + » | Logged on: » +  » » + CStr(Now)

    oUser.Setinfo 

    wscript.quit

    • Помечено в качестве ответа

      18 декабря 2011 г. 12:02

В некоторых ситуациях администратору необходимо точно знать кто и за каким компьютером работает. Для этого можно использовать поле «Описание» у ПК в домене. Данную возможность можно реализовать путем написания двух скриптов с автоматическим выполнением при входе и выходе пользователя. Дальнейшая настройка в полной статье.

Листинг скриптов

PCInfo-logon.vbs

On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject("adsysteminfo")
Set ThisComp = GetObject("LDAP://" & adsinfo.ComputerName)
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
Thiscomp.put "description", "Logged on: " + oUser.sn + " " +  oUser.GivenName + " / " + oUser.sAMAccountName + " ( " + CStr(Now) + " )"
ThisComp.Setinfo

Результатом работы будет внесение в поле «Описание» записи следующего вида:

Logged on: Фамилия Имя Отчество / login ( DD.MM.YYYY HH:MM:SS )

PCInfo-logoff.vbs

On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject("adsysteminfo")
Set ThisComp = GetObject("LDAP://" & adsinfo.ComputerName)
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
Thiscomp.put "description", ">>> Logged off: " + oUser.sn + " " +  oUser.GivenName + " / " + oUser.sAMAccountName + " ( " + CStr(Now) + " )"
ThisComp.Setinfo

Результатом работы будет внесение в поле «Описание» записи следующего вида:

>>> Logged off:  Фамилия Имя Отчество / login ( DD.MM.YYYY HH:MM:SS )

Интеграция с Active Directory

Теперь нам необходимо создать новую политику и прописать данные скрипты на выполнение при входе и выходе пользователя.

Для этого:

  1. Открываем оснастку «Управление групповой политикой»
  2. Создаем новую политику: «Объекты групповой политики» -> ПКМ -> «Создать»
  3. Далее открываем нашу политику на редактирование (ПКМ -> Изменить)
  4. Открываем: «Конфигурация пользователя» -> «Политики» -> «Конфигурация Windows» -> «Сценарии (вход/выход из системы)»
  5. В правом окне выбираем «Вход в систему» (ПКМ -> «Свойства»)
  6. На вкладке «Сценарии» жмем кнопку «Показать файлы»
  7. В открывшуюся папку кладем файл PCInfo-login.vbs
  8. Возвращаемся к окну настроек и жмем кнопку «Добавить»
  9. Указываем путь до только что скопированного скрипта
  10. Жмем «ОК»
  11. Повторяем процедуру (шаги 5-10) для файла PCInfo-logoff.vbs в разделе «Выход из системы»
  12. Далее закрываем редактор групповой политики и настраиваем связь с подразделением, где у вас хранятся учетные записи пользователей простым перетаскиванием политики на подразделение.

Дополнительные настройки

Для корректной работы данных скриптов, у пользователей должно быть разрешение на изменение атрибута «Описание» у объекта «Компьютер.

Настроим данное разрешение:

  • Открываем оснастку «Active Directory — Пользователи и компьютеры»
  • В меню «Вид» ставим галку напротив «Дополнительные компоненты
  • Переходим к подразделению «Компьютеры» и открываем их свойства
  • В открывшемся окне переходим на вкладку «Безопасность», жмем кнопку «Дополнительно»
  • В открывшемся окне на вкладке «Разрешения» жмем кнопку «Добавить»
  • В открывшемся окне вписываем: «Пользователи домена» и жмем «Ок»
  • В открывшемся окне на вкладке «Свойства»:
    • Выставляем «Применить» на «Дочерние объекты: Компьютер»
    • Ставим галки в столбце «Разрешить» напротив: «Чтение: Описание» и «Запись: Описание»
  • Жмем «Ок» во всех трех открытых окнах последовательно.
  • Готово.

  • Remove From My Forums
  • Вопрос

  • Добрый день, имеется скрипт, который выполняется при входе, он должен записывать пользователю в поле Описание имя комьютера, с которого он зашёл. Скрипт встречается в интернете милион раз, и у всех работает. У меня он почему-то не записывает в АД. Как можно
    узнать по ккой причине он этого не делает? То ли прав нет, то ли не знаю что ещё.

    Сам скрипт вот и прост как валенок

    On Error Resume Next
    
    Dim adsinfo, ThisComp, oUser
    
    
    
    Set adsinfo = CreateObject("adsysteminfo")
    
    Set ThisComp = GetObject("LDAP://" & adsinfo.ComputerName)
    
    
    
    Set oUser = GetObject("LDAP://" & adsinfo.UserName)
    
    ThisComp.put "Department", "Logged on: " + oUser.cn + " " + CStr(Now)
    
    ThisComp.Setinfo
    
    oUser.put "description", "Logged on: " + ThisComp.cn + " " + CStr(Now)
    
    oUser.Setinfo

Ответы

  • По умолчанию, пользователь не обладает разрешениями изменять атрибуты своего объекта в AD и тем более объекта компьютера. Запустите скрипт под доменным администратором, и вы убедитесь, что скрипт выполняется без ошибок.

    • Предложено в качестве ответа

      21 июля 2011 г. 9:30

    • Помечено в качестве ответа
      Dmitry DavydovModerator
      27 июля 2011 г. 7:50

  • Вы правы, не подскажите как правильнее делегировать права пользователям?

    К сожалению, не все так просто. Пользователь может изменять атрибуты для своего объекта, для этого вы должны назначить объектам типа User разрешение на чтение/запись для участника безопасности SELF и делегировать это разрешение на уровень домена. Вы можете
    выполнить это через Мастер делегирования (не забудьте только выбрать опцию Create a custom task to delegate). С компьютерами все хуже в плане безопасности. В вашей ситуации вы должны дать всем пользователям домена (группа Domain Users) разрешение на изменение
    если не всех атрибутов, то хотя бы одного атрибута в объекте типа Компьютер. Вы должны понимать, что с такими правами любой пользователь сможет в любое время редактировать данное свойство у любого объекта типа Компьютер. Конечно, пользователи могут об этом
    и не знать, но на мой взгляд, это плохо.

    • Предложено в качестве ответа
      Dmitry DavydovModerator
      21 июля 2011 г. 9:31
    • Помечено в качестве ответа
      Dmitry DavydovModerator
      27 июля 2011 г. 7:50

vbscriptИ так, встала задача — нужно каким либо образом определять на каком компьютере залогинен пользователь AD либо наоборот какой пользователь залогинен на ПК в текущий момент. На разных админских форумах эту задачу решают по разному. Я как то давно нашел скрипт и хочу им с Вами поделится.

Вкратце — 2 скрипта VBS помещаются в групповые политики нужной Organisation Unit дальше пользователям дается право на запись в поле «Description» учетных записей их компьютеров. скрипт выполняющийся при входе записывает description logoff и наоборот.

Вот как это выглядит в итоге:

Залогиненные пользователи на ПК в консоли AD онлайн

Теперь подробнее:

1) Группе… скажем Domain Users делегируем на OU, содержащий компьютеры, следующие разрешения: Computer Objects > Write Description. Далее приведенные действия отличаются немного от Windows Server 2003 и Windows Server 2008 ENG, т.к. я все делал в русской оснастке 2008 AD. Для этого правой кнопкой мыши на OU где находятся все ПК, выбираем первый пункт «Делегирование управления», «Далее», «Добавить», выбираем группу пользователей «Domain Users» например, «Далее», Выбираем «Создать особую задачу для делегирования», «Далее», «только следующими объектами в этой папке», спускаемся в самый низ и отмечаем «Компьютер объектов», «Далее», Убираем галку «Общие» и отмечаем «Разрешения для свойств» — список увеличится, почти в самом низу отмечаем «Запись Описание», «Далее» и «Готово». После этого Все пользователи домена смогут записывать в поле «Описание» компьютеров.

2) Дальше нужно добавить скрипты в GP

Вот сами скрипты:

logoff_sc.vbs

On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject("adsysteminfo")
Set ThisComp = GetObject("LDAP://" & adsinfo.ComputerName)
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
Thiscomp.put "description", ">> Logged off: " + oUser.cn + " " + CStr(Now)
ThisComp.Setinfo

Сохраняем их с расширением VBS.

logon_sc.vbs

On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject("adsysteminfo")
Set ThisComp = GetObject("LDAP://" & adsinfo.ComputerName)
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
Thiscomp.put "description", "Logged on: " + oUser.cn + " " + CStr(Now)
ThisComp.Setinfo

Все теперь при логофелогоне пользователей в Поле Description компов  будут появлятся соответствующие записи.

3) Открываем групповую политику OU в которой находятся пользователи. «Конфигурация пользователя», «Политики», «Конфигурация Windows», «Сценарии Вход/Выход из системы» и добавляем скрипты.

Авторство retifff на 23.01.2010

Удачи!!

Понравилась статья? Поделить с друзьями:
  • This will throw an error in a future version of php перевод
  • This score has no replay data saved как исправить
  • This war of mine опечален как исправить
  • This resolution is not applicable to the full screen mode pes 2009 как исправить
  • This war of mine андроид ошибка