J'essaie d'extraire des ensembles sélectionnés d'utilisateurs avec Get-ADUser. Les utilisateurs appartiennent à des sociétés dont les noms contiennent des caractères non ASCII, par exemple "Gåäördet". Malheureusement, nous devons utiliser la propriété de l'entreprise pour cette tâche et nous en avons également besoin pour travailler à partir d'un script.
Ce qui suit fonctionne très bien dans une session interactive mais ne renvoie aucune donnée lorsqu'il est exécuté dans un script:
$Company = "Gåäördet"
Get-ADUser -Filter "company -eq '$Company'"
Les solutions de contournement que j'ai trouvées fonctionnent mais ne sont pas suffisamment fiables (risque de sélectionner de mauvais objets):
# Work-around 1:
$Company = "Gaaordet" # Replace åäö with aao in the variable
Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why?
...ou...
# Work-around 2:
$Company = "G...rdets" # Use regex for åäö
Get-ADUser -Filter * -Properties Company | ? Company -match "$Company"
Pour plus d'informations: l'encodage des caractères n'est peut-être pas le problème ici. Comme suggéré dans un commentaire, je l'ai mis dans un script. Lisez le commentaire pour chaque ligne Get-ADUser:
$OutputEncoding = [Console]::OutputEncoding
$Company = "aao"
Get-ADUser -Filter "company -eq '$Company'" # Matches company "åäö"
$Company = "åäö"
Get-ADUser -Filter "company -eq '$Company'" # No matches
J'espérais que certains d'entre vous pourraient offrir une meilleure solution à cette énigme.