我不知道为什么这不起作用,甚至搜索什么。
我有一个简单的函数Get-FileInput。它只是调用Import-CSV并在传递数据之前检查特定列。
我有$ filterType ="姓名"
我的测试TSV格式为
db stuff Name
1 2 spare40
然后我有了这个
$data = Get-FileInput
foreach ($computer in $data)
{
Get-ADComputer -Filter {$filterType -eq "comp1"} | Format-Table
Write-Host "$($computer.$filterType)"
Get-ADComputer -Filter {$filterType -eq "$($computer.$filterType)"} | Format-Table
}
第一台Get-ADComputer工作正常并输出一张表。
写主机在终端中产生输出comp1。
第二个Get-ADComputer运行,但不输出任何内容。
答案 0 :(得分:2)
不要将脚本块({...}
)用作-Filter
参数 - 它可以在简单的情况下使用(例如{{1 }}但是在更复杂的({$filterType -eq "comp1"}
)中分崩离析。
{$filterType -eq "$($computer.$filterType)"}
参数的类型为-Filter
,您应该将其构造为:
[string]
有关背景资料,请参阅我的this answer。