Назад | Перейти на главную страницу

Сценарий VBS не выполняется для определенного пользователя

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

Line:14

Char:1

Error: Access is denied

Code: 80070005

Source: Active directory.

Строка 14 скрипта содержит: objUser.SetInfo

Разрешения GPO позволяют «Чтение» для прошедших проверку пользователей.

Сама ошибка кажется общей проблемой разрешения, но пользователь, получающий сообщение об ошибке, должен оставаться «аутентифицированным пользователем», имея возможность войти в Active Directory (поправьте меня, если я ошибаюсь). Единственное, что необычно для данного пользователя, - это то, что он является членом до 6 групп, причем основной группой являются «Пользователи домена». Нужны рекомендации по устранению этой проблемы.

Рассматриваемый сценарий:

Option Explicit
Const ADS_PROPERTY_UPDATE = 2 
Dim objSysInfo, objUser, objNetwork, strComputer, strDescription

Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)

Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName

strDescription = "Logged on " & strComputer & " on " & Date

objUser.Put "description", strDescription
objUser.SetInfo

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

По умолчанию обычные пользователи не имеют разрешений на редактирование или установку поля описания в своем пользовательском объекте AD. Итак, дважды проверьте разрешения для этого пользовательского объекта AD и убедитесь, что у пользователя есть разрешения на изменение атрибута description. Я полагаю, что у этого пользователя нет, даже если у всех других ваших пользователей есть разрешения на выполнение этого в своем пользовательском объекте AD.

Взяв (одного из) моих пользователей и ADSIedit в качестве примера, мне пришлось бы перейти к Properties, то Advanced Security Настройки для рассматриваемого объекта пользователя и убедитесь, что Write Description разрешение разрешено либо SELF или одна из групп, членом которых является пользователь.

(Я использовал ADSIedit для создания значимого снимка экрана, но, честно говоря, для количества записей разрешений для большинства пользовательских объектов AD, если бы я выполнял эту проверку по-настоящему, я бы определенно сбросил ACL для объекта в текстовый файл или в командной строке и проверьте это. Таким образом будет быстрее и гораздо реже запястный туннель.)