none
PowershellGet и NuGet установка RRS feed

  • Вопрос

  • Доброго всем!

    Изначально хотел подключиться к нашему Exchange Online и затестить парочку командлетов PS для поиска и удаления писем. Но уперся в то, что MS якобы обновляет PS на версию 2, точнее нужно установить и настроить теперь EXO v2 - начал с этой статьи.

    В предыдущей ссылке есть ссылка на Установку и обслуживание модуля EXO v2. Начал по этой статье делать. Там говориться что надо установить Windows Management Framework 5.1. Скачал и установил. Перезапустил ПК.

    Далее надо установить сам модуль PowerShellGet. 

    Выясняю какая версия PS у меня установлена

    PS C:\Windows\system32> $PSVersionTable
    Name                           Value
    ----                           -----
    PSVersion                      5.1.14409.1005
    PSEdition                      Desktop
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
    BuildVersion                   10.0.14409.1005
    CLRVersion                     4.0.30319.42000
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    SerializationVersion           1.1.0.1

    Итак, делаю далее по статье и даю команду Install-Module -Name PowerShellGet -Force. И вот тут затыка!

    PS меня спрашивает:

    Для продолжения требуется поставщик NuGet
    Для взаимодействия с репозиториями на основе NuGet модулю PowerShellGet требуется версия поставщика NuGet "2.8.5.201"
    или более новая. Поставщик NuGet должен быть доступен в "C:\Program Files\PackageManagement\ProviderAssemblies" или
    "C:\Users\Adm\AppData\Local\PackageManagement\ProviderAssemblies". Поставщик NuGet можно также установить, выполнив
    команду "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force". Вы хотите, чтобы модуль PowerShellGet
    установил и импортировал поставщик NuGet прямо сейчас?
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):

    Я естественно отвечаю "Y"

    и дальше ошибка

    WARNING: Не удалось скачать в "", используя универсальный код ресурса (URI)
    "https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409".
    WARNING: Не удалось скачать список доступных поставщиков. Проверьте подключение к Интернету.
    PackageManagement\Install-PackageProvider : По указанному поисковому запросу поставщика "NuGet" не найдено совпадений.
    Для поставщика пакета требуется указать теги "PackageManagement" и "Provider". Проверьте наличие тегов в указанном паке
    те.
    At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7405 char:21
    + ...     $null = PackageManagement\Install-PackageProvider -Name $script:N ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (Microsoft.Power...PackageProvider:InstallPackageProvider) [Install-Pac
       kageProvider], Exception
        + FullyQualifiedErrorId : NoMatchFoundForProvider,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackagePro
       vider

    PackageManagement\Import-PackageProvider : Для указанных условий поиска и имени поставщика "NuGet" не найдено совпадени
    й. Попытайтесь выполнить команду "Get-PackageProvider -ListAvailable", чтобы увидеть, существует ли провайдер в этой си
    стеме.
    At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7411 char:21
    + ...     $null = PackageManagement\Import-PackageProvider -Name $script:Nu ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidData: (NuGet:String) [Import-PackageProvider], Exception
        + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.ImportPackageProv
       ider

    WARNING: Не удалось скачать в "", используя универсальный код ресурса (URI)
    "https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409".
    WARNING: Не удалось скачать список доступных поставщиков. Проверьте подключение к Интернету.
    PackageManagement\Get-PackageProvider : Не удается найти поставщик пакетов "NuGet". Возможно, он еще не импортирован. П
    опытайтесь выполнить команду "Get-PackageProvider -ListAvailable".
    At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7415 char:30
    + ... tProvider = PackageManagement\Get-PackageProvider -Name $script:NuGet ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Microsoft.Power...PackageProvider:GetPackageProvider) [Get-PackageProvi
       der], Exception
        + FullyQualifiedErrorId : UnknownProviderFromActivatedList,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPacka
       geProvider

    Install-Module : Для взаимодействия с репозиториями на основе NuGet требуется поставщик NuGet. Убедитесь, что установле
    на как минимум версия поставщика NuGet "2.8.5.201".
    At line:1 char:1
    + Install-Module -Name PowerShellGet -Force
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Install-Module], InvalidOperationException
        + FullyQualifiedErrorId : CouldNotInstallNuGetProvider,Install-Module

    Вроде в команде нет ошибки - как в статье ((

    С инетом на ПК проблем тоже нет, чтобы он пакеты скачал.

    В чем может быть дело?

    Спасибо!

    P.S. И немного не понял PowerShellGet - это же вроде поставщик пакетов? А NuGet тогда что?

    Т.к. в статье говорится, что "Перед обновлением PowerShellGet всегда устанавливайте последний поставщик NuGet. Откройте сеанс PowerShell с повышенными привилегиями и выполните следующую команду."

    И тот поставщик и этот поставщик )), непонятно
    • Изменено ItDen 26 августа 2020 г. 13:33
    26 августа 2020 г. 13:25

Ответы

  • Если кто-либо ещё застрянет с аналогичной проблемой, следует попробовать такие действия:

    1. Установить обновления для операционки в соответствии с рекомендациями - см. Deprecating TLS 1.0 and 1.1 on NuGet.org (источник) (возможно, необходимо лишь для старых систем типа Windows 7).

    2. Активировать поддержку современных версий TLS в PowerShell (см. подсказку):

    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls11,Tls12'
    Возможно, ещё понадобится что-то подкрутить, но копать надо в сторону актуальных версий TLS.

    • Помечено в качестве ответа Vector BCOModerator 16 ноября 2020 г. 9:57
    6 октября 2020 г. 20:30
  • потому что старые пакеты не умеют обновлять сами себя

    можно попробовать что-то такое

    Start-BitsTransfer https://dist.nuget.org/win-x86-commandline/latest/nuget.exe $env:TEMP\Nuget.exe
    Unblock-File $env:TEMP\Nuget.exe
    Set-Alias nuget $Env:TEMP\Nuget.exe


    The opinion expressed by me is not an official position of Microsoft

    26 августа 2020 г. 14:16
    Модератор

Все ответы

  • powershellget это обертка для nuget

    использовать стоит актуальные

    установаить можно руками скачав их на офсайтах


    The opinion expressed by me is not an official position of Microsoft

    26 августа 2020 г. 13:59
    Модератор
  • Да про ручную установку читал. Но хочется разобраться, чего не идет процесс по стандартному сценарию ((
    26 августа 2020 г. 14:05
  • потому что старые пакеты не умеют обновлять сами себя

    можно попробовать что-то такое

    Start-BitsTransfer https://dist.nuget.org/win-x86-commandline/latest/nuget.exe $env:TEMP\Nuget.exe
    Unblock-File $env:TEMP\Nuget.exe
    Set-Alias nuget $Env:TEMP\Nuget.exe


    The opinion expressed by me is not an official position of Microsoft

    26 августа 2020 г. 14:16
    Модератор
  • Если кто-либо ещё застрянет с аналогичной проблемой, следует попробовать такие действия:

    1. Установить обновления для операционки в соответствии с рекомендациями - см. Deprecating TLS 1.0 and 1.1 on NuGet.org (источник) (возможно, необходимо лишь для старых систем типа Windows 7).

    2. Активировать поддержку современных версий TLS в PowerShell (см. подсказку):

    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls11,Tls12'
    Возможно, ещё понадобится что-то подкрутить, но копать надо в сторону актуальных версий TLS.

    • Помечено в качестве ответа Vector BCOModerator 16 ноября 2020 г. 9:57
    6 октября 2020 г. 20:30