Вырезать все до и после строки из команды PS Get-ADUser - PullRequest
0 голосов
/ 28 июня 2018
   $test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty DistinguishedName

Вывод выглядит примерно так:

 CN=Hans Peter,OU=NRH,OU=Stuttgart,OU=XXXX,OU=XXXX,OU=XXXX,DC=DE,DC=Richard-Mayer,DC=org

Как я могу вырезать все до и после первой строки DC "DC = DE" , чтобы получить только первую запись DC=DE? Я попробовал с split(), но безуспешно. Должен ли я преобразовать вывод в строку с ToString(), чтобы я мог использовать метод split? За любую помощь буду очень признателен.

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Есть несколько вариантов. Вот один из них:

$string = 'CN=Hans Peter,OU=NRH,OU=Stuttgart,OU=XXXX,OU=XXXX,OU=XXXX,DC=DE,DC=Richard-Mayer,DC=org'
$dc = $string.Split(',')[6]
0 голосов
/ 28 июня 2018

Подобно тому, что говорили другие, вы можете использовать метод split следующим образом:

$test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty @{name="DC";expression={($_.DistinguishedName -split ",OU=")[6]}}
0 голосов
/ 28 июня 2018

Для метода split() необходимо указать разделитель ,:

$test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty DistinguishedName
$arr = $test.Split(',')

Затем отфильтруйте и выберите первое:

$result = $arr | Where-Object {$_ -like "DC=*"} | Select-Object -First 1

Некоторые возможные улучшения:

Вы также можете явно преобразовать в String, используя:

[string]$test= Get-ADUser -Server dc1 hpeter -Properties DistinguishedName | Select-Object -ExpandProperty DistinguishedName

DistinguishedName можно получить так:

[string]$test = (Get-ADUser -Server dc1 hpeter -Properties DistinguishedName).DistinguishedName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...