如何使用Regex通过PowerShell从专有名称中提取CN

And*_*der 3 regex powershell ldap

我有一堆字符串,是来自AD的DN组.我需要拔出Common Name.示例字符串是"CN =我想要的组名,OU =组容器,DC = corp,DC =测试,DC =本地"

我正在寻找的是一些PowerShell代码,它将从该字符串中拉出"我想要的组名"并丢弃其余部分.

我可以用这个来扯掉CN

$s = "CN=Group Name I Want,OU=Group Container,DC=corp,DC=test,DC=local"
$s = $s.Remove(0,3) 
Run Code Online (Sandbox Code Playgroud)

但在那之后,我没有一个很好的方法从"OU"开始扯掉everthing

我相信有一些正则表达式可以做到这一点,但我需要一些帮助搞清楚.

jon*_*n Z 7

$s = "CN=Group Name I Want,OU=Group Container,DC=corp,DC=test,DC=local"
$s -replace "(CN=)(.*?),.*",'$2'
Run Code Online (Sandbox Code Playgroud)

  • 您应该考虑名称中包含逗号的CN - 例如"CN = Surname \,First,OU = Group,DC = corp" - 类似于'(CN =)(.*?)(?<!\\ ),.*','$ 2'会做正确的负面后观,以过滤带有前导斜杠的逗号. (5认同)