2017-09-30 101 views
2

的描述我有以下腳本:獲得第二OU/CN

Get-ADUser -Filter {SamAccountName -like "z*"} -Properties * | select samaccountname, name, Email 
Address, @{Name="LastLogonTimeStamp";Expression={([datetime]::FromFileTime($_.LastLogonTimeStamp))}}, @{n='ParentContai 
ner';e={$_.distinguishedname -replace '^.+?,(CN|OU.+)','$1'}} | Format-Table 

RESULT EXAMPLE

enter image description here

如何獲得第二 OU的說明| CN容器?

回答

1

嘗試:

$_.DistinguishedName -replace '^.+?,((CN|OU)=[^,]+).*','$1' 

注後.*,這確保了正則表達式的整個輸入字符串相匹配,並與感興趣的子作爲一個整體取代它;如果沒有.*,則只有部分輸入將被替換,然後是原來不匹配的部分。

這是假定所有組件都, - 分隔(不知道爲什麼你的圖片顯示了第二OU組件後.),而CN/OU值沒有嵌入式,躲過,實例。

你可以做內(...)子表達式 - 其匹配不需要捕獲 - 會更有效與(?:...)