今回は、PowershellのV2モジュールをインストールするにあたり、Install-Module -Name ExchangeOnlineManagement のコマンドレットを実行した際に、"PackageManagement\Install-Package : 指定された検索条件とパッケージ名 'ExchangeOnlineManagement' と一致するものが見つかりませんでした。登録されている使用可能なすべてのパッケージ ソースを確認するには、Get-PSRepository を使用します。" とエラー返された場合の解消方法についてご紹介していきたいと思います。
過去の事例から以下 2 点の原因が想定される事を確認しております。
- 実行されたOS 上で TLS 1.2 が有効となっていない
- NuGet /PowerShellGetのモジュールが最新化されていない
次の手順に沿ってコマンドを実行し、事象が解消するかお試し
1.管理者権限でWindows PowerShell 起動
Windows PowerShell を管理者で起動します。
[ユーザー アカウント制御] プロンプトが表示された際は、[続行] をクリックします。
2.ポリシーの確認
以下のコマンドを実行します。
Get-ExecutionPolicy
表示結果が [RemoteSigned] の場合は先に進みます。
表示結果が [RemoteSigned] 以外の値が返された場合は、値を [RemoteSigned] に変更する必要があるため、次のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned
上記構文は、端末ごとに一度だけ構成が必要です。その後は接続ごとに行う必要はありません。
[実行ポリシーの変更] を求められますので、[Y] と入力して [Enter] キーを押下します。
警告が表示される場合がありますが、正常に接続されている証拠ですので問題ありません。
実行後、再度項番 2. に戻り、コマンドの表示結果を確認してください。
3.TLS 1.2有効化
以下のコマンドを実行します。
[Net.ServicePointManager]::SecurityProtocol
表示結果に Tls12 が含まれない場合は次のコマンドを実行します。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
その後次のコマンドを実行し、表示結果に Tls12 が含まれることを確認します。
[Net.ServicePointManager]::SecurityProtocol
なお、本手順はこの PowerShell セッション内でのみ TLS 1.2 を有効化するものですので、OS の設定が恒久的に変更されるものではありませんのでご安心ください。
4.NuGet /PowerShellGetの更新
以下のコマンドを実行します。
Install-PackageProvider -Name NuGet -Force
Install-Module -Name PowerShellGet -Force
5.ExchangeOnlineManagementのインストール
以下のコマンドを実行します。
Install-Module -Name ExchangeOnlineManagement
上記が成功するかをご確認ください。
上記が正常に完了できましたら、Exchange Online の PowerShell モジュールがインストールされています。