O Módulo do Active Directory para PowerShell Get-ADObject e Set-ADObject não funciona com o atributo personalizado

3

Estou tentando trabalhar com um atributo personalizado em uma instância do AD LDS que não criei usando o Módulo do Active Directory para o PowerShell. Infelizmente, os cmdlets Get-ADObject e Set-ADObject não estão retornando os resultados esperados. Na verdade, todos os parâmetros que usam o idioma do PowerShell não estão funcionando nesse atributo. O atributo personalizado tem um nome de exibição LDAP de 'jenzabar-ICSNET-GenericFlags'.

Get-ADObject não retorna nenhum resultado se eu usar o atributo customizado no parâmetro Where-Object, mesmo sabendo que há muitos objetos com este atributo customizado configurado para este valor:

Get-ADObject -Server 'localhost:389' -SearchBase 'CN=Academics,CN=Portal,O=Jenzabar,C=US' | Where-Object {$_.'jenzabar-ICSNET-GenericFlags' -eq '1'

No entanto, se eu usar o atributo personalizado em um parâmetro de filtro, visualizarei a lista esperada de resultados:

Get-ADObject -Server 'localhost:389' -SearchBase 'CN=Academics,CN=Portal,O=Jenzabar,C=US' -Filter 'jenzabar-ICSNET-GenericFlags -eq 1'

Além disso, se eu usar essa consulta e selecionar o jenzabar-ICSNET-GenericFlags a partir dos resultados, mesmo que obtenha resultados, a coluna que mostra o atributo personalizado estará vazia. A coluna nem mostra parênteses {}, como se eu tivesse selecionado um atributo desconhecido. Não há nada na coluna.

Por fim, o Set-ADObject usado para substituir o valor do atributo personalizado parece falhar silenciosamente. Esta consulta não produz nenhum erro ou outra mensagem, mas não modifica o atributo personalizado:

Set-ADObject -Server 'localhost:389' -Identity 'CN=Overview,OU=Pages,CN=2014 JA-WTC  600-05,CN=WTC  600,CN=WTC,CN=Academics,CN=Portal,O=Jenzabar,C=US' -Replace @{'jenzabar-ICSNET-GenericFlags'='0'}

Sei que deve haver alguma regra sobre quais tipos de atributos posso usar os cmdlets Get-ADObject e Set-ADObject, mas não sei quais são as regras. Eu não sei como determinar que tipo de atributo esse atributo personalizado é. O esquema do Active Directory não está instalado.

Obrigado antecipadamente.

    
por MasterOfNone 31.07.2015 / 22:07

1 resposta

5

Get-ADObject apenas retorna um subconjunto de atributos do Active Directory.

Você pode especificar atributos adicionais com o parâmetro Properties :

$ADObjectSplat = @{
    Server     = 'localhost:389'
    SearchBase = 'CN=Academics,CN=Portal,O=Jenzabar,C=US'
    Properties = 'jenzabar-ICSNET-GenericFlags'
}
Get-ADObject @ADObjectSplat | Where-Object { $_.'jenzabar-ICSNET-GenericFlags' -eq 1 }
    
por 01.08.2015 / 16:55