我在 ActiveDirectory 中创建了一个新的自定义属性。如何在 PowerShell 中修改它?

Posted

技术标签:

【中文标题】我在 ActiveDirectory 中创建了一个新的自定义属性。如何在 PowerShell 中修改它?【英文标题】:I created a new custom attribute in ActiveDirectory. How can I modify it in PowerShell? 【发布时间】:2018-01-25 13:27:14 【问题描述】:

我创建了一个新的自定义属性,例如:newattribute1,但是当我想在 PowerShell 中更改值时,出现错误。

Set-ADUser -Identity test1 -newattribute1 123as

错误信息:

Set-ADUser : 找不到与参数名称匹配的参数 '新属性 1'。 在行:1 字符:29 + 设置 ADUser -Identity test1 -newattribute1 123as + ~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Set-ADUser], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADUser

【问题讨论】:

@Nick - 请不要回答 cmets 中的问题;建议将其作为答案,并参考相关文档。 【参考方案1】:

我总是用:

Set-ADUser -identity <username> -replace @CustomAttribute="YourData"

通过使用替换功能,您可以指定您创建的自定义属性。这是一种更改 cmdlet 本身无法指定的属性的简单方法。这不仅适用于自定义属性,您还可以对电话号码等属性使用替换功能。默认情况下 cmdlet 不允许您修改的任何内容。

附带说明一下,您不能像使用-newattribute1 123as 那样只编写参数以添加到现有 cmdlet。

【讨论】:

【参考方案2】:

您需要修改ADUser 对象的副本,然后使用Set-ADUser-Instance 参数写回副本:

$user = Get-ADUser -Identity $samaccountname -Properties *
$user.YourCustomAttribute = $NewCustomAttributeValue
Set-ADUser -Instance $User

Get-Help Set-ADUser

【讨论】:

以上是关于我在 ActiveDirectory 中创建了一个新的自定义属性。如何在 PowerShell 中修改它?的主要内容,如果未能解决你的问题,请参考以下文章