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 são 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 recebo um relatório de mensagens de erro:
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 acima, retorna o nome distinto das crianças, mas como recuperar propriedades adicionais das crianças, como Mostrar nome , Nome e quandoCriado . Se eu conseguir isso, posso trabalhar em colocar tudo em uma matriz que pode ser exportada para um arquivo CSV ou algo assim. Eu preciso usar algo como o LDAP?
-Filter mas teve o mesmo erro. Eu só quero um nível retornado para este, em vez de enumerar a árvore, mas é bom apontar isso.
-Filterantes da string de entrada no seu segundo exemplo? Você não deveria precisar, mas vale a pena tentar se você está recebendo um erro de parâmetro posicional. Além disso, você não iria quererSubtreeao invés deOneLevelcomo um valor para oSearchScopeparâmetro para solicitar todas as crianças?