[英]POWERSHELL - Call Operator - What does this structure mean?
此代碼運行良好。 它是從Microsoft復制的。
$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))"
因為我從網絡上獲得的所有信息都是該符號,並且用於執行代碼,其含義是“呼叫操作員”。
我認為,在這種情況下,它還有其他含義。
(&(objectCategory=person)(objectClass=user))
在編程語言上下文中等效於以下條件:
objectCategory == person && objectClass == user
它記錄在MSDN頁面的DirectorySearcher.Filter Property
:
復合表達式由前綴運算符
&
和|
。 一個示例是“(&(objectClass=user)(lastName= Davis))
”。 另一個示例是“(&(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
...或在這里在線
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.