Назад | Перейти на главную страницу

Почему $ pshome находится в каталоге «v1.0»?

Я явно использую powershell v2.0.x в Windows 7.

PS C:\> $PSVersionTable

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

Так почему же $ pshome указывает на каталог с именем v1.0?

PS C:\> $pshome
C:\Windows\System32\WindowsPowerShell\v1.0

Должен ли я просто записать это в раздел «Обычный бизнес» для Microsoft? :-)

Это для обратной совместимости. Скрипты V1 должны выполняться с небольшими изменениями или без них. До тех пор, пока не будут внесены серьезные изменения в версию .NET, на которой построен PowerShell, план, похоже, состоит в том, чтобы придерживаться «1».

Обратите внимание, что расширение тоже .ps1

Если это вас действительно беспокоит, или если вы хотите переместить локацию.

Скопируйте каталог в нужную версию и / или место, а затем создайте символическую ссылку на этот каталог с именем v1.0.

mklink /d "C:\Windows\System32\WindowsPowerShell\v1.0" "D:\Location\You\Want\It\To\Be\v2.2"