VBS脚本不执行特定用户

我有一个GPO,可以为大多数用户成功运行login/注销脚本,以将用户描述更新为他们的计算机名称。 这适用于除一个用户以外的所有用户,用户收到的错误是

Line:14 Char:1 Error: Access is denied Code: 80070005 Source: Active directory. 

该脚本的第14行包含: objUser.SetInfo

GPO权限允许经过身份validation的用户进行“读取”。

错误本身似乎是一个通用的权限问题,但用户得到错误应该仍然是一个“身份validation的用户”login到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用户对象的描述设置为用户login的计算机(以及他们这样做的date)。

默认情况下,普通用户无权在AD用户对象上编辑或设置描述字段。 因此,请仔细检查此AD用户对象上的权限,并检查用户是否具有对description属性的修改权限。 即使您的所有其他用户都有权限在AD用户对象上执行此操作,我仍然认为该用户不会。

以我的用户之一和ADSIedit为例,我不得不进入Properties ,然后进入有问题的用户对象的Advanced Security设置,并检查Write Description权限是否被允许为SELF或一个用户是其成员的组。

在这里输入图像说明

(我使用ADSIedit是为了获得一个有意义的截图,但老实说,对于大多数AD用户对象的权限条目数量,如果这样做检查真实的,我肯定会转储对象的ACL到一个文本文件或命令行,并通过检查。更快,更less的腕pipe。)