Усечение части DN LDAP в Powershell? (Или получение OU из DN LDAP.)

Какой самый простой способ получить OU, содержащее объект LDAP, в PowerShell?

Я работаю над сценарием для управления некоторыми группами, которые я сделал "динамическими" с помощью сценария, и я могу получить полное отличительное имя следующим образом:

$PseudoDynamicGroupDN = (Get-ADGroup -Filter {Name -like $PseudoDynamicGroup}).DistinguishedName

Он возвращает что-то вроде:

CN=MyPseudoDynamicGroup,OU=Users,OU=BusinessUnit,OU=Site,OU=Company,DC=domain,DC=forest,DC=tld

И Я' Я хочу отбросить бит CN = MyPseudoDynamicGroup, , поэтому я получаю:

OU=Users,OU=BusinessUnit,OU=Site,OU=Company,DC=domain,DC=forest,DC=tld

Как мне сделать это как можно проще? Я пробовал использовать оператор разделения , но он возвращает массив и удаляет запятые, заставляя меня добавить их обратно. Я подозреваю, что есть способ лучше.

2
задан 18 July 2017 в 17:04
1 ответ

Самый простой способ, который я нашел до сих пор, - это использовать метод IndexOf .NET framework , чтобы получить индекс первого экземпляра символа запятой и передать его в метод .NET framework Substring . Я использовал приведенный ниже код, который помещает желаемую строку в переменную с именем PseudoDynamicGroupOU .

$PseudoDynamicGroupDN = (Get-ADGroup -Filter {Name -like $PseudoDynamicGroup}).DistinguishedName;
$PseudoDynamicGroupDNPosition = $PseudoDynamicGroupDN.IndexOf(",");
$PseudoDynamicGroupOU = $PseudoDynamicGroupDN.Substring($PseudoDynamicGroupDNPosition+1);
2
ответ дан 3 December 2019 в 11:28

Теги

Похожие вопросы