使用for循环复制具有递增值的属性

时间:2019-12-12 15:21:11

标签: powershell

我想将CustomAttributes从我们的Exchange Online帐户复制到用户AD对象。

CustomAttributes 1-3将被复制到AD的ExtensionAttribute值(1-3)

我创建了一个脚本来自动执行此过程。

  <following on from previous code>....  
    $ExtAttr= "ExtensionAttribute"
    $i =1
    $CustomAttr = ""

  For($i =1; $i -lt 4; $i++)
         {
           $CustomAttr = get-mailbox  $upn | Select CustomAttribute$i
           Set-ADUser -server Server -Identity $LocalADUser.SamAccountName -Add @{"$ExtAttr$i"=$CustomAttr."CustomAttribute$i"}
         }

直到我进入“ $ CustomAttr.CustomAttribute $ i”,此代码才起作用

如何修改最后一部分,以便CustomAttribute $ i属性根据当前$ i复制正确的值?

因此,如果$ i为1,则应将AD中当前的选择用户的CustomAttribute1复制到ExtensionAttribute1,对于Si = 2,则将CustomAttribute2复制到ExtensionAttribute2等。

2 个答案:

答案 0 :(得分:0)

使用括号和一些字符串连接应该可以解决此问题。尝试更换:

-添加@ {“ $ ExtAttr $ i” = $ CustomAttr。“ CustomAttribute $ i”}

使用:

-添加@ {“ $ ExtAttr $ i” = $ CustomAttr。$(“ CustomAttribute” + $ i)}

答案 1 :(得分:0)

重新启动ISE并重新运行此脚本。值已正确复制到用户AD对象中。

很抱歉浪费您的时间