gpt4 book ai didi

PowerShell 中的正则表达式从 Active Directory 中的 Managedby 属性获取城市名称

转载 作者:行者123 更新时间:2023-12-02 23:33:17 25 4
gpt4 key购买 nike

谁能帮我这个。我需要从 Active Directory 中的“managedby”属性派生一个城市名称,如下所示:

CN=Marley\, Bob,OU=Users,OU=PARIS,DC=Domain,DC=com

所以我需要把所有东西都拿出来,留下 "PARIS"
我真的不太了解 Regex,但假设它会涉及以某种方式使用 -replace。我试过在网上遵循一些例子,但我迷路了。我可以使用以下方法删除所有特殊字符:
'CN=Marley\, Bob,OU=Users,OU=PARIS,DC=Domain,DC=com' -replace '[\W]', ''

但我不知道如何进一步清理它。

任何帮助将不胜感激

最佳答案

实际上,您不需要正则表达式。如果可分辨名称的结构始终相同,则可以使用嵌套 -split s ...像这样:

(('CN=Marley\, Bob,OU=Users,OU=PARIS,DC=Domain,DC=com' -split '=')[3] -split ',')[0]

或这个:
(('CN=Marley\, Bob,OU=Users,OU=PARIS,DC=Domain,DC=com' -split ',')[-3] -split '=')[1]

我建议使用第二个版本,因为这样可以避免在可分辨名称的 CN 部分中使用逗号引起的混淆。 ;-)

如果你无论如何都喜欢用正则表达式来做,你可以使用环视来提取用户 OU 和域之间的内容,如下所示:
'CN=Marley\, Bob,OU=Users,OU=PARIS,DC=Domain,DC=com' -match '(?<=Users,OU=).+(?=,DC=DOmain)'
$Matches[0]

关于PowerShell 中的正则表达式从 Active Directory 中的 Managedby 属性获取城市名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61301923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com