Извлечь домен из DistiniguishedName с помощью PowerShell
Я попытался следующий код, чтобы извлечь домен, и он работал просто отлично при определении переменной
$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 ответ
Как уже указывали Ansgar Wiechers и Lee_Daily, все, что вам действительно нужно, это свойство DistinghuishedName пользователя. Get-ADUser
Командлет возвращает это свойство по умолчанию, поэтому для получения его в виде строки просто выполните:
$dn = Get-ADUser -Identity 'Lamda' | Select-Object -ExpandProperty DistinguishedName
$ dn теперь будет строкой CN=Lamda,OU=OU_Bloquage,DC=Adminstrateur,DC=6NLG-AD
Чтобы получить только ту часть, с которой начинается DC=
из этой строки есть много вариантов.
Например:
$DN.Substring($dn.IndexOf("DC="))
Другой способ может быть:
'DC=' + ($DN -split 'DC=', 2)[-1]
Или даже что-то подобное:
($DN -split '(?<![\\]),' | Where-Object { $_ -match '^DC=' }) -join ','
.. и, вероятно, гораздо больше способов получить желаемый результат