2017-07-05 85 views
0

我需要使用从csv中提取的电子邮件地址来匹配AD联系人。我目前遇到了让ldapfilter接受括号的问题。LdapFilter不接受圆括号

目前这个工程:

​​

但这并不

Get-ADObject -LDAPFilter (objectClass=contact) -SearchBase "OU=PLACE,OU=CONTACTS,DC=WORK,DC=COM" 

而且我不知道为什么

+0

如果一切正常,没有他们,为什么它需要它们? –

+0

..因为第一个是有效的PowerShell语法,第二个不是。 'ObjectClass = contact'试图运行一个名为'contact'的cmdlet并运行一个名为'objectclass'的cmdlet,然后尝试使用'='将一个值赋给一个变量而不使用任何变量,这样做没有任何意义去做。 – TessellatingHeckler

+0

它们不等价。 '(objectClass = contact)'意思是“将'objectClass = contact'作为一个PowerShell表达式求值,”和'“objectClass = contact”是一个字符串值。 –

回答

3

LDAPFilter需要一个字符串值;只是附上你想过滤的报价,这样的PowerShell知道解析它作为一个字符串,而不是试图把它作为评价其他脚本内容:

Get-ADObject -LDAPFilter "(objectClass=contact)" -SearchBase "OU=PLACE,OU=CONTACTS,DC=WORK,DC=COM"