powershell - 我无法通过 powershell 修改 AD 用户自定义属性
问题描述
我试图更新活动目录用户信息,我向用户添加了一个新的自定义属性,新属性调用证书,并且我能够通过 powershell Set-Aduser 修改所有属性,除了我的新属性。这是我的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
解决方案
如果它是自定义属性,则需要使用 -Replace 参数或 -Add 参数,例如
Set-AdUser userid -Replace @{'certificat'='CertificateStringValue'}
当 PowerShell 看到 -Certificates(甚至是 -Certif 之类的缩短版本)时,它会将其解析为引用 AD 中的 userCertificate 属性
推荐阅读
- java - java - 为什么传递Function类型参数而不是Consumer时java中的for-each方法不抛出异常?
- python - 改进图片以检测区域内的字符
- c# - 具有非唯一条目的两个列表之间的区别
- java - 如何通过 Instagram、Whatsapp 或任何社交应用程序从您自己的应用程序共享图像文件?
- javascript - Jquery onSubmit检查ajax上的一些数据验证不起作用
- java - 复制属性并添加年初至今的属性
- android - 如何为 espresso UI 测试调用 onStop
- android - 如何将网站与 Instant 应用的数字资产链接协议链接?
- c# - 使用带有 IOptions 的 Autofixture 测试控制器
作为构造函数参数 - vba - 在 for 循环中跳过迭代(VBA excel)