获取第二个OU / CN的描述

时间:2017-09-30 20:18:08

标签: powershell active-directory

我有以下脚本:

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 个答案:

答案 0 :(得分:1)

尝试:

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

请注意尾随.*,它确保正则表达式匹配整个输入字符串,并将其替换为感兴趣的子字符串作为整体;如果没有.*,则只会替换部分输入,然后是原始内容中无法匹配的部分。

这假设所有组件都是, - 分开(不确定为什么您的图片在第二个.组件后显示OU)并且CN / OU值没有嵌入式,转义 ,实例。

您可以制作内部(...)子表达式 - 其匹配不需要捕获 - 使用(?:...)稍微提高效率。