我在 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 中修改它?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 ngfor 指令不起作用,尽管我在 Typescript 类中创建了正确的对象

我在 SQL Plus 中创建了触发器而没有错误,但它不起作用

我在 Flutter 中创建了一个 android 通知 channel_id,但是,将 FCM 发送到该通道不会导致振动或声音

我在 Python 中创建了商店计算器,但它有一些错误 [关闭]

Bluebird — 在处理程序中创建了一个承诺,但没有从它返回

python中我在父frame中创建了子frame,想让文字显示在每个子frame.却一直不成功,求大腿