使用PowerShell从DistiniguishedName中提取域

时间:2019-03-01 13:10:31

标签: powershell ou distinguishedname

我尝试了以下代码来提取域,并且在定义变量时工作得很好

$ADS = 'CN=Lamda,OU=OU_Bloquage,DC=Adminstrateur,DC=6NLG-AD'

但是当我将$ADS更改为

时,进展并不顺利
$ADS = Get-ADUser -Identity 'Lamda' -Properties DistinguishedName |
       select DistinguishedName`

我想要的结果是:

DC=Administrateur,DC=6NLG-AD`

下面是我编写的代码

$ADS = Get-ADUser -Identity 'Lamda' -Properties DistinguishedName |
       select DistinguishedName
$pattern = '(?i)DC=\w{1,}?\b'
([RegEx]::Matches($ADS, $pattern) | ForEach-Object { $_.Value }) -join ','

1 个答案:

答案 0 :(得分:0)

正如Ansgar Wiechers和Lee_Daily早已指出的那样,您真正想要的只是用户的DistinghuishedName属性。 InvalidCodecPrivateDataException cmdlet默认情况下会返回此属性,因此只需将其作为字符串获取即可:

'Verify that the stream contains valid H.264 content.'

$ dn现在将是一个字符串Get-ADUser

要从该字符串中仅获取以$dn = Get-ADUser -Identity 'Lamda' | Select-Object -ExpandProperty DistinguishedName 开头的部分,有很多选择。
例如:

CN=Lamda,OU=OU_Bloquage,DC=Adminstrateur,DC=6NLG-AD

另一种方式可能是:

DC=

甚至这样的事情都会做到:

$DN.Substring($dn.IndexOf("DC="))

..可能还有更多获得所需结果的方法