Я не могу изменить пользовательский атрибут пользователя AD с помощью powershell

#powershell #active-directory #attributes

#powershell #active-directory #атрибуты

Вопрос:

Я пытаюсь обновить информацию о пользователях Active Directory, и я добавил новый пользовательский атрибут для пользователей, новый атрибут вызывает сертификат, и я смог изменить все атрибуты с помощью powershell Set-Aduser, исключая мой новый атрибут. вот мой код powershell и ошибка: Code:

 $user = Get-ADUser -Filter "SamAccountName -eq '$($Object.UserName)'" -Server $server -Credential $credential
     Set-ADUser -Identity $user -HomePage $Object.HomePage `
                                  -Description $Object.Description`
                                  -Title $Object.Title`
                                  -Officephone $Object.PhoneNumber`
                                  -Mobilephone $Object.Mobile`
                                  -Postalcode $Object.PostalCode`
                                  -City $Object.City`
                                  -State $Object.State`
                                  -Streetaddress $Object.StreetAddress`
                                  -Department $Object.Department`
                                  -Company $Object.Company
                                  -Certificat $Object.Certificat
  

Ошибка:

 Set-ADUser: Unable to bind the "Certificates" parameter. Unable to convert the value "Study Study" from type "System.String" to type
"System.Collections.Hashtable".
Au caractère C:UserstestDesktopPPAdInfoUpdater.ps1:40 : 43
                                -Certificat $Object.Certificat
                                            ~~~~~~~~~~~~~~~~~~
      CategoryInfo          : InvalidArgument : (:) [Set-ADUser], ParameterBindingException
      FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.SetADUser
  

Ответ №1:

Если это пользовательский атрибут, вам нужно будет использовать параметр -Replace или, возможно, параметр -Add, например

 Set-AdUser userid -Replace @{'certificat'='CertificateStringValue'}
  

Когда PowerShell увидит -Certificates (или даже сокращенную версию, например -Certif), он проанализирует это как ссылку на атрибут userCertificate в AD