下午好,
我已经在平常的地方拖网了,这里是MS,Scritping的家伙,一个月的午餐等,以尝试解决我的问题。我有一个通过电子邮件地址标识的用户列表,我想用以下信息更改其当前空白的属性。
所以:
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
我过去曾使用此代码的变体来替换已经具有适当值的属性,所以我想知道这是否是错误的一部分。
任何帮助将不胜感激。
答案 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"}