Microsoft Teams チャット移行を支援するために、Fly は以下のツールを提供しています。
アシスト ツールを使用して、Fly によって作成された移行先チャットに対して、以下の管理操作を実行することができます。
0 – Microsoft 365 グローバル管理者ロールを移行先委任アプリの同意ユーザーに割り当てます。
1 – プレースホルダー アカウントを保持して、特定の移行先チャットからその他のチャット メンバー (委任アプリの同意ユーザーを含む) を削除します。
2 – Fly によって新規作成されたすべての移行先チャットから、移行先委任アプリの同意ユーザーおよびプレースホルダー アカウントを削除します。
すべての移行が完了し、移行先チャットが管理された後にこのアクションを実行することを推奨します。
委任アプリの同意ユーザーが、削除するチャット以外のチャットでも使用されている場合、機能 4 を使用してこれらのユーザーを削除する必要があります。
3 – すべての移行先チャットから特定の内部ユーザーを削除します。
4 – 特定のチャットから、委任アプリの同意ユーザーおよびプレースホルダー アカウントを削除します。
5 – すべての移行先チャットから特定の外部ユーザーを削除します。
6 – すべての移行先チャット ユーザーから特定のチャットを削除します。
7 – 委任アプリの同意ユーザーを特定の移行先チャットに追加します。
8 – 特定のユーザーからのチャットをすべてスキャンします。
9 – 移行されたチャット メッセージ内のリンクを置き換えます。
アシスト ツールを準備して実行するには、以下の説明を参照してください。
ツール パッケージのストレージ場所 にアクセスし、ChatMigrationAssistTool.zip ファイルをダウンロードして、ZIP ファイルを解凍します。
解凍されたツール フォルダーで、ChatMigrationAssistTool.exe.config ファイルをメモ帳で開きます。
CONFIG ファイルの以下のノードでアカウントを構成します。

<add key="DelegateAppConsentUser" value=" "/> – 移行先委任アプリの同意ユーザーのユーザー プリンシパル名を value=" " パラメーター値として構成します。
<add key="PlaceHolderUser" value=" " /> – プレースホルダー アカウントのユーザー プリンシパル名を value=" " パラメーター値として構成します。
<add key="ProxyURL" value=" " /> – ツールを実行するマシンにネットワーク接続がある場合、このノードをスキップすることができます。ネットワーク接続がない場合、IP:Port 形式でプロキシを value=" " パラメーターの値として構成します。<add key="ProxyUserName" value=" " /> ノードでプロキシ サーバーにログインするユーザーを構成し、<add key="ProxyPassword" value=" " /> ノードでプロキシ サーバーへのアクセス用のパスワードを構成します。
<add key="AppId" value=" " /> – 既定では、接続のために Fly は Built-in アプリを取得して使用します。カスタム アプリを使用する場合、カスタム アプリ ID を value=" " パラメーター値として構成します。
アプリを暗号化するために、カスタム アプリのクライアント シークレットまたは証明書が構成されていることを確認してください。カスタム アプリを暗号化するために証明書の使用を選択した場合、ChatMigrationAssistTool.exe ファイルと同じディレクトリに証明書を保存します。その後、以下のノードの構成を続行します。
<add key="CertificateFileName" value=" " /> – 証明書ファイル名を value=" " パラメーター値として入力します。
<add key="CertificatePassword" value=" " /> – 証明書のパスワードを value=" " パラメーター値として入力します。
ステップ 1 ~ 2 はすべての機能に適用されます。いずれかの機能を使用するには、CONFIG ファイルで <add key="DelegateAppConsentUser" value=" "/> および <add key="PlaceHolderUser" value=" " /> ノードが構成されていることを確認してください。
機能 2、機能 3、機能 5 を使用するには、このステップを無視して直接ステップ 5 に移動します。
その他の機能を使用するには、先に関連するチャットの ID をコピーします。チャット ID を検索するには、以下の法方法があります。
チャットを右クリックし、リンクをコピーして貼り付けることで、チャット ID を確認します。

チャットの移行レポートを生成してダウンロードすることで、チャット ID を確認します。

その後、以下の手順を完了してください。
機能 1 – CSV ファイルを用意し、チャット メンバーを削除するチャットのチャット ID を以下のスクリーンショットのように設定します。

機能 4 – CSV ファイルを用意し、チャット メンバーを削除するチャットのチャット ID を以下のスクリーンショットのように設定します。

機能 6 – CSV ファイルを作成し、各行に削除するチャットの ID を入力します。

