Во-первых, правильный метод проверки вашей версии PowerShell - это проверка переменной $PSVersionTable.PSVersion
и не использовать $ Host или Get-Host.
Во-вторых, вам следует изучить, какую версию PowerShell вы должны установить на свой сервер, а не просто обновить ее до последней доступной версии. Отличный пост от сценариста Стоит ли переходить на последнюю версию Windows PowerShell? может помочь вам принять это решение. Например, в сообщении указывается, что обновление PowerShell может сломать важные приложения:
Повлияет ли обновление Windows PowerShell на мои приложения?
К сожалению, ответ таков: Примечания к выпуску для Windows PowerShell 4.0 содержат следующий список приложений, с которыми несовместим Windows PowerShell 4.0:
- System Center 2012 Configuration Manager (не включая пакет обновления 1)
- System Center Virtual Machine Manager 2008 R2 (включая пакет обновления 1)
- Microsoft Exchange Server 2013, Microsoft Exchange Server 2010 и Microsoft Exchange Server 2007
- Microsoft SharePoint 2013 и Microsoft SharePoint 2010
- Windows Small Business Server 2011 Standard
Если на вашем компьютере запущен какой-либо из этих продуктов, не устанавливайте Windows PowerShell 4.0. Windows PowerShell 3.0 имеет очень похожий список. Некоторые из этих приложений (например, Exchange Server 2013) совместимы с пакетом обновления. Вам нужно будет определить, доступен ли пакет обновления или другое исправление для вашего конкретного приложения и ситуации.
Кроме того, новые версии PowerShell, а также могут сломать ваши существующие скрипты.