2017-05-30 3 views
0

New-ADUserコマンドレットでスプラットを使用して問題に遭遇しました。私はsplattingを使ってすべての通常の属性を追加することができましたが、新しいユーザのパラメータの一部として拡張属性を追加する必要があります。New-ADUserとSplattingを使用してADにユーザーを追加する

次のように私は配列を作成しています:

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

をしかし、私は、スクリプトを実行すると、それは私に次のエラーを与える: "InvalidArgument"、 "ParameterBindingException" と「NamedParameterNotFound、Microsoft.ActiveDirectoryを。 Management.Commands.NewADUser」

そして、実際の例外メッセージはこれです: 『パラメータは、パラメータ名と一致していることを見つけることができない『extensionAttribute1』』 私は実際に直接新ADUSerを使用して、しかしように追加extensionAttributeを追加することができますaの一部rrayはおそらく問題です。 extensionAttributeを配列などで別々に記述する必要はありますか?

おかげで、 Bjarne

+0

ハッシュテーブルを作成しています。各キー値のペアの後ろに '' '$ a = @ {key1 =" value1 ";}のようなセミコロンを続けなければなりません。 key2 = "value2"} '' ' –

+0

素晴らしいコメントです。実際には、ハッシュテーブルで.Addコマンドを使用して個々のオブジェクトを作成しています。 –

答えて

0

Get-ADUserでユーザーを取得し、あなたのextensionAttributeを指定する-Propertiesパラメータを使用します。その後

extensionAttributeを設定するためにSet-ADUserを使用します。

例えば

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

それは健全なアプローチです。しかし、ユーザーオブジェクトが作成されているDCとの通信が保証されていないため、ユーザーを更新できないことがあります。 –

0

TechNetオンサイトNew-ADUserから。コマンドレットパラメーターに関連付けられていないプロパティ値は、OtherAttributesパラメーターを使用して設定できます。このパラメータを使用する場合は、次の例のように属性名の前後に必ず一重引用符を使用してください。

$users = @{ 
    "name" = “fred 
    "givenName" = “Manfred" 
    "l" = "lexington" 
    "OtherAttributes" = @{ 
     'extensionAttrbute1' = "Test" 
    } 
} 
関連する問題