メインコンテンツにスキップ

Import-Module: Method not found

システムに Microsoft Graph SDK 2.36 以降がインストールされている状態で Import-Module ShareGate を実行すると発生する MissingMethodException を解決する方法。

メモ: PowerShell 連携機能をご利用いただくには、ShareGate Migrate の Pro または Enterprise サブスクリプションが必要です。Essentials プランではご利用いただけません。

症状

PowerShell で Import-Module ShareGate を実行すると、次のエラーが表示されます。

Import-Module: Method not found: 'System.Collections.Generic.IList`1<System.Net.Http.DelegatingHandler> Microsoft.Graph.GraphClientFactory.CreateDefaultHandlers(Microsoft.Graph.GraphClientOptions)'

エラーコード

該当なし。

詳細

このエラーは、お使いのマシンにシステムレベルで Microsoft Graph SDK バージョン 2.36.0 以降がインストールされている場合に発生します。

ShareGate Migrate には、独自にバンドルされたバージョンの Microsoft Graph DLL が含まれています。

システム全体に新しいバージョンの Microsoft Graph SDK がインストールされていると、PowerShell は ShareGate Migrate にバンドルされたバージョンではなく、そちらを読み込みます。

バージョン 2.36.0 では ShareGate Migrate が依存しているメソッドが削除されたため、モジュールのインポート時にエラーが発生します。

解決方法

Microsoft Graph SDK を互換性のあるバージョンにダウングレードすることで解決できる場合があります。

  1. PowerShell を管理者として開きます。

  2. 次のコマンドを実行して、インストール済みのすべてのバージョンの Microsoft Graph SDK を削除します。

    Uninstall-Module Microsoft.Graph -AllVersions -Force
  3. 次のコマンドを実行して、互換性のあるバージョンをインストールします。

    Install-Module Microsoft.Graph -RequiredVersion 2.28.0 -Force
  4. PowerShell を再起動し、Import-Module ShareGate を再度実行します。

注意: Graph SDK をダウングレードすると、システム上の他のアプリケーションに影響が及ぶ可能性があります。この変更は自己責任で行ってください。

それでもエラーが解消しない場合

  • エラーメッセージの全文

  • お使いのマシンに現在インストールされている Microsoft Graph SDK のバージョン(Get-InstalledModule Microsoft.Graph を実行して確認できます)

  • これまでに試したこと

この記事はAIによって翻訳されています。ご不明な点がある場合は、英語の原文をご確認ください。

こちらの回答で解決しましたか?