Войти

Показать полную графическую версию : Помогите разобраться со скриптом


rline
25-07-2025, 19:20
Здравствуйте!
Имеется вот такой скрипт VB, распространяемый групповой политикой и установленный на вход пользователя в систему.

Set objSysInfo = CreateObject("ADSystemInfo")
Set objNetwork = CreateObject("WScript.Network")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Dim Info
Set Info = CreateObject("ADSystemInfo")
GetDomainDNSName = Info.DomainDNSName
objUser.Put "aUserComputerLaber", objNetwork.ComputerName & "." & Info.DomainDNSName
objUser.SetInfo

Но при входе пользователь получает ошибку.

https://thumb.cloud.mail.ru/weblink/thumb/xw1/ZTsh/7eamfQZTb

Очевидно, не хватает прав. Скажу сразу, что в программировании я не разбираюсь и этот скрипт писал кто-то до меня. Но из того, что я нагуглил, я сделал вывод, что это скрипт пишет информацию в атрибут AD "aUserComputerLaber". Но у пользователей нет права писать в этот атрибут, собственно под доменным админом такой ошибки не возникает, что логично.
Убедиться в этом можно запустив от имени пользователя оснастку и отфильтровав атрибуты недоступные для записи.

https://thumb.cloud.mail.ru/weblink/thumb/xw1/M56a/vQ7MMNMcv

Как видим атрибут "aUserComputerLaber" не входит в список доступных для записи.

Пытался делегировать права. Выбрал одного пользователя. Затем создал особую задачу для делегирования. Выбрал тип объектов Пользователь, выбрал функцию "Отображать разрешения для свойств". И отметил чтение и запись для объекта "aUserComputerLaber".

https://thumb.cloud.mail.ru/weblink/thumb/xw1/UCK2/1HTdH248W

Результат делегирования по завершении мастера:

Выбрано делегирование управления объектами
в следующей папке Active Directory:

#####.biz/#######/Отдел #######
Группы, пользователи или компьютеры, которым
передано управление:

#### ##### ##### (####.#####@#####.biz)

Они имеют следующие разрешения:

Чтение aUserComputerLaber
Запись aUserComputerLaber

Для следующих типов объектов:

Пользователь


Но фокус не удался, ошибка никуда не делась. Собственно вопрос как избавиться от ошибки?

DJ Mogarych
26-07-2025, 00:36
А обязательно писать именно в этот атрибут?

У меня в своё время работал скрипт Powershell, пишущий имя компьютера, время входа в систему и время загрузки компьютера в атрибуты учётки самого пользователя, которые доступны ему на запись.

http://forum.oszone.net/post-2889487.html#post2889487

rline
26-07-2025, 21:06
А обязательно писать именно в этот атрибут? »
Поскольку не я этот скрипт придумал, то не могу сказать насколько это обязательно.

в атрибуты учётки самого пользователя »
Так это вроде бы и есть атрибут учётки пользователя. Только надо понять почему он не доступен для записи и как сделать его доступным.

DJ Mogarych
27-07-2025, 10:23
Включите View / Advanced Features в оснастке "Пользователи и Компьютеры".
Потом зайдите в свойства OU, где содержатся пользователи, на вкладку Безопасность и сделайте что нужно.

https://filedb.experts-exchange.com/incoming/2009/01_w05/100704/WriteAccessToExtensionAttribute1.JPG

Ну либо в скрипте смените атрибут на доступный на запись.

rline
28-07-2025, 20:31
Потом зайдите в свойства OU, где содержатся пользователи, на вкладку Безопасность и сделайте что нужно. »

Зашёл. Только в моей версии WinServer это выглядит немного по другому.

https://thumb.cloud.mail.ru/weblink/thumb/xw1/4VxJ/vkWBqrwYC

У подопытного пользователя разрешения на это атрибут есть. Но ошибка всё равно сохранятся.




© OSzone.net 2001-2012