Powershell 将名称的 csv 传递给 CN 的 LDAP 过滤器

Powershell Pass a csv of names, to LDAP filter by CN

$csv = Get-Content "ListOfNames.csv"

foreach($item in $csv){
Get-ADUser -LDAPFilter '(cn=$item)' -Properties * | Ft sAMAccountName, givenName, emailAddress
}

我是 Powershell 的新手, 我试图通过他们的 cn 参数
仅按名称输入用户列表 我没有得到任何结果,但是当我输入名称而不是 $item 时,效果很好...... 我在这里错过了什么?我不能在 -LDAPFilter 中输入数组吗?

提前致谢

我觉得这像是字符串格式问题。

试试这个:

$csv = Get-Content "ListOfNames.csv"

foreach ($item in $csv) {
  $filter = [string]::Format("'(cn={0})'", $item)
  Get-ADUser -LDAPFilter $filter -Properties * | Ft sAMAccountName, givenName, emailAddress
}

在这种情况下,您需要使用双引号才能扩展变量

$csv = Get-Content "ListOfNames.csv"

foreach($item in $csv){
    Get-ADUser -LDAPFilter "(cn=$item)" -Properties emailaddress |
        Format-Table sAMAccountName, givenName, emailAddress
}

另请注意,电子邮件地址是您期望的输出中唯一未默认返回的 属性。尽量避免 -Properties * 除非你需要所有这些属性。