Attempting to install NuGet provider in PowerShell fails with: “PackageManagementInstall-PackageProvider : No match was found for the specified search criteria for the provider.”

You’re attempting to install a PowerShell module such as SharePointPnPPowerShellOnline to use Connect-PNPONline (https://docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/connect-pnponline?view=sharepoint-ps) to establish a connection to SharePoint online, which prompts you to install the NuGet provider. Proceeding to answer yes to the prerequisite install quickly fails with the following message:

PS C:> Install-Module SharePointPnPPowerShellOnline

NuGet provider is required to continue

PowerShellGet requires NuGet provider version ‘2.8.5.201’ or newer to interact with NuGet-based repositories. The NuGet

provider must be available in ‘C:Program FilesPackageManagementProviderAssemblies’ or

‘C:UserstlukAppDataLocalPackageManagementProviderAssemblies’. You can also install the NuGet provider by running

‘Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force’. Do you want PowerShellGet to install and import

the NuGet provider now?

[Y] Yes [N] No [S] Suspend [?] Help (default is “Y”): Y

WARNING: Unable to download from URI ‘https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409’ to ”.

WARNING: Unable to download the list of available providers. Check your internet connection.

PackageManagementInstall-PackageProvider : No match was found for the specified search criteria for the provider

‘NuGet’. The package provider requires ‘PackageManagement’ and ‘Provider’ tags. Please check if the specified package

has the tags.

At C:Program FilesWindowsPowerShellModulesPowerShellGet1.0.0.1PSModule.psm1:7405 char:21

+ … $null = PackageManagementInstall-PackageProvider -Name $script:N …

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidArgument: (Microsoft.Power…PackageProvider:InstallPackageProvider) [Install-Pac

kageProvider], Exception

+ FullyQualifiedErrorId : NoMatchFoundForProvider,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackagePro

vider

 

PackageManagementImport-PackageProvider : No match was found for the specified search criteria and provider name

‘NuGet’. Try ‘Get-PackageProvider -ListAvailable’ to see if the provider exists on the system.

At C:Program FilesWindowsPowerShellModulesPowerShellGet1.0.0.1PSModule.psm1:7411 char:21

+ … $null = PackageManagementImport-PackageProvider -Name $script:Nu …

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidData: (NuGet:String) [Import-PackageProvider], Exception

+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.ImportPackageProv

ider

 

WARNING: Unable to download from URI ‘https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409’ to ”.

WARNING: Unable to download the list of available providers. Check your internet connection.

PackageManagementGet-PackageProvider : Unable to find package provider ‘NuGet’. It may not be imported yet. Try

‘Get-PackageProvider -ListAvailable’.

At C:Program FilesWindowsPowerShellModulesPowerShellGet1.0.0.1PSModule.psm1:7415 char:30

+ … tProvider = PackageManagementGet-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 provider is required to interact with NuGet-based repositories. Please ensure that ‘2.8.5.201’

or newer version of NuGet provider is installed.

At line:1 char:1

+ Install-Module SharePointPnPPowerShellOnline

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidOperation: (:) [Install-Module], InvalidOperationException

+ FullyQualifiedErrorId : CouldNotInstallNuGetProvider,Install-Module

PS C:>

86

Solution

A quick workaround for this error is configure TLS 1.2 for the PowerShell session with the following command:

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

NuGet provider will install once the above is executed:

PS C:> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

PS C:> Install-Module SharePointPnPPowerShellOnline

 

NuGet provider is required to continue

PowerShellGet requires NuGet provider version ‘2.8.5.201’ or newer to interact with NuGet-based repositories. The NuGet

provider must be available in ‘C:Program FilesPackageManagementProviderAssemblies’ or

‘C:UserstlukAppDataLocalPackageManagementProviderAssemblies’. You can also install the NuGet provider by running

‘Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force’. Do you want PowerShellGet to install and import

the NuGet provider now?

[Y] Yes [N] No [S] Suspend [?] Help (default is “Y”): Y

Untrusted repository

You are installing the modules from an untrusted repository. If you trust this repository, change its

InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from

‘PSGallery’?

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “N”): Y

PS C:>

85

To permanently correct the issue, open the registry and navigate to the following path for the 64 bit .Net Framework:

ComputerHKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoft.NETFrameworkv4.0.30319

84

Add the chUseStrongCrypto key with the following PowerShell cmdlet:

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

83

82

Repeat the same for the 32 bit .Net Framework:

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

81