POWERSHELL - Call Operator - 这个结构是什么意思?
POWERSHELL - Call Operator - What does this structure mean?
这段代码运行良好。它是从微软复制的。
$strFilter = "(&(objectCategory=person)(objectClass=user))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$colProplist ="Name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
{$objItem = $objResult.Properties; $objItem.name }
但是,我不明白老师为什么要用
$strFilter = "(&(objectCategory=person)(objectClass=user))"
因为我从网上得到的所有信息都是这个符号&是执行代码的,一旦它的意思是"Call Operator"。
我认为,在这种情况下,它具有其他含义。
复合search/filter表达式
(&(objectCategory=person)(objectClass=user))
在编程语言上下文中等同于以下条件:
objectCategory == person && objectClass == user
记录在 MSDN page for DirectorySearcher.Filter Property
:
Compound expressions are formed with the prefix operators &
and |
.
An example is "(&(objectClass=user)(lastName= Davis))
". Another
example is "(&(objectClass=printer)(|(building=42)(building=43)))
".
因此,过滤器应用为:
objectClass=user && lastName= Davis
和
objectClass=printer && ( building=42 || building=43)
分别在提供的代码段中。
我们在谈论 LDAP 过滤器,查看 Microsoft MSDN 了解更多信息。那里也讨论了您的示例。
或者通过这种方式在 Powershell 中获取帮助:
Import-Module ActiveDirectory
Get-Help about_ActiveDirectory_Filter
...或在线here
这段代码运行良好。它是从微软复制的。
$strFilter = "(&(objectCategory=person)(objectClass=user))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$colProplist ="Name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
{$objItem = $objResult.Properties; $objItem.name }
但是,我不明白老师为什么要用
$strFilter = "(&(objectCategory=person)(objectClass=user))"
因为我从网上得到的所有信息都是这个符号&是执行代码的,一旦它的意思是"Call Operator"。
我认为,在这种情况下,它具有其他含义。
复合search/filter表达式
(&(objectCategory=person)(objectClass=user))
在编程语言上下文中等同于以下条件:
objectCategory == person && objectClass == user
记录在 MSDN page for DirectorySearcher.Filter Property
:
Compound expressions are formed with the prefix operators
&
and|
. An example is "(&(objectClass=user)(lastName= Davis))
". Another example is "(&(objectClass=printer)(|(building=42)(building=43)))
".
因此,过滤器应用为:
objectClass=user && lastName= Davis
和
objectClass=printer && ( building=42 || building=43)
分别在提供的代码段中。
我们在谈论 LDAP 过滤器,查看 Microsoft MSDN 了解更多信息。那里也讨论了您的示例。
或者通过这种方式在 Powershell 中获取帮助:
Import-Module ActiveDirectory
Get-Help about_ActiveDirectory_Filter
...或在线here