公式ドキュメントや公式ブログのコマンドライン通りに入力したにもかかわらず、「PowerShellギャラリー」からモジュールをインストールしたり、更新したりできないといったトラブルをここ数カ月の間で経験した方はいないでしょうか。恐らくその原因は、PowerShellギャラリーにおける「TLS 1.0/1.1のサポート廃止」に関係しています。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「PowerShellギャラリー(PowerShell Gallery)」は、「Windows PowerShell」(最新バージョンはWindows PowerShell 5.1)やクロスプラットフォームの「PowerShell Core」(最新バージョンはPowerShell 7.0)で使用するリソース(モジュールやスクリプト)のリポジトリです。
PowerShellギャラリーを利用すると、Microsoftやコミュニティーが作成したコンテンツを「Install-Module」や「Update-Module」コマンドレットを使用して簡単にインストールしたり、更新したりできます。
例えば、Azure PowerShellの「Az」モジュールや「Docker Enterprise 3.0」以前(3.1には非対応)のWindows Serverへのインストールを簡素化する「DockerMsftProvider」などのインストールや更新に利用できます。
TLS(Transport Layer Security)1.0/1.1の実装にはセキュリティ上の脆弱(ぜいじゃく)性があり、多くのWebサイトやサービスでこれらのセキュリティプロトコルのサポートが廃止されています。以下のMicrosoftのアナウンスにあるように、PowerShellギャラリーについては2020年4月にこれらのセキュリティプロトコルのサポートが廃止されました。現在は、TLS 1.2を使用する必要があります。
「Windows 10 バージョン1809」以降と「Windows Server 2019」以降は、TLS 1.2に標準で対応しており、PowerShellギャラリーにおけるセキュリティ強化の影響は受けません。
しかし、それ以前のバージョンのWindowsとWindows Serverについては、既定のセキュリティプロトコルがSSL(Secure Sockets Layer)3.0とTLS 1.0に設定されているため、そのままではTLS 1.2を要求するサービスへの接続やファイルのダウンロードに失敗します。
「Install-Module」や「Update-Module」コマンドレットは、現在、TLS 1.2を使用しなければPowerShellギャラリーに接続することはできず、次のようなエラーで失敗します(画面1、画面2)。
PowerShell ギャラリーは現在利用できません。後でやり直してください。
インターネット接続を確認してください。
この問題は、サポートライフサイクル期間中の以下のWindowsとWindows Serverに影響します。
この問題は、「Install-Module」や「Update-Module」コマンドレットを実行する前に現在のPowerShellセッション(ウィンドウ)で以下のコマンドラインを実行し、TLS 1.2の使用を明示的に指定することで簡単に回避できます(画面3)。
Copyright © ITmedia, Inc. All Rights Reserved.