Powershell变量不会在Get-Process命令

时间:2015-10-19 16:59:14

标签: powershell csv variables

为什么$ 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的列。

1 个答案:

答案 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
    }