2017-09-30 76 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值没有嵌入式,躲过,实例。

你可以做内(...)子表达式 - 其匹配不需要捕获 - 会更有效与(?:...)