Sometimes it may be necessary to install the Exchange Online Shell on an older operating system, for example if an older Exchange Server version is to be migrated to Exchange Online or Microsoft 365. However, an error may occur when trying to install the shell and the error message is not entirely clear.
The following error message may occur when trying to install the Exchange Online Shell on older operating systems:
WARNING: The list of available providers cannot be downloaded. Check your internet connection.
PackageManagement\Install-PackageProvider : For the specified search criteria for provider "NuGet", no
Match found. The package provider requires the PackageManagement and Provider tag. Check whether the
specified package has the tags.

The background is as follows: The PackageProvider NuGet (PowerShellGet) is required to install the Exchange Online Shell. NuGet is downloaded and installed as required. However, the download is only possible if the client supports TLS 1.2. However, TLS 1.2 support is not activated by default on older operating systems. The current TLS settings can be checked with PowerShell:
[Net.ServicePointManager]::SecurityProtocol

The output shows that in this case only SSL3 and quite old TLS (TLS 1.0) are supported, but not TLS 1.1 and TLS 1.2. To use only TLS connections, the following two commands can be used (SSL3 should generally no longer be used):
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

After restarting PowerShell, only TLS connections are now used:

Now the download of NuGet and the installation of the Exchange Online Shell also works:

The current version of the Exchange Online PowerShell module can be found here: