Powershell 使用新ADUser和Splatting向广告添加用户

Powershell 使用新ADUser和Splatting向广告添加用户,powershell,active-directory,Powershell,Active Directory,我在使用新的ADUser cmdlet时遇到了问题。我已经能够使用splatting添加所有普通属性,但是现在我需要添加一个扩展属性作为新用户参数的一部分 我正在创建一个数组,如下所示: $users = @{ “name” = “fred “givenName” = “Manfred" “l” = “lexington” "extensionAttrbute1" = "Test"} 但是当我运行脚本时,它会给我以下错误:“InvalidArgument”, ParameterBindin

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

我正在创建一个数组,如下所示:

$users = @{ “name” = “fred 
“givenName” = “Manfred" 
“l” = “lexington”
"extensionAttrbute1" = "Test"}
但是当我运行脚本时,它会给我以下错误:“InvalidArgument”, ParameterBindingException和NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADUser

实际的异常消息如下: “找不到与参数名称'extensionAttribute1'匹配的参数” 实际上,我可以使用新的ADUSer直接添加extensionAttribute,但是作为数组的一部分添加是可能的问题。我是否需要在数组中对extensionAttribute进行不同的排序

谢谢,
Bjarne

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

然后使用
Set ADUser
设置extensionAttribute:

例如

从TechNet开始。可以使用
OtherAttributes
参数设置与cmdlet参数不关联的属性值。使用此参数时,请确保在属性名称周围加上单引号,如下例所示

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

您正在创建一个哈希表。每个键值对后面都必须跟一个分号,如
$a=@{key1=“value1”;key2=“value2”}
Great comment。我实际上是在哈希表上使用.Add命令来创建单个对象。这是一种合理的方法。但是,我不能保证我正在与创建用户对象的DC交谈,因此我可能无法更新用户。
$users = @{ 
    "name" = “fred 
    "givenName" = “Manfred" 
    "l" = "lexington"
    "OtherAttributes" = @{ 
        'extensionAttrbute1' = "Test"
     }
}