【问题标题】:Swapping attributes in AD在 AD 中交换属性
【发布时间】:2015-06-08 21:16:41
【问题描述】:
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"

我正在尝试交换我的 Active Directory 中的一些属性:我希望我的实际电子邮件属性(恰好是 mail)成为我的 otherMailbox。然后,我希望我的实际登录用户名(我相信是 objUser.userPrincipalName)也成为我的新电子邮件。

【问题讨论】:

    标签: vbscript active-directory attributes swap


    【解决方案1】:

    VBScript 调试步骤 1:删除 On Error Resume Next 看看有什么问题。

    AFAICS 您的代码有 3 个问题(OERN 除外):

    • 循环。 objUser 是一个对象,而不是布尔值,所以 objUser = True 会失败。
    • Put 方法需要属性名称作为第一个参数,属性的新值作为第二个参数。
    • 更改属性后,您需要将更改实际写回 AD。

    将您的代码更改为:

    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"
    

    查看ActiveXperts 脚本库以获取更多示例。

    【讨论】:

      【解决方案2】:
          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"
      

      上面的代码运行良好,但如果我将 CN 更改为 sAMAccountName,我会收到以下错误: 我收到了这个错误:

      • 线路:1
      • 个数:2
      • 错误:0x80005000
      • 代码:80005000
      • 来源:(空)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-06
        相关资源
        最近更新 更多