Windows PowerShell 2.0 установлен по умолчанию в Windows 7?

8

http://msdn.microsoft.com/en-us/library/ff637750.aspx утверждения

Windows PowerShell 2.0 необходимо устанавливать только на Windows Server 2008 и Windows Vista. Он уже установлен на Windows Server 2008 R2 и Windows 7 .

Тем не менее, powershell.exe находится здесь% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe. Это не похоже на PowerShell 2.0. Версия файла powershell.exe - 6.1.7600.16385, так что это тоже мало поможет.

Как мне точно знать, если у меня установлен Windows PowerShell 2.0, а если нет, где находится ссылка для загрузки Windows 7?

kenwarner
источник

Ответы:

10

Вам не нужно копать его из ключей реестра. Просто запустите get-host и проверьте версию.


источник
Или используйте $Hostавтоматическую переменную. Тем не менее, он помечен как специфичный для реализации в спецификации (опять же, Get-Hostв спецификации вообще не фигурирует).
Джои
Get-Host вообще не появляется в спецификации -> Это странно. Они выпустили эту спецификацию пару недель назад. Интересно, был ли это недосмотр?
Ну, может быть, это не считается частью основных языковых командлетов. $Hostтакже определяется только реализацией. Очевидно, что спецификация охватывает только язык PowerShell , а не API и модель хоста.
Джои
Это также не распространяется на PSProviders, но есть для них.
12

Вы также можете использовать $PSVersionTable

PS > $PSVersionTable

Name                           Value
----                           -----
PSVersion                      2.0
PSCompatibleVersions           {1.0, 2.0}
BuildVersion                   6.1.7600.16385
PSRemotingProtocolVersion      2.1
WSManStackVersion              2.0
CLRVersion                     4.0.30319.225
SerializationVersion           1.1.0.1

Эта переменная существует только в PowerShell V2.0 и дает используемую версию CLR. Нормальный результат:

PS > $PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.4959
BuildVersion                   6.1.7600.16385
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1
JPBlanc
источник
4

Расположение исполняемого и вспомогательных файлов PowerShell для V2 не изменилось, равно как и .ps1расширение сценария, поскольку V2 полностью обратно совместимо - оно заменяет V1, а не требует некоторого параллельного механизма.

Ричард
источник
0

Догадаться

http://blogs.msdn.com/b/powershell/archive/2009/06/25/detection-logic-poweshell-installation.aspx

Чтобы проверить, установлена ​​ли версия 1.0 или 2.0 PowerShell, проверьте следующее значение в реестре:
Расположение ключа: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellEngine
Имя значения: PowerShellVersion
Тип значения: REG_SZ
Значение данных: <1.0 | 2,0>

kenwarner
источник
powershell v2 находится в каталоге v1.0 на win7 / 2008r2. Вы не можете установить v1 powershell на этих платформах, даже если захотите. Они являются системными компонентами. Если вы находитесь на w7 или r2, вы можете предположить, что у вас есть PowerShell v2 или выше.
x0n