この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
Office365環境へPowerShell接続する際に以下のようなエラーが発生した場合の対処法となります。
・Install-Module MSOnlineを実施するとエラー
続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、’2.8.5.201′ 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは ‘<C:\Program Files\PackageManagement\ProviderAssemblies>’ または
‘C:\Users\Administrator\AppData\Local\PackageManagement\ProviderAssemblies’
に配置する必要があります。’Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force’ を実行して NuGet
プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet
プロバイダーをインストールしてインポートしますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は “Y”): y
警告: URI ‘https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409‘ から ” へダウンロードできません。
警告: 利用可能なプロバイダーの一覧をダウンロードできません。インターネット接続を確認してください。
PackageManagement\Install-PackageProvider : プロバイダー ‘NuGet’ について、指定された検索条件に一致するものが見つかりま
せんでした。パッケージ プロバイダーには ‘PackageManagement’ タグと ‘Provider’ タグが必要です。指定されたパッケージにこ
れらのタグがあるかどうかを確認してください。
・確認したPowershellのバージョン($PSVersionTable)
5.1
PowerShell GalleryにおいてTLS1.2が必須となった影響
セキュリティ上の脆弱性の観点から、2020年4月の時点で TLS1.2がPowerShell Galleryのデフォルトに設定され
TLS1.0およびTLS1.1のセキュリティプロトコルのサポートは廃止されました。
PowerShell Gallery TLS Support
PowerShellで使用される既定のセキュリティプロトコルにTLS1.2が対応していないとインストールコマンド等でエラーが発生します。
なお、Windows 10 バージョン1809 以降、Windows Server 2019以降はTLS 1.2に標準で対応しているため本エラーは発生しません。
確認方法と設定コマンド
現在設定されているTLSのバージョンを確認します。
[Net.ServicePointManager]::SecurityProtocol
Windows10 バージョン1909 のOSでは以下のように表示されました。
SystemDefault
こちらはTLS (1.0)、1.1、1.2 が設定されているので問題ありません。
Ssl3, Tls, Tls11, Tls12
上記のような結果が表示され「Tls12」が含まれていない場合、PowerShellセッションでTLS1.2の使用を指定することでエラーが回避されます。
以下のコマンドを実行し、TLS1.2を設定します。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
再度設定されているTLSのバージョンを確認し、TLS1.2 が含まれていることを確認した上で、インストールコマンドを再度実行します。