#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