为什么$ servername变量会在下面的$servername
中正确展开,但不会在以下Get-Process -ComputerName $servername
行中展开?
1)如果我在循环中手动将$servername="example-server"
设置为该列表中的示例服务器(复制/粘贴),则可以正常工作。
2)如果我在循环中插入行$servername | Measure-Object -Character
以尝试测试变量内容是否正确(隐藏空间或其他内容),我不会得到任何输出。但是,如果我手动分配$servername
并运行,它会在字符串中显示正确的字符数。
$servers = Import-CSV C:\temp\AllServers.csv
foreach ($servername in $servers)
{
$servername
Get-Process -ComputerName $servername | Where-Object {$_.Handles -gt 1000} | Sort-Object Handles -Descending
}
csv指定的数组是否需要一些我缺少的处理或格式化?
AllServers.csv
的内容是一列,第一行是标题servers
的列。
答案 0 :(得分:0)
上面的@PetSerAl和@Etan Reisner的评论是正确的......我需要在行中调用确切的字段对象:$servername.server
在这种情况下工作。
$servers = Import-CSV C:\temp\AllServers.csv
foreach ($servername in $servers)
{
$servername.server
Get-Process -ComputerName $servername.server | Where-Object {$_.Handles -gt 1000} | Sort-Object Handles -Descending
}