機能 7:
移行先テナントでカスタム アプリを作成し、以下の権限をアプリに追加します。
| API | アクセス許可 | タイプ | 説明 |
|---|---|---|---|
| Microsoft Graph | User.Read.All | アプリケーション | チャット ユーザー プロファイルの情報を取得します。 |
| Microsoft Graph | Chat.ReadWrite.All | アプリケーション | チャット メンバーを取得して変更します。 |
CSV ファイルを作成し、各行に委任アプリの同意ユーザーを追加するチャットの ID を構成します。

<add key="AppId" value=" " /> ノードで、カスタム アプリ ID を value=" " パラメーター値として構成します。
機能 8:
移行先テナントでカスタム アプリを作成し、以下の権限をアプリに追加します。
| API | アクセス許可 | タイプ | 説明 |
|---|---|---|---|
| Microsoft Graph | User.Read.All | アプリケーション | チャット ユーザー プロファイルの情報を取得します。 |
| Microsoft Graph | Chat.ReadBasic.All | アプリケーション | チャット情報を取得します。 |
| Microsoft Graph | ChatMember.Read.All | アプリケーション | チャット ユーザーを取得します。 |
CSV ファイルを作成し、各行にチャットをスキャンする移行先チャット メンバーのユーザー名を入力します。

<add key="AppId" value=" " /> ノードで、カスタム アプリ ID を value=" " パラメーター値として構成します。
機能 9:
解凍されたツール フォルダーで、UrlMapping.csv ファイルを開きます。
特定の移行先チャット ユーザーにリンクを置き換えるには、URL マッピングを構成します。以下のスクリーンショットのように、Original Url 列に現在のドメイン付きのユーザー OneDrive サイトの完全 URL を入力し、New Url 列に最終のドメイン付きのユーザー OneDrive サイトの完全 URL を入力します。

すべての移行先チャット ユーザーにリンクを置き換えるには、1 つの URL マッピングのみを構成します。以下のスクリーンショットのように、Original Url 列に現在のドメイン名を入力し、New Url 列に最終のドメイン名を入力します。

ChatMigrationAssistTool.exe ファイルを右クリックし、管理者として実行 を選択します。
移行先委任アプリの同意ユーザーが Microsoft 365 グローバル管理者であるかどうかによって、0、1、2、3、4、5、6、7、8、9 のいずれかを入力して機能を指定します。
移行先委任アプリの同意ユーザーが Microsoft 365 グローバル管理者である場合、1、2、3、4、5、6、7、8、9 を入力してキーボードの Enter キーを押し、対応する機能を直接実行します。

Microsoft のサインイン ページで、移行先委任アプリの同意ユーザーを使用して移行先テナントにサインインし、[組織の代理として同意する] オプションを選択します。
移行先委任アプリの同意ユーザーが Microsoft 365 グローバル管理者でない場合、先に 0 を入力して権限を委任アプリの 同意ユーザーに同意する必要があります。1 を入力してキーボードの Enter キーを押し、サービス アカウントの権限に同意する必要があります。
Microsoft のサインイン ページで、Microsoft 365 グローバル管理者を使用して移行先テナントにサインインし、認証ページで [組織の代理として同意する] オプションを選択します。
ChatMigrationAssistTool.exe ファイルを再度右クリックし、管理者として実行 を選択します。1、2、3、4、5、6、7、8、9 を入力してキーボードの Enter キーを押し、対応する機能を実行します。Microsoft サインイン ページで、移行先委任アプリの同意ユーザーを使用して移行先テナントにサインインします。
以下の機能にも追加の入力が必要です。
機能 1 – 1 を入力した後、ステップ 4 で構成されたチャット ID を含む CSV ファイルの完全パスを入力して、キーボードで Enter を押します。

機能 3 – 3 を入力した後、削除するユーザーのユーザー プリンシパル名を入力し、キーボードの Enter キーを押します。

機能 4 – 4 を入力した後、ステップ 4 で構成されたチャット ID を含む CSV ファイルの完全パスを入力して、キーボードで Enter を押します。

機能 6 – 6 を入力した後、ステップ 4 で構成されたチャット ID を含む CSV ファイルの完全パスを入力して、キーボードで Enter を押します。

機能 7 – 7 を入力した後、ステップ 4 で構成されたチャット ID を含む CSV ファイルの完全パスを入力して、キーボードで Enter を押します。

機能 8 – 8 を入力した後、ステップ 4 で構成されたユーザー名を含む CSV ファイルの完全パスを入力して、キーボードで Enter を押します。

