我正在尝试更新活动目录用户信息,我向用户添加了新的自定义属性,新属性调用了证书,并且我能够通过powershell Set-Aduser excpet修改所有新属性。 这是我的PowerShell代码和错误: 代码:
$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:\Users\test\Desktop\PP\AdInfoUpdater.ps1:40 : 43
+ -Certificat $Object.Certificat
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : (:) [Set-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.SetADUser
答案 0 :(得分:1)
如果这是一个自定义属性,则需要使用-Replace参数或-Add参数 例如
Set-AdUser userid -Replace @{'certificat'='CertificateStringValue'}
PowerShell看到-Certificates(或什至是-Certif的缩写)时,会将其解析为引用AD中的userCertificate属性。