Unable to resolve package source: ошибка установки модулей PowerShell

При установке модулей PowerShell из онлайн галереи PSGallery вы можете столкнуться с ошибкой WARNING: Unable to resolve package source :

Install-Module SqlServer

WARNING: Unable to resolve package source ‘https://www.powershellgallery.com/api/v2’._x000D_PackageManagementFind-Package : No match was found for the specified search criteria and module name ‘sqlserver. Try Get-PSRepository to see all available registered module repositories._x000D_NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage

Аналогичная ошибка будет появляться при онлайн установке любого PowerShell модуля через Nuget будь то модуль Exchange Online Powershell , AzureAD , VMware PowerCLI , PSWindowsUpdate , SecretManagement , SQLServer и т.д. При этом любой PowerShell модуль можно легко установить вручную в офлайн режиме .

Проблема может появится в Windows 10 и Windows Server 2016 и более старых версиях Windows. Причина проблемы в том, что по-умолчанию PowerShell пытается использовать устаревший и небезопасный протокол TLS 1.0 для подключения к PSGallery. С апреля 2020 года PowerShell Gallery разрешает подключение к NuGet провайдеру только с помощью TLS 1.2 .

Если в Windows не отключены протоколы TLS 1.0 и TLS 1.1 , нужно выполнить следующую команду, чтобы в текущей сессии PowerShell для подключения использовался протокол TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Версия TLS 1.2 поддерживается во всех версиях Windows, начиная с Windows 8/Windows Server 2012. Список поддерживаемых версий TLS в PowerShell можно вывести так:

[enum]::GetNames([Net.SecurityProtocolType])

В Windows 7 SP1 для включения поддержки TLS 1.2 нужно установить специальное обновление KB3140245 и патч MicrosoftEasyFix51044.msi.

Если ваша Windows 7 не поддерживает TLS 1.2, то при подключении к большинству современных почтовых серверов с помощью Outlook будет появляться ошибка 0x800CCC1A – Ваш сервер не поддерживает указанный вами тип шифрования .

Теперь вы можете установить или обновить модуль из PowerShell Gallery:

При следующем открытии консоли PowerShell вам придется заново включить поддержку TLS 1.2. Версии протоколов, используемые в PowerShell для подключения можно вывести так:

[Net.ServicePointManager]::SecurityProtocol

Чтобы при каждом запуске PowerShell вам не приходилось включать использование TLS1.2, можно изменить версию TLS по умолчанию для .NET Framework. Для этого с помощью PowerShell внесите следующие изменения в реестр :

Set-ItemProperty -Path ‘HKLM:SOFTWAREWow6432NodeMicrosoft.NetFrameworkv4.0.30319’ -Name ‘SchUseStrongCrypto’ -Value ‘1’ -Type DWord
Set-ItemProperty -Path ‘HKLM:SOFTWAREMicrosoft.NetFrameworkv4.0.30319’ -Name ‘SchUseStrongCrypto’ -Value ‘1’ -Type DWord

Если ваш компьютер подключён к Интернету через прокси-сервер, убедитесь, что в сессии PowerShell настроено подключение через прокси :

netsh winhttp show proxy

Можно импортировать настройки прокси-сервера из системных настроек Windows (Internet Explorer).

netsh winhttp import proxy source=ie

Аналогичная ошибка при установке моделей PowerShell Unable to download from URI описана в предыдущей статье .

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago