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 *
除非你需要所有这些属性。
$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 *
除非你需要所有这些属性。