Добавить несколько атрибутов в учетную запись пользователя - PullRequest
0 голосов
/ 13 февраля 2019

Добрый день, я пробирался в обычные места, здесь, MS, Scritping парень, Месяц обедов и т. Д., Чтобы попытаться ответить на мою проблему.У меня есть список пользователей, идентифицированных по адресу электронной почты, и я хотел бы изменить их в настоящее время пустые атрибуты с информацией ниже.
так:

  • 33 = GLOBAL
  • 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 голосов
/ 13 февраля 2019

Как и @theo предложил: пропустите переменную $ _, и дополнительно: запрашивать свойства вообще не нужно при их установке.Попробуйте, это работает на моей машине:

Get-ADUser -filter {(Mail -like 'User@OldDomain.com')} | 
    Set-ADUser -Replace @{MSExchExtensionAttribute33="GLOBAL"; MSExchExtensionAttribute34="4"; msExchExtensionAttribute35="SMTP:User@NewDomain.com"}
0 голосов
/ 13 февраля 2019

Синтаксис для изменения (пользовательского) атрибута:

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

Надеюсь, это решит проблему, с которой вы столкнулись.

...