2016-05-27 13 views
-1

私はpowershellを使い慣れていないので、これは簡単な質問になるかもしれません。excelファイルの各行に移動し、そこからADuserデータを取得する

私はUserProfileNamesでいっぱいのExcelファイルを持っています。私がしたいことは、powershellがそれぞれを通過し、 "メール"プロパティを返すことです。私はよく私の構文がめちゃくちゃのすべての種類である場合がありますので、まだPowerShellのforeachのコマンドと変数に精通し、しかし、ここで私がしようとしていたものではありませんよ:それは私だけでエラーの多くを与えている

foreach($PSItem in (import-csv D:\Collaboration-Powershell\upn-that-needs-mail.csv)) {get-aduser $PSItem -Properties mail | select mail} 

。誰も助けることができますか?ここ

+1

何csvファイルは次のように見えますか?いくつの列がありますか? – zdan

答えて

0

がすでに電子メールを持っている場合は、あなたのcsvファイルは、「userprofilename」列

$accounts = ipcsv 'D:\Collaboration-Powershell\upn-that-needs-mail.csv' 

$results = $accounts | % { 
    $userprofile = $_.userprofilename 
    get-aduser $_.userprofilename -properties mail | select samaccountname, Mail, @{n='UserProfileName';e={$userprofile}} 
} 

$results | epcsv 'D:\Collaboration-Powershell\upn-that-needs-mail-RESULTS.csv' -not 

$results 

start 'D:\Collaboration-Powershell\upn-that-needs-mail-RESULTS.csv' 

かを、持っていると仮定すると、一つの可能​​な解決策である:

$accounts = ipcsv 'D:\Collaboration-Powershell\mail-that-needs-samaccountname.csv' 

$results = $accounts | % { 
    $email = $_.email 
    get-aduser -filter "emailaddress -eq '$email'" -properties mail | select samaccountname, Mail 
} 

$results 
+0

ありがとうございます!それはうまくいった! –

+0

「mailA」プロパティを使用して「SamAccountName」プロパティを取得しようとすると、どうすればよいでしょうか?私は新しい基準に合うようにあなたのコードを変更しようとしましたが、それは無駄でした。私のCSVファイルは、 'mail'プロパティと列ヘッダーを持つ1つの列です。 /// -Get-ADUser -Filter {EmailAddress -eq '[email protected]'} - プロパティsamaccountname | samaccountnameを選択してください –

+0

ありがとうございました! –

関連する問題