簡體   English   中英

POWERSHELL-呼叫操作員-此結構是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM