Get-ADObject: Error al analizar la consulta No compatible: -neq '?

Aug 19 2020

Utilizando: https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-adobject?view=win10-ps

¿Cómo puedo obtener el resultado para que solo muestre todos los usuarios y equipos de AD activos?

Get-ADObject -Filter 'Enabled -eq $True -and isDeleted -neq $True -and -not (isRecycled -eq $True) -and name -ne "Deleted Objects"'

Error:

Get-ADObject : Error parsing query: 'Enabled -eq $True -and isDeleted -neq $True -and -not (isRecycled -eq $True) -and name -ne "Deleted Objects"' Error Message: 'Operator Not supported: -neq' at position:
'34'. At line:1 char:1
+ Get-ADObject -Filter 'Enabled -eq $True -and isDeleted -neq $True -an ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ParserError: (:) [Get-ADObject], ADFilterParsingException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADFilterParsingException,Microsoft.ActiveDirectory.Management.Commands.GetADObject

Respuestas

1 Steven Aug 19 2020 at 13:52

Si realmente solo busca usuarios y computadoras, use una consulta que diga que:

Get-ADObject -Filter 'ObjectClass -eq "user" -or ObjectClass -eq "computer"'

Resistiendo el error del operador ya mencionado, Get-ADObjectno se pueden usar comillas dobles y usar$true/$falso por dentro. Esos se expandirán y saldrán simplemente como verdaderos / falsos. Ejecutar un comando como Get-ADObject -Filter "Enabled -eq $true"devuelve un error:

Get-ADObject : Error parsing query: 'Enabled -eq True' Error Message: 'syntax error' at position: '13'.

Si lo ejecuta con comillas simples, se ejecutará, pero en mi entorno no devuelve nada, probablemente porque "Habilitado" no es una propiedad de consulta de los objetos más genéricos devueltos por Get-ADObjecty a diferencia Get-ADUser/Computer. Entonces tendrás que jugar con las citas y la consulta en sí.

Aparte de por qué usar algo como -not (isRecycled -eq $true)cuando solo puedes decir isRecycled -eq $false. Ya tienes una consulta relativamente compleja en tus manos, cortaría las inversiones innecesarias ...

1 GrzegorzOchlik Aug 19 2020 at 13:40

No existe tal cosa como -neq. Lo que estás buscando es -neLeer más aquí:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comparison_operators?view=powershell-5.1