使用New-ADUser和Splatting将用户添加到AD

时间:2017-05-30 15:25:19

标签: powershell active-directory

我使用New-ADUser cmdlet进行splatting时遇到了问题。我已经能够使用splatting添加所有常规属性,但现在我需要添加扩展属性作为新用户的参数的一部分。

我按如下方式创建数组:

$users = @{ “name” = “fred 
“givenName” = “Manfred" 
“l” = “lexington”
"extensionAttrbute1" = "Test"}

但是当我运行脚本时,它会给我以下错误:" InvalidArgument", " ParameterBindingException"和#34; NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADUser"

实际的异常消息是这样的: "找不到与参数名称匹配的参数' extensionAttribute1'" 我实际上可以使用New-ADUSer直接添加extensionAttribute,但是作为数组的一部分添加是可能的问题。我是否需要在数组中以不同的方式为extensionAttribute添加前缀?

谢谢, 比亚内

2 个答案:

答案 0 :(得分:0)

获取Get-ADUser的用户并使用-Properties参数指定您的extensionAttribute。

然后使用Set-ADUser设置extensionAttribute:

E.g。

$user = Get-ADUser -Identity $yourIdentity -Properties extensionAttribute1
Set-ADUser –Identity $user -Clear "extensionAttribute1"
Set-ADUser -Identity $user -Add @{ extensionAttribute1 = "your value" }

答案 1 :(得分:0)

来自New-ADUser上的TechNet。可以使用OtherAttributes参数设置与cmdlet参数无关的属性值。使用此参数时,请确保在属性名称周围放置单引号,如下例所示。

$users = @{ 
    "name" = “fred 
    "givenName" = “Manfred" 
    "l" = "lexington"
    "OtherAttributes" = @{ 
        'extensionAttrbute1' = "Test"
     }
}