2016-07-15 5 views
0

私はフィルタリングのGet-aduser

ln,fn 
jones,bob 
jagger,mick 

のような形式のCSVを持っていると私は次のことを実行することにより、これらのユーザーのADのうち、mail属性を取得しようとしています:

$names = import-csv .\names4.csv 
FOREACH ($name in $names){ 
get-aduser -f {surname -eq "$name.ln" -and givenname -eq "$name.fn} -pr mail 
} 

これは何も返さない。私が$ name.lnをエコーすると、それはcsvからのユーザのファーストネームのリストを表示するので、上記のコマンドが結果を返さない理由がわかりません。拡張可能な文字列(すなわち、二重引用符で囲まれた)のコンテキスト内

答えて

3

、PowerShellのパーサーのみ.への参照を拡大 - 単に""引用符削除します、また

$names = Import-Csv .\names4.csv 
foreach($name in $names){ 
    Get-ADUser -Filter {Surname -eq $name.ln -and GivenName -eq $name.fn} -Properties mail 
} 

を各プロパティの値を割り当てますあなたはEXPAN内部プロパティを参照解除に必要なその他の状況で

$names = Import-Csv .\names4.csv 
foreach($name in $names){ 
    $sn = $name.ln 
    $gn = $name.fn 
    Get-ADUser -Filter {Surname -eq $sn -and GivenName -eq $gn} -Properties mail 
} 

:それ自身の変数にdable文字列は、$()部分式演算子を使用します。

"The last name is $($name.ln)" 

をしかし-Filterブロックは、ネストされた表現でいくつかの癖を持っているように私は、ActiveDirectoryのモジュールとそれに対して助言する

+0

私は彼が最初の名前と最後に言及する必要があると思いますcsvの名前。 私はむしろこの 'Get-ADUser -Filter * -Properties EmailAddress |電子メールアドレス、SamAccountNameを選択してください。 Export-CSV c:\ results.csv -NoTypeInformation'とフィルタユーザが必要です。 – DisplayName

+1

@Owl '-Filter *'はDCからドメイン内のすべてのユーザを返します。もし彼が特定のユーザーに興味があるのであれば、それは不当に過大です。 –

+0

引用符なしで実行したとき、私は次のエラーを受け取りました: "get-aduser:Property: 'ln'タイプのオブジェクトに見つかりません: 'System.Management.Automation.PSCustomObject'しかし、私はそれぞれのfnと自分のvarにassgned、それは働いた....ありがとうマティアス! – 200mg