Отсутствует параметр Invoke-Expression в PowerShell - PullRequest
2 голосов
/ 15 августа 2008

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

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

Я получаю сообщение об ошибке:
Невозможно найти параметр, который соответствует имени параметра 'имя_компьютера'.

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

Ответы [ 6 ]

3 голосов
/ 22 февраля 2009

Начиная с сборки прошлой ночью (это означает, что у вас может быть это в 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

Эксперимент! Наслаждайтесь! Engage!

Джеффри Сновер [MSFT] Архитектор Windows Management Partner

2 голосов
/ 16 сентября 2008

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

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

2 голосов
/ 15 августа 2008

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

RTM v1 составляет 1.0.0.0

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

1 голос
/ 16 августа 2008

Последним 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, но я могу найти его, если он вам действительно нужен.

0 голосов
/ 11 октября 2009

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

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

function Get-PSVersion {  
    if (test-path variable:psversiontable) 
        {$psversiontable.psversion} 
    else 
        {[version]"1.0.0.0"}  
} 
0 голосов
/ 18 августа 2008

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

...