向用户帐户添加多个属性

时间:2019-02-13 13:45:01

标签: powershell attributes cmdlets

下午好, 我已经在平常的地方拖网了,这里是MS,Scritping的家伙,一个月的午餐等,以尝试解决我的问题。我有一个通过电子邮件地址标识的用户列表,我想用以下信息更改其当前空白的属性。
所以:

  • 33 =全局
  • 34 = 4
  • 35 = SMTP:User@NewDomain.com

    Get-ADUser -filter {(Mail -like 'User@OldDomain.com')} -Properties * | Set-ADUser -Replace @{$_.MSExchExtensionAttribute33="GLOBAL"; $_.MSExchExtensionAttribute34="4"; $_.msExchExtensionAttribute35="SMTP:User@NewDomain.com"};
    

但是,当我运行命令时,我收到此错误:

A null key is not allowed in a hash literal.
At line:1 char:98
+ ... roperties * | Set-ADUser -Add @{$_.MSExchExtensionAttribute34="4"; $_ ...
+                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (System.Collections.Hashtable:Hashtable) [], RuntimeException
+ FullyQualifiedErrorId : InvalidNullKey

我过去曾使用此代码的变体来替换已经具有适当值的属性,所以我想知道这是否是错误的一部分。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

更改(自定义)属性的语法为

Set-ADUser $userName -add @{'MSExchExtensionAttribute33'="Global"}

我希望这能解决您面临的问题。

答案 1 :(得分:0)

类似于@theo建议:省略$ _变量,此外:设置属性时根本不需要请求属性。所以尝试一下,它可以在我的机器上运行:

Get-ADUser -filter {(Mail -like 'User@OldDomain.com')} | 
    Set-ADUser -Replace @{MSExchExtensionAttribute33="GLOBAL"; MSExchExtensionAttribute34="4"; msExchExtensionAttribute35="SMTP:User@NewDomain.com"}
相关问题