Get-ADObject: Error al analizar la consulta No compatible: -neq '?
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
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-ADObject
no 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-ADObject
y 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 ...
No existe tal cosa como -neq
. Lo que estás buscando es -ne
Leer más aquí:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comparison_operators?view=powershell-5.1