将成员添加到安全组:SetInfo返回错误80070005

时间:2015-10-13 06:57:59

标签: vbscript active-directory ldap ldap-query

背景
我正致力于(修改)一个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,但我注意到它们在现有用户上是空白的。

问题

  1. 我是否陷入了明显的陷阱?
  2. 我是否还需要忽略脚本中的架构?如果是的话,怎么做?

0 个答案:

没有答案