背景
我正致力于(修改)一个vbscript,旨在创建一个由多个OU的所有用户组成的AD影子组。
该脚本使用alternate credentials登录到远程AD。
注意:我登录的用户具有完整的AD读访问权限,但只能继承写入权限包含I组的OU将成员添加到。
有问题的代码
该脚本可以轻松登录,扫描OU上的用户,打开影子组并列出其当前成员,执行比较并找到要添加和删除的用户....但是。 ..
当我应用Error: 80070005 Srce: Active Directory Desc: Access is denied.
时,对指定安全组的成员实际添加(和删除)失败.SetInfo
。
我使用此代码进行读写:
aMembers = oGroup.GetEx("member") ' This gets populated as it should.
oGroup.PutEx ADS_PROPERTY_APPEND, "member", Array("CN=Doe\, John [LOCATION/COUNTRY],OU=foo,OU=bar,OU=Country,DC=domain,DC=org")
oGroup.SetInfo ' This fails
如果这与我登录AD的方式有关,请参阅以下代码:
' Open an ADO connection using full credentials
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Properties("User ID") = sLDAP_USER ' "domain\user"
oConnection.Properties("Password") = sLDAP_PASS ' "pass!word"
oConnection.Properties("Encrypt Password") = True
oConnection.Properties("ADSI Flag") = ADS_SECURE_AUTHENTICATION Or ADS_SERVER_BIND
oConnection.Open "Active Directory Provider"
验证我的登录用户权限
我已经看到很多类似的帖子有这种错误,并且只看到答案说明这是一个权限问题 - 但是从来没有看到过什么权限丢失/错误的描述。 Access is denied
错误确实让我怀疑我使用的登录具有正确的权限,因此我尝试使用JXplore将成员添加到组中。它可以工作,但只有当我启用ignore schema checking
选项时(基于在线建议,当使用JXplore与AD而不是纯LDAP时)。
编辑:在不忽略模式检查的情况下,还要求填充以下属性:instanceType,nTSecurityDescriptor和objectCatagory,但我注意到它们在现有用户上是空白的。
问题