Powershell& #39;s Invoke -Command won& #39;t принимает переменную для параметра -ComputerName?

Я рву на себе волосы, потому что я просто не могу заставить это работать, и я не могу понять как погуглить этот вопрос Я использую Powershell 2.0.Вот мой сценарий:

$computer_names = "server1,server2"
Write-Output "Invoke-Command -ComputerName $computer_names -ScriptBlock { 
    Get-WmiObject -Class Win32_LogicalDisk | 
    sort deviceid | 
    Format-Table -AutoSize deviceid, freespace 
}"
Invoke-Command -ComputerName $computer_names -ScriptBlock { 
    Get-WmiObject -Class Win32_LogicalDisk | 
    sort deviceid | 
    Format-Table -AutoSize deviceid, freespace 
}

Последняя команда выдает ошибку:

Invoke-Command : One or more computer names is not valid. If you are trying to 
pass a Uri, use the -ConnectionUri parameter or pass Uri objects instead of 
strings.

Но когда я копирую вывод команды Write -Output в оболочку и запускаю ее, все работает нормально. Как я могу привести строковую переменную к чему-то, что примет команда Invoke -? Заранее спасибо!

6
задан erictheavg 10 April 2012 в 20:56
поделиться