PowerShell «возникла ошибка при создании конвейера» #Requires -Version 3.0

Вопрос: При попытке использовать любую из команд #Requires, например: #Requires -Version 3.0 Они ошибаются с текстом: Произошла ошибка при создании конвейера. + CategoryInfo: NotSpecified: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: RuntimeException Я тестировал это на ISE и в консоли с теми же результатами, мои версии ниже: Name Value ---- ----- PSVersion 5.1.14409.1012 PSEdition Desktop PSCompatibleVersions {1.0,

Вопрос:

При попытке использовать любую из команд #Requires, например:

#Requires -Version 3.0

Они ошибаются с текстом:

Произошла ошибка при создании конвейера. + CategoryInfo: NotSpecified: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: RuntimeException

Я тестировал это на ISE и в консоли с теми же результатами, мои версии ниже:

Name Value —- —— PSVersion 5.1.14409.1012 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} BuildVersion 10.0.14409.1012 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1

Ответ №1$versionMinimum = [Version]’5.0′ if ($versionMinimum -gt $PSVersionTable.PSVersion) { throw «You need Powershell Version $versionMinimum to run this script» } Ответ №2

Мой последний тест перед отправкой вопроса дал ответ:

Кажется, что команды “#Requires” предназначены для выхода из сценария, если он не отвечает требованиям, а не публикует сообщение об ошибке, и тестирование его на одной строке приведет к ошибке.

Чтобы проверить, найдите версию PowerShell (например, 5.1) и сохраните следующую перенос 5.1 с вашей версией (major.minor):

#Requires -version 5.1 $PSVersionTable.PSVersion Read-Host

Это будет работать как на ISE, так и на консоли, обеспечивая вывод, даже если “Запустить с помощью PowerShell”.

  • С помощью строки #Requires – (ничего) вы увидите ошибку.
    • В ISE “Выполнить выбор” будет работать, если он сопровождается другой строкой кода.
  • Использование ISE. Если параметр #Requires не соответствует вашему, это вызовет более описательную ошибку. Если вы запустите консоль, она сломается и закроется.
Оцените статью
Добавить комментарий