Estoy tratando de extraer conjuntos seleccionados de usuarios con Get-ADUser. Los usuarios pertenecen a empresas cuyos nombres incluyen caracteres no ASCII, por ejemplo, "Gåäördet". Desafortunadamente, tenemos que usar la propiedad de la compañía para esta tarea y también necesitamos que funcione desde un script.
Lo siguiente funciona muy bien en una sesión interactiva pero no devuelve datos cuando se ejecuta dentro de un script:
$Company = "Gåäördet"
Get-ADUser -Filter "company -eq '$Company'"
Las soluciones que he encontrado funcionan pero no son lo suficientemente confiables (se corre el riesgo de seleccionar objetos incorrectos):
# Work-around 1:
$Company = "Gaaordet" # Replace åäö with aao in the variable
Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why?
...o...
# Work-around 2:
$Company = "G...rdets" # Use regex for åäö
Get-ADUser -Filter * -Properties Company | ? Company -match "$Company"
Para una nota adicional: la codificación de caracteres podría no ser el problema aquí. Como se sugirió en un comentario, puse esto dentro de un script. Lea el comentario para cada línea Get-ADUser:
$OutputEncoding = [Console]::OutputEncoding
$Company = "aao"
Get-ADUser -Filter "company -eq '$Company'" # Matches company "åäö"
$Company = "åäö"
Get-ADUser -Filter "company -eq '$Company'" # No matches
Esperaba que algunos de ustedes pudieran ofrecer una mejor solución a este enigma.