Bom dia. Eu tenho tentado juntar algo por dias (que deveria ser) simples usando o PS, mas ainda não consegui descobrir tudo. Eu estou tentando pesquisar e recuperar informações do ADSI usando PS. Quando uso o seguinte no console do PS:
Get-ADObject "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com" -Properties *
Ele retorna as propriedades do objeto que possuem valores atribuídos a elas (o que é correto) para que funcione. Mas, o que eu preciso é de filhos do objeto AD, então eu tento adicionar SearchScope :
Get-ADObject "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com" -SearchScope OneLevel -Properties *
E eu recebo uma mensagem de erro informando:
A positional parameter cannot be found that accepts argument "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com"
Então, tentei uma abordagem diferente:
[string]$strCrLf = "'r'n"
[string]$strDoubleQuote = '"'
$ChildObjects = @()
$ParentObject = ([ADSI]"LDAP://CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com")
ForEach ($Child in $ParentObject.psBase.Children)
{
$ChildObjects += @("([ADSI]" + $strDoubleQuote + $Child.Path + $strDoubleQuote + ").distinguishedName" + $strCrLf)
}
$ChildObjects | ForEach-Object {
Invoke-Expression $_
}
O texto acima retorna o distinguishedName dos filhos, mas como recupero propriedades adicionais dos filhos, como displayName , Nome e quandoCriado . Se eu conseguir isso, posso trabalhar em colocar tudo em uma matriz que possa ser exportada para um arquivo CSV ou algo assim. Preciso usar algo como o LDAP?