社畜の所業

社畜の所業

Microsoft365の機能について解説をしていきたいと思います。このブログの情報をご活用いただければ幸いです。たまに他の情報も取り入れていきたいと思います。

※このサイトはPR記事を含みます。

【Microsoft365参考書】'ExchangeOnlineManagement' と一致するものが見つかりませんでしたとエラーになる場合の解消方法について

f:id:it-bibouroku:20210404095716p:plain

今回は、PowershellのV2モジュールをインストールするにあたり、Install-Module -Name ExchangeOnlineManagement のコマンドレットを実行した際に、"PackageManagement\Install-Package : 指定された検索条件とパッケージ名 'ExchangeOnlineManagement' と一致するものが見つかりませんでした。登録されている使用可能なすべてのパッケージ ソースを確認するには、Get-PSRepository を使用します。" とエラー返された場合の解消方法についてご紹介していきたいと思います。

 

過去の事例から以下 2 点の原因が想定される事を確認しております。 

  

  1. 実行されたOS 上で TLS 1.2 が有効となっていない 
  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 モジュールがインストールされています。