powershell 中的动态服务器值

Dynamic server value in powershell

我正在使用以下查询来获取服务器详细信息,

$intFreeSpace = Get-WmiObject -Class win32_logicalDisk -ComputerName Server1,server2 | Select-Object SystemName, deviceid, freespace, size

现在,我尝试从如下变量中提供服务器值,而不是硬编码值

$serverlist = "server1,server2"
 $intFreeSpace = Get-WmiObject -Class win32_logicalDisk -ComputerName $serverlist  | Select-Object SystemName, deviceid, freespace, size

但这不起作用,有什么解决办法吗?

编辑:

ServerList = @("Server1") #用虚拟值初始化以确保变量将是一个数组

 if($row[0] -eq "ServerList"){
                 $ServerList= $row[1]
               }
WRITE-HOST $ServerList

Output: Server1,Server2

当我的列值为 Server1 时它工作正常。

改为传入一个数组!否则,您将在名为 "server1,server2".

的 'one' 计算机上进行尝试
$serverlist = @("server1","server2")
$intFreeSpace = Get-WmiObject -Class win32_logicalDisk -ComputerName $serverlist  | Select-Object SystemName, deviceid, freespace, size

编辑:Bill 是对的,您需要将您的服务器串变成一个数组。由于结果以逗号分隔,您可以在逗号上添加 -split。这给你留下了一个数组。

$serverlist = $serverlist -split ','
$intFreeSpace = Get-WmiObject -Class win32_logicalDisk -ComputerName $serverlist  | Select-Object SystemName, deviceid, freespace, size