Vbscript 在AD中交换属性
我正在尝试交换Active Directory中的某些属性:我希望实际的电子邮件属性(恰好是Vbscript 在AD中交换属性,vbscript,active-directory,attributes,swap,Vbscript,Active Directory,Attributes,Swap,我正在尝试交换Active Directory中的某些属性:我希望实际的电子邮件属性(恰好是mail)成为我的otherMailbox。然后,我希望我的实际登录用户名(我认为是objUser.userPrincipalName)也成为我的新电子邮件。VBScript调试步骤1:在错误恢复时删除,然后查看有什么中断 AFAICS您的代码有3个问题(除了OERN): 循环objUser是一个对象,而不是布尔值,因此objUser=True将失败 Put方法期望属性名称作为第一个参数,属性的新值作为
mail
)成为我的otherMailbox
。然后,我希望我的实际登录用户名(我认为是objUser.userPrincipalName
)也成为我的新电子邮件。VBScript调试步骤1:在错误恢复时删除,然后查看有什么中断
AFAICS您的代码有3个问题(除了OERN
):
- 循环
objUser
是一个对象,而不是布尔值,因此objUser=True
将失败
Put
方法期望属性名称作为第一个参数,属性的新值作为第二个参数
- 更改属性后,您需要将更改实际写回AD
将代码更改为:
on error resume next
Set objUser = GetObject("LDAP://CN=" & sAMAccountName & _
"ou=usuarios,dc=quahog,dc=edu,dc=br")
do while objUser = true
objUser.Put "objUser.otherMailbox", "objUser.mail"
objUser.Put "objUser.mail", "objUser.userPrincipalName"
loop
wscript.echo "Done"
有关更多示例,请查看脚本存储库
Set objUser = GetObject("LDAP://CN="& sAMAccountName & _
"ou=usuarios,dc=quahog,dc=edu,dc=br")
objUser.Put "otherMailbox", objUser.mail
objUser.Put "mail", objUser.userPrincipalName
objUser.SetInfo
WScript.Echo "Done"
上面的代码工作正常,但如果我将CN更改为sAMAccountName,则会出现以下错误:
我得到了这个错误:
- 行:1
- 克拉特:2
- 错误:0x80005000
- 代码:80005000
- 来源:(空)
Set objUser = GetObject("LDAP://CN=Peter Griffin,ou=usuarios,dc=quahog,dc=edu,dc=br")
objUser.Put "otherMailbox", objUser.mail
objUser.Put "mail", objUser.userPrincipalName
objUser.SetInfo
wscript.echo "done"