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

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

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

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

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

15.08.2008 17:26:44
6 ОТВЕТОВ

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

RTM v1 1.0.0.0

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

2
24.11.2013 07:35:11

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

1
15.08.2008 21:25:02

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

0
17.08.2008 21:37:37

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

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

2
16.09.2008 02:35:36

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

3
22.02.2009 15:59:14

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

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

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