Truncar parte de um DN LDAP no Powershell? (Ou obtendo a UO de um DN LDAP.)

2

Qual é a maneira mais fácil de obter a UO que contém um objeto LDAP no PowerShell?

Estou trabalhando em um script para gerenciar alguns grupos que tornei "dinâmicos" com um script, e posso obter o nome completo com o seguinte:

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

Ele retorna algo como:

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

E estou tentando descartar o CN=MyPseudoDynamicGroup, , então acabo com:

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

Como faço isso da maneira mais fácil possível? Eu tentei usar o Split operador , mas isso retorna um array, e retira as vírgulas, forçando-me a adicioná-las novamente. Eu suspeito que há uma maneira melhor.

    
por HopelessN00b 18.07.2017 / 16:04

1 resposta

2

A maneira mais fácil que encontrei até agora é usar o .NET framework IndexOf method para obter o índice da primeira instância do caractere de vírgula e fornecer isso para o Método Substring do framework .NET . Eu usei o código abaixo, que coloca a string desejada em uma variável chamada PseudoDynamicGroupOU .

$PseudoDynamicGroupDN = (Get-ADGroup -Filter {Name -like $PseudoDynamicGroup}).DistinguishedName;
$PseudoDynamicGroupDNPosition = $PseudoDynamicGroupDN.IndexOf(",");
$PseudoDynamicGroupOU = $PseudoDynamicGroupDN.Substring($PseudoDynamicGroupDNPosition+1);
    
por 18.07.2017 / 16:04