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