Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell通过CN将名称的csv传递给LDAP筛选器_Powershell_Filter_Properties_Ldap - Fatal编程技术网

Powershell通过CN将名称的csv传递给LDAP筛选器

Powershell通过CN将名称的csv传递给LDAP筛选器,powershell,filter,properties,ldap,Powershell,Filter,Properties,Ldap,我是powershell的新手, 我正在尝试按用户的cn参数仅按名称输入用户列表 我没有得到任何结果,但当我输入一个名称而不是$item时,效果非常好。。。 我错过了什么?我不能在-LDAPFilter中输入数组吗 提前感谢对我来说,这似乎是一个字符串格式问题 试试这个: $csv = Get-Content "ListOfNames.csv" foreach($item in $csv){ Get-ADUser -LDAPFilter '(cn=$item)' -Prop

我是powershell的新手, 我正在尝试按用户的cn参数仅按名称输入用户列表
我没有得到任何结果,但当我输入一个名称而不是$item时,效果非常好。。。 我错过了什么?我不能在-LDAPFilter中输入数组吗


提前感谢

对我来说,这似乎是一个字符串格式问题

试试这个:

$csv = Get-Content "ListOfNames.csv"

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

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

$csv = Get-Content "ListOfNames.csv"

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

还请注意,emailaddress是默认情况下未返回的所需输出的唯一属性。尽量避免使用
-Properties*
,除非你需要所有这些属性。

伙计!非常感谢您的解决方案,只是一句小小的评论,它在没有$filter行中的单引号的情况下工作。再次感谢您的见解,非常感谢。嘿,Merkle,您能详细说明一下这个解决方案工作的原因吗?你能解释一下这里的逻辑吗?这样我才能更好地理解。。。我的意思是把它分解成外行的术语:)再次感谢PowerShell处理引号和字符串的方式有时会让人困惑。由于PowerShell是一种.NET语言,因此可以调用.NET方法。[string]::Format()是在.NET中格式化字符串的方法之一。在此代码中:[string]::Format(“(cn={0})”,$item){0}与$item的内容交换。请注意,Doug Maurer下面的解决方案也适用。
$csv = Get-Content "ListOfNames.csv"

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