根据 CSV 文件中的名字和姓氏获取 AD 用户名

根据 CSV 文件中的名字和姓氏获取 AD 用户名

我有一个 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 }
}

相关内容