我有一个 CSV 文件,其中列出了用户的名字和姓氏,列标题为名和姓。我尝试通过使用 Import-CSV 导入 CSV 文件,然后使用 Get-ADUser 从目录中提取这些用户的用户名。
以下是我目前所掌握的信息:
$names = Import-CSV C:\path\to.csv
ForEach ($Name in $Names) { Get-ADUser -Filter { GivenName -like "$Name.Firstname" } }
这不会返回任何结果,但也不会返回任何错误。
最终,该命令应该比较名字和姓氏,但由于我无法让它处理一个字段,所以我认为最好不要通过尝试比较两个而使它复杂化!
答案1
将包含文件列标题的行添加为 CSV 文件的第一行。然后,在遍历文件时使用这些标题作为属性名称。
因此你的文件看起来应该是这样的:
Firstname,Lastname
Joe,Schmoe
John,Doe
Jane,Doe
然后你的代码就应该可以正常工作了。
此外,过滤器似乎不喜欢$Name.lastname
。我不确定具体原因,但即使属性扩展也不起作用。如果你将其折叠成单个字符串变量,它就会起作用:
$names = Import-CSV C:\path\to.csv
ForEach ($Name in $Names)
{
$nameFilter = $Name.Firstname
Get-ADUser -Filter { GivenName -like $nameFilter }
}