我正在尝试使用 Get-ADUser 提取选定的用户集。用户属于名称包含非 ASCII 字符的公司,例如“Gåäördet”。不幸的是,我们必须使用 company 属性来完成这个任务,我们还需要它从脚本中工作。
以下在交互式会话中效果很好,但在脚本中执行时不返回任何数据:
$Company = "Gåäördet"
Get-ADUser -Filter "company -eq '$Company'"
Run Code Online (Sandbox Code Playgroud)
我找到了工作但不够可靠的解决方法(有选择错误对象的风险):
# Work-around 1:
$Company = "Gaaordet" # Replace åäö with aao in the variable
Get-ADUser -Filter "company -eq '$Company'" # Matches the company "Gåäördet", but why?
Run Code Online (Sandbox Code Playgroud)
...或者...
# Work-around 2:
$Company = "G...rdets" # Use regex for åäö
Get-ADUser -Filter * -Properties Company | ? Company -match "$Company"
Run Code Online (Sandbox Code Playgroud)
附加说明:字符编码可能不是这里的问题。正如评论中所建议的,我将其放在脚本中。阅读每个 Get-ADUser-line 的注释:
$OutputEncoding = [Console]::OutputEncoding
$Company = "aao"
Get-ADUser -Filter "company -eq '$Company'" # …
Run Code Online (Sandbox Code Playgroud)