У меня есть объект групповой политики, который успешно запускает сценарии входа / выхода для большинства пользователей, чтобы обновить описания пользователей до имен их компьютеров. Это работает для всех пользователей, кроме одного, пользователь получает сообщение об ошибке
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 для объекта в текстовый файл или в командной строке и проверьте это. Таким образом будет быстрее и гораздо реже запястный туннель.)