我有以下脚本:
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
如何获取第二个 OU | CN容器的描述?
答案 0 :(得分:1)
尝试:
$_.DistinguishedName -replace '^.+?,((CN|OU)=[^,]+).*','$1'
请注意尾随.*
,它确保正则表达式匹配整个输入字符串,并将其替换为感兴趣的子字符串作为整体;如果没有.*
,则只会替换部分输入,然后是原始内容中无法匹配的部分。
这假设所有组件都是,
- 分开(不确定为什么您的图片在第二个.
组件后显示OU
)并且CN / OU值没有嵌入式,转义 ,
实例。
您可以制作内部(...)
子表达式 - 其匹配不需要捕获 - 使用(?:...)
稍微提高效率。