Get-ADUserを使用して、選択したユーザーのセットを抽出しようとしています。ユーザーは、 "Gåäördet"のように、名前に非ASCII文字を含む会社に属しています。残念ながら、このタスクには会社のプロパティを使用する必要があり、スクリプトから作業するためにも必要です。
以下は、インタラクティブセッションでうまく機能しますが、スクリプト内で実行してもデータは返されません。
$Company = "Gåäördet"
Get-ADUser -Filter "company -eq '$Company'"
回避策は見つかりましたが、信頼性が十分ではありません(間違ったオブジェクトを選択するリスク):
# Work-around 1:
$Company = "Gaaordet" # Replace åäö with aao in the variable
Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why?
...または...
# Work-around 2:
$Company = "G...rdets" # Use regex for åäö
Get-ADUser -Filter * -Properties Company | ? Company -match "$Company"
追記:文字エンコーディングはここでは問題にならないかもしれません。コメントで示唆されているように、私はこれをスクリプトに入れました。各Get-ADUser行のコメントを読みます。
$OutputEncoding = [Console]::OutputEncoding
$Company = "aao"
Get-ADUser -Filter "company -eq '$Company'" # Matches company "åäö"
$Company = "åäö"
Get-ADUser -Filter "company -eq '$Company'" # No matches
私はあなたの何人かがこの難問にもっと良い解決策を提供できることを望んでいました。