我正在嘗試使用 PowerShell 在 AD 中搜索組名。
為什么這些都不起作用,引數或讀取主機?兩者都傳遞字串,但結果為空。但是,如果我用實際的組名(字串)替換命令中的變數 $ADGroup 并運行命令 Get-ADGroup... 結果將按預期提供。我試圖用單引號替換雙引號并得到相同的結果,該命令單獨作業但 read-host 或 param 都不提供資訊。我不明白為什么當它是一個變數 ($ADGroup) 時沒有傳遞字串。謝謝。
param(
[Parameter(Mandatory=$true)]
[string]$ADGroup
)
#one or the other param or read-host
$ADGroup = Read-Host "enter group name"
Get-ADGroup -Filter {name -like "*$ADGroup*"} -Properties * | select -Property Name
PS C:\Windows\system32> Get-ADGroup -Filter {name -like ' GroupName '} -Properties * | 選擇 - 屬性名稱
姓名
Results
Results
Results
Results
Results
uj5u.com熱心網友回復:
這就是為什么不建議-Filter在ActiveDirectory模塊 cmdlet的引數上使用腳本塊的原因之一。
-Filter
指定檢索 Active Directory 物件的查詢字串。此字串使用 PowerShell 運算式語言語法。PowerShell 運算式語言語法為 Filter 引數接收的值型別提供了豐富的型別轉換支持。該語法使用按順序表示,這意味著運算子位于運算元和值之間。
- 使用查詢字串:
Get-ADGroup -Filter "name -like '*$ADGroup*'"
- 使用 LDAP 查詢字串:
Get-ADGroup -LDAPFilter "(name=*$ADGroup*)"
注意: Name是由 回傳的默認屬性Get-ADGroup,無需呼叫所有屬性 ( -Properties *),因為這是非常低效的。
uj5u.com熱心網友回復:
也許它不能將其識別為字串或過濾器不正確。
param(
[Parameter(Mandatory=$true)]
[string]$ADGroup
)
#one or the other param or read-host
$ADGroup = Read-Host "enter group name"
$ADGroup = $ADGroup.ToString()
Get-ADGroup -Filter {name -like "*$ADGroup*"} -Properties * | select -Property Name
或者這應該這樣做..
$ADGroup = $ADGroup.ToString()
Get-ADGroup -Filter {name -like "*$ADGroup*"} -Properties * | Select-Object -expandProperty Name
uj5u.com熱心網友回復:
如果您在沒有屬性標志的情況下嘗試,是否會出現錯誤?
Get-ADGroup -Filter {Name -like "*$ADGroup*"} | Select-Object -expandProperty Name
或者
Get-ADGroup -Filter {Name -like "*Admin*"} | Select-Object -expandProperty Name
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/367098.html
上一篇:不確定長度的字串c
