Отсутствует параметр PowerShell Invoke-Expression

Я думал, что у меня последняя версия CTP PowerShell 2, но когда я пробую команду:

invoke-expression –computername Server01 –command 'get-process PowerShell'

Я получаю сообщение об ошибке:
не удается найти параметр, соответствующий имени параметра computername.

Возникает вопрос: как узнать, какую версию PowerShell я установил? А какая последняя версия?

Ответов (6)

Я предполагаю, что это изменение командлета, внесенное в процессе настройки Configure-Wsman.ps1. У меня сейчас нет настройки среды для тестирования, но я предполагаю, что что-то пошло не так с конфигурацией. Я могу проверить, что в XP этот параметр недоступен (черт возьми). Я предполагаю, что вы найдете то же самое в Vista / 08 без завершения настройки.

$host.version.tostring() вернет номер версии.

RTM версии v1 - 1.0.0.0

Не могу честно сказать, какая последняя версия превью, потому что у меня еще не было возможности поиграть.

Последним CTP является CTP2, выпущенный 05/02/08, и его можно найти здесь . Для удаленного взаимодействия требуется, чтобы WinRM был установлен как на вызывающем, так и на целевом компьютере. В CTP включен сценарий для настройки WS-Management под названием Configure-WSMan.ps1.

Эта команда должна предоставить вам номер версии PowerShell, которую вы установили. Get-Command "$ PSHome \ powershell.exe" | Format-List FileVersionInfo V1.0 - 6.0.5430.0 CTP2 - 6.1.6585.1

У меня нет под рукой номера версии для первого CTP, но я могу найти его, если он вам действительно нужен.

Проблема в том, что с CTP 1 на CTP2 они переключили материал Invoke, Invoke-Command теперь все удаленное взаимодействие выполнено и Invoke-Expression предназначено исключительно для превращения строки в скрипт;)

PS: Если вы используете v2, вы можете запустить, $PSVersionTable чтобы увидеть список версий, включая версии CLR и Build.

Из сборки прошлой ночи (это означает, что у вас может быть это в CTP3, но если нет, вы получите его в следующем публичном выпуске):

[4120:0]PS> $psversiontable
Name                           Value
----                           -----
CLRVersion                     2.0.50727.3521
BuildVersion                   6.1.7047.0
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.0

Экспериментируйте! Наслаждаться! Привлекать!

Джеффри Сновер [MSFT] Партнер-архитектор по управлению Windows

Если $PSVersionTable переменная не существует, значит, вы используете V1.

Если он существует, то версия будет доступна как $PSVersionTable.PSVersion .

function Get-PSVersion {  
    if (test-path variable:psversiontable) 
        {$psversiontable.psversion} 
    else 
        {[version]"1.0.0.0"}  
}