Так уже получилось что работая над ошибками в PowerShell я случайно проморгал апгрейд версии самого инструмента.
По традиции у меня была 2-я версия на моей Windows 7. Но установкой сервиспака (SP1) она в один миг поднялась до 3-й! Конечно в моем профиле PowerShell всегда в начале стоит вызов $PSVersionTable.PSVersion. Но само сообщение про текущую так примелькалось, что я его уже и не читал.)
Как обнаружил?
А наше вкусное расширение PowerTab начало вдруг выдавать ошибку вызова функции Function:TabExpansion при импорте самого модуля. Оказалось что 3-й версии PowerShell эта функция заменена на TabExpansion2.
Поэтому надо в файле PowerTab.psm1 строку
$OldTabExpansion = Get-Content Function:TabExpansion
заменить на,
$OldTabExpansion = Get-Content Function:TabExpansion2
т.е. просто добавьте 2 в конец строки.
Гуру PowerShell уже пользуются 5- версией для администрирования всего. Но и 3-я на моем рабочем месте предоставляет много возможностей. Разница межу версиями хорошо иллюстрирована здесь.
А вот сводная таблица версий PowerShell и Windows.
Версию PowerShell на вашем ПК или сервере можно узнать выполнив команду:
$PSVersionTable.PSVersion
или
Get-Host | Select-Object Version.
Если по какой то причине вам нужна версия 2.0 то в сеансе к ней можно вернуться командой:
PowerShell.exe -Version 2
Однако в этом случае будет нужен установленный пакет .NET Framework 3.5 или .NET 2.0.
Кстати проверить разрядность, 32 бита или 64, вашего окружения можно командой:
[Environment]::Is64BitProcess
Команда вернет False если у вас 32 bits и True для 64-х соответственно.
Больше подробностей про версионность здесь.
Удачи.
Версию PS для Win7SP1 можно поднять до 3.0 установив Windows6.1-KB2506143-x86.msu и до 4.0 Windows6.1-KB2819745-x86-MultiPkg.msu соответственно.
ReplyDeleteПри этом не забываем про .NET 4.0 и 4.5.