-1

朝、

ユーザーのリストを含む CSV ファイルを使用し、AD ユーザーの extensionAttribute15 を「notset」値に戻すプロセスを自動化しようとしています。

同様のコードを使用して属性を設定します。CSV ファイルは、ユーザーの LAN ID と属性の値の 2 つだけで構成されています。

フィールドへの入力は問題ではありません。値を「未設定」に戻すことは問題ありません。

これが私が使用しているコードです。

Import-module ActiveDirectory  
Import-CSV "code.csv" | % { 
$User = $_.cn 
$user.Put(“extensionAttribute15”, @())
$user.SetInfo()  
}

ここにエラーがあります。

[System.String] に 'Put' という名前のメソッドが含まれていないため、メソッドの呼び出しに失敗しました。at attribute.ps1:4 char:10 + $user.Put <<<< (“extensionAttribute15”, @()) + CategoryInfo : InvalidOperation: (Put:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound

[System.String] に 'SetInfo' という名前のメソッドが含まれていないため、メソッドの呼び出しに失敗しました。at attribute.ps1:5 char:14 + $user.SetInfo <<<< ()
+ CategoryInfo : InvalidOperation: (SetInfo:String) []、RuntimeException + FullyQualifiedErrorId : MethodNotFound

問題の可能性はありますか?

ありがとう、

4

1 に答える 1

3

CSV ファイルを読み込むと、結果のオブジェクトは単純なプロパティ バッグになります。それらは特別なメソッドをサポートしていません。フラットなデータを保持するだけです。これらのオブジェクトには、CSV ファイル自体のテキストに存在しないものは何もありません。

Active Directory のコンテキストと機能を持つリッチ オブジェクトを取得する場合は、ActiveDirectory モジュールのコマンドレットから取得する必要があります。

このようなものはおそらくあなたが必要とする線に沿っています

Import-module ActiveDirectory  
Import-CSV "code.csv" | % { 
    $user = Get-ADUser $_.cn  # get a rich object from the AD module, by passing a string 
    $user.Put(“extensionAttribute15”, @())
    $user.SetInfo()  
}
于 2013-08-13T17:37:46.043 に答える