Лучший отвечающий
PowershellGet и NuGet установка

Вопрос
-
Доброго всем!
Изначально хотел подключиться к нашему 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
- Предложено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 15 сентября 2020 г. 14:03
- Помечено в качестве ответа Vector BCOModerator 16 ноября 2020 г. 9:57
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
- Предложено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 15 сентября 2020 г. 14:03
- Помечено в качестве ответа Vector BCOModerator 16 ноября 2020 г. 9:57
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