プロセスが開始されます。プロセスが完了すると、CSV ファイルが生成され、結果がレポートされます。
ステップ 6 で 1、2、4 を入力して同意ユーザーを削除し、移行先でチャットを再作成する場合は、Microsoft Teams チャット移行ポリシーの カスタム機能 セクションに CreateNewChatIfServiceAccountIsLeave=true 文字列を追加し、完全移行ジョブを再実行することができます。移行元チャット ユーザーの正しいユーザー マッピングを構成していることを確認してください。
9 を入力して移行されたチャット メッセージ内のリンクを置き換える場合、以下のことに注意してください。
移行先委任アプリの同意ユーザーがチャットに存在しない場合、ジョブ中にチャット全体はスキップされます。
移行されたメッセージの送信者が移行先委任アプリの同意ユーザーではない場合、ジョブ中にそのメッセージはスキップされます。
チャットまたはメッセージ内のリンクが前回のジョブで置き換えられた場合、現在のジョブ中にそのチャットまたはメッセージはスキップされます。この場合、UrlMapping.csv ファイル内の最終ドメインを持つ URL を別の URL に更新し、リンクを新しい URL に置き換えるには、別のジョブを実行する前に、解凍したツール フォルダーから Cache フォルダーを削除する必要があります。
元のメッセージおよび返信で送信されたリンクのみを置き換えることができます。以下のスクリーンショットのような返信メッセージ内のリンクは、ジョブでスキップされます。

移行元チャット メンバーを予期しない移行先ユーザーにマッピングし、それらの移行先ユーザーに移行先のチャットおよびチャット メッセージを表示しない場合、以下の説明を参照して、特定の移行先ユーザーから移行先チャットおよびチャット メッセージを非表示にすることができます。
移行元チャットをスキャンして、チャットを非表示にする対象移行先ユーザーの移行元チャット メンバーが存在する場所を特定するには、以下の説明を参照してください。
移行元テナントでカスタム アプリを作成し、以下の権限をアプリに追加します。
| API | アクセス許可 | タイプ | 説明 |
|---|---|---|---|
| Microsoft Graph | User.Read.All | アプリケーション | チャット ユーザー プロファイルの情報を取得します。 |
| Microsoft Graph | Chat.ReadBasic.All | アプリケーション | チャット情報を取得します。 |
| Microsoft Graph | ChatMember.Read.All | アプリケーション | チャット ユーザーを取得します。 |
ツール パッケージのストレージ場所 にアクセスして、ChatScanTool.zip ファイルをダウンロードします。
ネットワークに接続している場所に ZIP ファイルを解凍します。
解凍されたフォルダーで CSV ファイルを作成し、ファイル名を Users にします。
CSV ファイルの各行に、スキャンする移行元チャット メンバーのユーザー名を入力します。

解凍されたツール フォルダーで、ChatScanTool.exe.config 構成ファイルを特定し、メモ帳で開きます。
構成ファイルで、テナント ID、ユーザー リストの CSV ファイル パス、ステップ a で作成されたカスタム アプリのアプリ ID およびシークレット キーを構成します。

解凍されたフォルダーで Reports フォルダーを作成します。
ChatScanTool.exe アプリケーション ファイルをダブルクリックし、構成したユーザーのチャットをスキャンします。
スキャンの完了後、スキャンされた移行元チャットを含むレポート ファイルは Reports フォルダーに生成されます。
チャットをこれらの移行先ユーザーに非表示にする場合、以下の説明を参照してください。
ツール パッケージのストレージ場所 にアクセスして、ChatMessageLinkReplaceTool.exe ファイルをダウンロードします。
ネットワークに接続している場所に ZIP ファイルを解凍します。
Windows PowerShell で Consent User.ps1 ファイルを実行して、必要な権限に同意します。
サインイン ページで、移行先テナントの グローバル管理者 アカウントでサインインします。

[組織の代理として同意する] オプションを選択し、[同意] をクリックして組織のユーザーの代理として権限に同意します。
解凍されたフォルダーで、CSV ファイルを作成し、ファイル名を Chats に指定します。
ステップ 1 > i でスキャンされた移行元チャット ID に基づいて、移行ジョブ レポートで対応する移行先チャット ID を検索します。

移行先ユーザーに非表示にする移行先チャットの ID を Chats.csv ファイルにコピーします。

移行先チャットを非表示にする移行先ユーザーに、Windows PowerShell で TeamChatData.ps1ファイルを実行し、自分の資格情報でサインインすることを依頼します。

ジョブの完了後、チャットはこれらの移行先ユーザーに非表示にします。非表示の結果を含むレポート ファイルはツール フォルダーに生成されます。
チャットを希望の移行先チャット メンバーに移行するには、移行元チャット メンバーを移行先ユーザーにマッピングするようにユーザー マッピングを更新して、移行ジョブを再実行します。