$Results = @()
$Users = Import-CSV C:\Filter\test1.CSV -Header First,Last,Email
Foreach($User in $Users){
$UserProps = get-aduser -Filter "GivenName -eq '$($user.GivenName)' -and Surname -eq '$($user.Surname)'" -Properties GivenName,Surname,EmailAddress,Department
$Results += New-Object PSObject -Property @{
FirstName = $User.GivenName
LastName = $User.Surname
EmailAddress = $User.EmailAddress
Department = $UserProps.Department}
}
$Results
這是test1.CSV 3列包括:爲什麼我不能在PowerShell中提取實際給定的名稱屬性?
名姓電子郵件
韋斯特利XXX [email protected]
戴夫XXX [email protected]
加雷斯XXX [email protected]
保羅XXX [email protected]
我想什麼它做的是通過CSV運行,並從PowerShell的拉活躍賬戶信息,但我不認爲它這樣做,因爲我的名字應該是打印出別的東西
應打印出DavidJ作爲因爲我已經編輯了我的帳戶,但是它的打印方式是將Dave打印爲電子表格(CSV)中的名字。
得到-ADUser便有:搜索過濾器無法識別 在行:2字符:18 + $ UserProps = GET-ADUser便有-Filter「給定名稱-eq '$($ user.GivenName)' -and蘇爾.. 。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [獲取-ADUser便有],ADException + FullyQualifiedErrorId:ActiveDirectoryServer:8254,Microsoft.ActiveDirectory.Management.Commands.GetADUser
預期輸出:
EmailAddress的名字系姓氏
------------ --------- ---------- --------
westley @ email.gov韋斯特利mydepartment hislastnamefromAD
[email protected] davidj(來自AD)mydepartment mylastnamefromAD
[email protected]加雷mydepartment hislastnamefromAD
[email protected]保羅mydepartment hislastnamefromAD
@davidjbeiler:我沒有在您的過濾器中看到任何語法錯誤,因此建議嘗試使用_literal_值來縮小問題範圍。如果它適用於字面值,例如'-Filter「GivenName -eq'David'和Surname -eq'Doe'」',那麼你知道它是來自CSV的值是問題。 – mklement0
我試過你的建議,但它沒有返回,但沒有錯誤。我確信它完全來自csv文件... – davidjbeiler
這意味着兩個不相關的問題:(a)來自CSV文件的'$ _。First'和'$ _。Last'值會破壞過濾器,並且(b )您嘗試的硬編碼過濾器值與AD中的任何用戶都不匹配。 Jason的答案無法工作,因爲它在過濾器中使用'$ user.GivenName'和'$ user.Surname',而這些屬性不存在於'$ user'上(只有'Import-Csv -Header '參數存在:'.First','。Last','.Email')。 – mklement0