Автоматическое заполнение поле Описание в Active Directory
Метки: Active Directory | скрипты
Четверг, 29 марта 2012 г.
Просмотров: 16510
Подписаться на комментарии по RSS
Любой системный администратор знает о существовании поля Описание у объектов Active Directory. Очень редко какие IT отделы регулярно используют данное поле для чего-либо полезного и поддерживают данную информацию в актуальном состоянии.
Я думаю, что было бы очень полезно для компьютеров иметь в данном поле информацию по последнему залогинному пользователю. С помощью небольших изменений в настройки безопасности AD и простенького скрипта мы выполним данную задачу. Также я добавил в данное поле сервис тэг и номер модели компьютера.
Первое что нам необходимо сделать – разрешить всем прошедшим проверку пользователям изменить данное поле. Необходимо понимать, что после данного изменения любой опытный пользователь может самостоятельно указывать в данном поле любую информацию. Для этого выполним следующее действие:
- Откройте консоль Active Directors Users and Computers
- Включите дополнительные возможности (‘Advanced Features’ в меню ‘view’)
- Выберите ваш домен, нажмите на него правой кнопкой и зайдите в свойства.
- Перейдите на вкладку Безопасность и нажмите кнопку ‘advanced’
- Нажмите ‘add’, введите ‘Authenticated Users’ и нажмите OK.
- В поле ‘apply to’ выберите ‘Descendant Computer Objects’, затем поставьте чекбокс напротив опции ‘Write Description’
После этого дважды нажмите ‘OK’ и закройте оснастку.
Создайте новый скрипт и внесите в него следующий код:Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
' get service tag and computer manufacturer For Each objSMBIOS in objWMI.ExecQuery("Select * from Win32_SystemEnclosure") serviceTag = replace(objSMBIOS.SerialNumber, ",", ".") manufacturer = replace(objSMBIOS.Manufacturer, ",", ".") Next ' get computer model For Each objComputer in objWMI.ExecQuery("Select * from Win32_ComputerSystem") model = trim(replace(objComputer.Model, ",", ".")) Next ' get computer object in AD Set objSysInfo = CreateObject("ADSystemInfo") Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName) ' build up description field data and save into computer object objComputer.Description = WshNetwork.UserName & " (" & serviceTag & " - " & manufacturer & " " & model & ")" objComputer.SetInfo
Последнее что необходимо сделать это добавить данный скрипт в запуск при логине пользователя. Проще всего это сделать через групповые политики. Для этого создайте новую групповую политику и добавьте ваш скрипт в раздел User configuration > Policies > Windows Settings > Scripts > Logon. После создания GPO залогиньтесь на какой либо компьютер и проверьте, что поле Описание автоматически заполнилось.
Полезная информация
Заколебался!! На моем опеле второй раз с интервалом в один год летит АКПП. Поэтому сейчас смотрю на новые авто. Пока остановлися на Kia Ceed - очень нравится как по дизайну, так и по характеристикам.
Еще записи по теме
- Включение и настройка Windows PowerShell Remoting c помощью групповых политик
- HoverIP – GUI для ipconfig, nslookup, таблицы маршрутизации, ping, traceroute, сканирования портов
- Как использовать команду DsQuery для поиска контроллеров домена?
- Как делегировать права на поддержание RODC
- Заметка по модификации прав доступа на множестве компьютерах
- Задача – Узнать когда был выполнен последний бэкап базы данных?…
- Как зайти в безопасный режим на Windows 8?
Комментариев: 10
Спасибо за статью!
Простите, а скрипт написан на чём? Какое должно быть разрешение файла?
Я сделал с именем на .VBS - все работает.
Проблема в том, что когда большинство компьютеров - самосборка, он пишет кучу пробелов :( Буду перепиливать под себя
Я себе добавил более полезную информацию: Login: ; IP: ; Time:
Вот кусок скрипта:
Куда этот кусок вставить?
Даниял, это vbs logon-скрипт
Павел, вопрос такой, как им пользоваться? первый скрипт работает, а вот ваш не могу никак запустить.
Подскажите пожалуйста как в русскоязычной редакции может называться этот параметр "‘Descendant Computer Objects’" не могу никак найти заранее благодарен
Переделал немного скрипт, выводит логин, ип и время, при желании можно заменить вывод логина на имя пользователя н или и то и другое, мне нужен был логин. Скрипт проверен на win xp, 7, 8.
Добрый день Коллеги! А возможно ли поправить скрипт , так что бы IP адрес был без MAC адреса. Буду очень благодарен!! Я пользуюсь этим скриптом очень удобный! Теперь можно отслеживать для начальства за всеми!))
Привет всем! как заменить запрос adsinfo.UserName, чтобы он выводил не имя пользователя, а его логин в систему? что-то найти не могу никак ...