Ich versuche, ausgewählte Benutzergruppen mit Get-ADUser zu extrahieren. Die Benutzer gehören Unternehmen an, deren Namen Nicht-ASCII-Zeichen enthalten, z. B. "Gåäördet". Leider müssen wir die Firmeneigenschaft für diese Aufgabe verwenden und sie auch für die Arbeit mit einem Skript verwenden.
Folgendes funktioniert in einer interaktiven Sitzung hervorragend, gibt jedoch keine Daten zurück, wenn es in einem Skript ausgeführt wird:
$Company = "Gåäördet"
Get-ADUser -Filter "company -eq '$Company'"
Die Problemumgehungen, die ich gefunden habe, sind jedoch nicht zuverlässig genug (es besteht die Gefahr, dass falsche Objekte ausgewählt werden):
# Work-around 1:
$Company = "Gaaordet" # Replace åäö with aao in the variable
Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why?
...oder...
# Work-around 2:
$Company = "G...rdets" # Use regex for åäö
Get-ADUser -Filter * -Properties Company | ? Company -match "$Company"
Für zusätzlichen Hinweis: Die Zeichenkodierung ist hier möglicherweise nicht das Problem. Wie in einem Kommentar vorgeschlagen, habe ich dies in ein Skript eingefügt. Lesen Sie den Kommentar für jede Get-ADUser-Zeile:
$OutputEncoding = [Console]::OutputEncoding
$Company = "aao"
Get-ADUser -Filter "company -eq '$Company'" # Matches company "åäö"
$Company = "åäö"
Get-ADUser -Filter "company -eq '$Company'" # No matches
Ich hatte gehofft, einige von Ihnen könnten eine bessere Lösung für dieses Rätsel anbieten.