Powershell - 测试列表中值的问题

Powershell - Issues to test a value in a list

我有两个变量:

$Listgivenname = Get-aduser -filter * | Select-Object givenname 
$Usergivenname = "Tom"

实际上,汤姆在 $Listgivenname,所以我决定发表一个 if 声明,例如:

If($Listgivenname -contains $Usergivenname) {Write-Host "blablabla"}

但实际上此命令输出 false,即使 $Usergivenname -in $Listgivenname

奇怪的是,当我选择在 $Listgivenname 中手动编写列表时,例如“Tom”、“Jerry”。它确实有效,所以我相信我需要了解关于我分配给变量的命令 的事情。

Get-aduser -filter * | Select-Object givenname 似乎不像手动编写的列表那样工作。

我不寻求解决方案,但我试图理解为什么会这样。

尝试添加-ExpandProperty(获取每个对象的值):

$Listgivenname = Get-aduser -filter * | Select-Object -ExpandProperty givenname