我創建了一個應該回傳 OU 規范名稱的運算式。一個小輪廓:
@(Search-ADAccount -LockedOut -UsersOnly) | Select-Object Name,SamAccountName,@{Name="OU";Expression={((Get-ADOrganizationalUnit -Identity $($_."DistinguishedName")).CanonicalName)}}
但是,此運算式回傳一個空的 OU 列,其他 2 列已填充。
我的問題是這個表達有什么問題?任何反饋表示贊賞。
親切的問候, TheStingPilot
uj5u.com熱心網友回復:
甲計算出的性能故障排除技術:
存盤在Expression定義計算屬性的哈希表條目中 的腳本塊:
在相對于呼叫者作用域的子作用域中運行。
更重要的是,它會悄悄地忽略發生的任何錯誤。
然而,這樣的錯誤被記錄在自動$Error變數,因此要診斷您的問題,您可以執行以下操作:
$Error.Clear()
Search-ADAccount -LockedOut -UsersOnly |
Select-Object Name, SamAccountName, @{Name="OU";Expression={(Get-ADOrganizationalUnit -Identity $_.DistinguishedName).CanonicalName}}
$Error # Output the errors that occurred inside the calculated property's script block.
解決您的具體問題:
正如Santiago Squarzon 的有用答案所解釋的那樣,您需要從用戶中提取OU的專有名稱 (DN)并將前者傳遞給.Get-ADOrganizationalUnit -Identity
雖然從用戶的 DN 中$_.DistinguishedName.Split(',',2)[1]洗掉第一個,分隔的令牌通常會起作用,但它可能會因使用轉義 ,字符的DN 而失敗。( \,) 將被視為值的一部分;例如:
# !! Simple splitting by the first "," is NOT enough here:
PS> 'CN=Martin Luther King\, Jr.,OU=Ministry,DC=example,DC=org'.Split(',',2)[1]
Jr.,OU=Ministry,DC=example,DC=org # !! WRONG - split at the *escaped* ","
同時還處理這些邊緣的情況下,即以穩健從用戶的提取OU的DN,一個復雜的正則運算式是必需的,與組合-replace操作:
# OK: The regex correctly recognizes the escaped \, as such.
PS> 'CN=Martin Luther King\, Jr.,OU=Ministry,DC=example,DC=org' -replace '^. ?((?<=[^\\])(?:\\\\)*),'
OU=Ministry,DC=example,DC=org # OK
把它們放在一起:
Search-ADAccount -LockedOut -UsersOnly |
Select-Object Name,
SamAccountName,
@{
Name = 'OU'
Expression = {
(Get-ADOrganizationalUnit -Identity ($_.DistinguishedName -replace '^. ?((?<=[^\\])(?:\\\\)*),')).CanonicalName
}
}
uj5u.com熱心網友回復:
您的代碼的問題在于您試圖提供Get-ADOrganizationalUnit用戶DistinguishedName而DistinguishedName不是無效的 OU 。
還值得一提的是,您錯過-Properties CanonicalName了Get-ADOrganizationalUnit.
試試這個:
$e={(Get-ADOrganizationalUnit -Identity $_.DistinguishedName.Split(',',2)[1] -Properties CanonicalName).CanonicalName}
Search-ADAccount -LockedOut -UsersOnly |
Select-Object Name, SamAccountName, @{Name="OU";Expression=$e}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/358629.html
標籤:电源外壳
上一篇:在型別值上創建XPath過濾?
