我正在编写一个简单的PowerShell脚本,它从文本文件中读取用户名列表,对于每个名称运行命令“Get-ADUser -Filter {Name -eq $ name} | select name”但是代码只完成了在列表中搜索姓氏,而不是列表中的每个人,任何人都可以解释为什么会发生这种情况?
foreach($name in $(gc .\tmp\checkname.txt))
{
Write-Host "checking $name now"
Get-ADUser -Filter {Name -eq $name} | select name
}
输出如下
checking Donna Anthes now
checking Jessica Kelly now
checking Malcolm Page now
checking Rommie Redlich now
name
----
Rommie Redlich
我希望输出如下
checking Donna Anthes now
name
----
Donna Anthes
checking Jessica Kelly now
name
----
Jessica Kelly
checking Malcolm Page now
name
----
Malcolm Page
checking Rommie Redlich now
name
----
Rommie Redlich
答案 0 :(得分:0)
只是想让任何阅读此问题的人知道Mjolinor的评论就是答案。使用每个名称末尾的空格get-aduser doenst返回任何结果。我更新了我的代码,如下所示
$a = $(($name).trim())
Write-Host "checking $a now"
Get-ADUser -Filter { Name -eq $a } | select name | ft -HideTableHeaders
得到预期的输出
checking Donna Anthes now
Donna Anthes
Donna Anthes
checking Jessica Kelly now
Jessica Kelly
checking Malcolm Page now
Malcolm Page
checking Rommie Redlich now
Rommie Redlich
Rommie Redlich