私はpowershell 3でADを検索し、自分のcsvのユーザー(sAMAccountName)がADに存在し、アクティブであるかどうかを確認しようとします。しかし、私は、おそらく角かっことかっこに基づいて、次のエラーに飛び降りていますが、正しい方法を見つけることはできません。私はさまざまなフィルタを試して、それらを変数に渡そうとしましたが、 "パラメータ名と一致するパラメータが見つかりません - eq ..."となります。 $ adsearchが設定されていないため、Get-ADUserにエラーがあるように見えるため、if($ adsearch)を評価できません。解決済みget-ADUser with csv from powershell
CSVファイルが消毒さ(等先頭のスペース)および(のにSAMAccountNameと1列のみ)のように見える:
john.doe
jane.doe
doej2
foo.bar
barf5
任意先端が高く評価されます。ありがとう!
私は上記のバギースクリプトを残す参考のためparam ($inputfile='.\users.csv',$logfile='.\log.csv')
$csv = Import-CSV $inputfile
#"samAccountName,Search Result" | Add-Content $logfile
ForEach ($user in $csv){
echo $user;
#$adsearch = Get-ADUser -Filter 'sAMAccountName -eq "$($user)" -and Enabled -eq $true'
#$filter = "sAMAccountName -eq $($user) -and Enabled -eq $($true)"
#Write-Host "Filter is $filter"
$adsearch = Get-ADUser -Filter "(sAMAccountName -eq '$($user)') -and (Enabled -eq '$($true)')"
echo $adsearch
if ($adsearch){
echo "Found";
echo "$error"
#"$user, Found" | Add-Content $logfile
}
else{
echo "NOT FOUND";
echo "$error"
#"$user, Not Found" | Add-Content $logfile
}
}
は、ここでの作業スクリプト(おかげTomerとチャーリーJoynt)である:私は、ヘッダ行を追加するとき、あなたが示したCSVファイルについては
param ($inputfile='.\users.csv',$logfile='.\log.csv')
$csv = Import-CSV $inputfile
"samAccountName,Search Result,Error" | Add-Content $logfile
ForEach ($user in $csv){
$username = $user.SAMAccountName;
$adsearch = Get-ADUser -Filter {(samAccountName -eq $username) -and (Enabled -eq $true)}
echo "search for active user $user"
if ($adsearch){
echo "Found";
"$user, Found" | Add-Content $logfile
}
else{
echo "NOT FOUND";
"$user, Not Found, $error" | Add-Content $logfile
}
}
入力データの構造の例を挙げると、これらの種類の質問に役立ちます。 –