Какой самый простой способ получить 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
Как мне сделать это как можно проще? Я пробовал использовать Оператор разделения, но это возвращает массив и удаляет запятые, заставляя меня добавить их обратно. Я подозреваю, что есть способ лучше.
Самый простой способ, который я нашел до сих пор, - использовать .NET framework IndexOf метод чтобы получить индекс первого экземпляра символа запятой и передать его в Метод подстроки .NET framework. Я использовал приведенный ниже код, который помещает желаемую строку в переменную с именем PseudoDynamicGroupOU
.
$PseudoDynamicGroupDN = (Get-ADGroup -Filter {Name -like $PseudoDynamicGroup}).DistinguishedName;
$PseudoDynamicGroupDNPosition = $PseudoDynamicGroupDN.IndexOf(",");
$PseudoDynamicGroupOU = $PseudoDynamicGroupDN.Substring($PseudoDynamicGroupDNPosition+1);