Teams クライアントからブロック解除ボタンを押下した際に「現時点では、このユーザーのブロックを解除できません。後でもう一度お試しください。」とエラーメッセージが出てブロック解除できないという事象についてご紹介したいと思います。
Teams クライアントからブロックを解除することが出来ない場合には PowerShell にてブロックの解除を行うことでブロックを解除することができることを確認しました。
そのため、ブロックしているユーザーにて以下手順にて PowerShell でブロックの解除をお試しください。
PowerShell を使用してブロックされたユーザーの解除を行う手順
注意事項
以下の手順では PowerShell コマンドを使用して HTTP リクエストの再送などを行います。PowerShell コマンドの中には、セッション情報やアクセストークンなどのユーザー・環境固有でかつ有効期限のある情報などが含まれるため、取得・修正した PowerShell コマンドを使いまわすことはできません。必ず一連の作業を事象の発生しているユーザーにて実施してください。
手順
1. Windows PowerShell ISE を起動します。(後の手順で使用するので、起動を確認後、次の手順に進んでください)
2. Microsoft Edge を起動し、Microsoft Teams (https://https://teams.microsoft.com/) を開きます。
3. プロファイル画像の横にある [...] (設定など) > [設定] をクリックし設定画面を開きます。
4. Microsoft Edge のタブで Microsoft Teams 設定画面が表示されている状態で、F12 キーを押下し、DevTools を起動します。
※確認メッセージが表示された場合は [DevTools を開く] をクリックして、DevTools を開いてください。
5. DevTools の画面で [ネットワーク] セクションをクリックして表示し、ネットワークログの記録がオンになっている (ネットワークタブのツールバーの右端の赤色のアイコン (赤丸の中に■のアイコン) が表示されている) ことを確認します。
6. Microsoft Teams の設定画面で [プライバシー] > [ブロックした連絡先を編集] をクリックし、[ブロックしたユーザーの管理] の画面にブロックされているユーザーが表示されることを確認します
7. DevTools の画面に戻り、ネットワーク セクションの [フィルター] 欄に "blocklist" と入力し、画面下部に表示されているリクエストをフィルタリングします。
8. フィルタリング後、[名前] 列に "blocklist/" と表示されたリクエスト (※) が表示されるので、該当のリクエストをクリックして選択します。画面右側に選択したリクエストの情報が表示されるので [回答] タブに表示された内容 (下記例のような内容) をコピーし、メモ帳などの任意のテキストエディタに貼り付けてメモしておきます。
--例--
{"value":["8:orgid:12345678-1234-1234-1234-123456789012"],"type":"System.Collections.Generic.List`1System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"}
------
※[名前] 列に "blocklist/" と表示されたリクエストが複数表示される場合には、最も新しいリクエスト (一覧上、下に表示されるリクエスト) を使用して以降の手順を実施してください。
9. [名前] 列に "blocklist/" と表示されたリクエストを選択して右クリックし、表示されたメニューから [コピー] > [PowerShell としてコピー] をクリックします。これにより、ブロックされたユーザーのリストを取得するための HTTP リクエストを送信する PowerShell コマンドがクリップボードにコピーされます。
10. 起動しておいた Windows PowerShell ISE の新規スクリプトの画面 (無題.ps1 など) に移動し、[Ctrl] + [V] を押下し、手順 9 でコピーした内容を貼り付けます。
11. Windows PowerShell ISE のツールバーの [スクリプトを実行] のアイコン (緑色の三角のアイコン) をクリックし、ブロックされたユーザーのリストを取得するための HTTP リクエストを送信する PowerShell コマンドを実行します。(このタイミングではまだ変更は行われません)
12. PowerShell コマンドの実行後、Windows PowerShell ISE の画面下側のコンソールウィンドウにコマンドの実行結果が表示されるので、次のような内容が表示されることを確認します。
===========
StatusCode : 200
StatusDescription : OK
Content : 「{"value":["8:orgid:・・・」で始まる内容 (手順 7 で確認したものと同じ内容) ※途中までしか表示されていなくても問題ありません
===========
※もし上記のような結果が表示されるエラーが発生する場合には、手順 6 からやり直してみてください。
13. Windows PowerShell ISE のスクリプト ウィンドウで、PowerShell コマンドを修正します。
※ブロックされたユーザーのリストを取得するための HTTP リクエストを送信する PowerShell コマンドを修正し、ブロックされたユーザーの解除を行うための HTTP リクエストを送信する PowerShell コマンドに書き換えます。
※以下に説明する以外の内容については手を加えないでください。
※以下の説明で目安として修正対象の行番号を記載しますが、環境・状況によっては行番号は多少前後するため、あくまで対象行を探す際の目安として参照してください。
13-1. 26 行目あたりの 「Invoke-WebRequest"・・・」で始まる行で、Uri の末尾の「blocklist/」を「blocklist/manage」に変更します。
修正前: Invoke-WebRequest -UseBasicParsing -Uri https://teams.microsoft.com/api/mt/part/{Region}/beta/userSettings/blocklist/ `
修正後: Invoke-WebRequest -UseBasicParsing -Uri https://teams.microsoft.com/api/mt/part/{Region}/beta/userSettings/blocklist/manage `
※ {Region} の箇所は環境によって異なるので、Uri の末尾部分だけ変更してください。
13-2. 26 行目あたりの「Invoke-WebRequest」で始まる行の下に 1 行追加し、「-Method "POST" `」と記載します。
修正前: -
修正後: -Method "POST" `
13-3. 31 行目あたりの「"method"=・・・」で始まる行で、「GET」を「POST」に変更します。
修正前: "method"="GET"
修正後: "method"="POST"
13-4. 32 行目あたりの「"path"=・・・」で始まる行で、パスの末尾の「blocklist/」を「blocklist/manage」に変更します。
修正前: "path"="/api/mt/part/{Region}/beta/userSettings/blocklist/"
修正後: "path"="/api/mt/part/{Region}/beta/userSettings/blocklist/manage"
※ {Region} の箇所は環境によって異なるので、Uri の末尾部分だけ変更してください。
13-5. 51 行目あたりのコマンドの最終行の「}」の後ろに「`」と以下に記載する 2 行分の内容を追加します。
修正前: }
修正後: } `
-ContentType "application/json;charset=UTF-8" `
-Body "{`"remove`":[`"8:orgid:{InsertBlockedUserId}`"]}"
13-6. 手順 13-5 で追加した「-Body・・・」で始める行の {InsertBlockedUserId} の箇所を、手順 8 で確認して控えておいた orgid の値 (「8:orgid:」の後ろの 32 桁の ID) で置き換えます。
(例)手順 8 で控えておいた内容が次の場合: {"value":["8:orgid:12345678-1234-1234-1234-123456789012"],"type":"System.Collections.Generic.List`1System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"}
修正前: -Body "{`"remove`":[`"8:orgid:{InsertBlockedUserId}`"]}"
修正後: -Body "{`"remove`":[`"8:orgid:12345678-1234-1234-1234-123456789012`"]}"
14. PowerShell コマンドの修正が完了後、Windows PowerShell ISE のツールバーの [スクリプトを実行] のアイコン (緑色の三角のアイコン) をクリックし、ブロックされたユーザーの解除を行うための HTTP リクエストを送信する PowerShell コマンドを実行します。
PowerShell コマンドの実行後、Windows PowerShell ISE の画面下側のコンソールウィンドウにコマンドの実行結果が表示されるので、次のような内容が表示されることを確認します。
===========
StatusCode : 202
StatusDescription : Accepted
===========
15. Microsoft Teams の画面に戻り、設定画面を一度閉じます。
16. Microsoft Teams の画面右上のプロファイル画像の横にある [...] (設定など) > [設定] をクリックして再度設定画面を開き、[プライバシー] > [ブロックした連絡先を編集] をクリックし [ブロックしたユーザーの管理] の画面でブロックされていたユーザーが表示されなくなったこと (ブロックが解除されたこと) を確認します。
なお、Google Chromeから実施することもできますので以下にご紹介したいと思います。
Google Chrome での手順
1. Windows PowerShell ISE を起動します。(後の手順で使用するので、起動を確認後、次の手順に進んでください)
2. Google Chrome を起動し、Microsoft Teams (https://teams.microsoft.com ) を開きます。
3. Microsoft Teams 内のプロファイル画像の横にある [...] (設定など) > [設定] をクリックし設定画面を開きます。
4. Google Chrome のタブで Microsoft Teams の上記設定画面が表示されている状態で、F12 キーを押下し、DevTools を起動します。
※確認メッセージが表示された場合は [DevTools を開く] をクリックして、DevTools を開いてください。
5. DevTools の画面で [ネットワーク] セクションをクリックして表示し、ネットワークログの記録がオンになっている (ネットワークタブのツールバーの右端の赤色のアイコン (赤丸の中に■のアイコン) が表示されている) ことを確認します。
6. Microsoft Teams の設定画面で [プライバシー] > [ブロックした連絡先を編集] をクリックし、[ブロックしたユーザーの管理] の画面にブロックされているユーザーが表示されることを確認します
7. DevTools の画面に戻り、ネットワーク セクションの [フィルター] 欄に "blocklist" と入力し、画面下部に表示されているリクエストをフィルタリングします。
8. フィルタリング後、[Name] 列に "blocklist/" と表示されたリクエスト (※) が表示されるので、該当のリクエストをクリックして選択します。画面右側に選択したリクエストの情報が表示されるので [Response] タブに表示された内容 (下記例のような内容) をコピーし、メモ帳などの任意のテキストエディタに貼り付けてメモしておきます。
--例--
{"value":["8:orgid:12345678-1234-1234-1234-123456789012"],"type":"System.Collections.Generic.List`1System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"}
------
※[Name] 列に "blocklist/" と表示されたリクエストが複数表示される場合には、最も新しいリクエスト (一覧上、下に表示されるリクエスト) を使用して以降の手順を実施してください。
9. [Name] 列に "blocklist/" と表示されたリクエストを選択して右クリックし、表示されたメニューから [Copy] > [Copy as PowerShell ] をクリックします。これにより、ブロックされたユーザーのリストを取得するための HTTP リクエストを送信する PowerShell コマンドがクリップボードにコピーされます。
10. 起動しておいた Windows PowerShell ISE の新規スクリプトの画面 (無題.ps1 など) に移動し、[Ctrl] + [V] を押下し、手順 9 でコピーした内容を貼り付けます。
11. Windows PowerShell ISE のツールバーの [スクリプトを実行] のアイコン (緑色の三角のアイコン) をクリックし、ブロックされたユーザーのリストを取得するための HTTP リクエストを送信する PowerShell コマンドを実行します。(このタイミングではまだ変更は行われません)
12. PowerShell コマンドの実行後、Windows PowerShell ISE の画面下側のコンソールウィンドウにコマンドの実行結果が表示されるので、次のような内容が表示されることを確認します。
===========
StatusCode : 200
StatusDescription : OK
Content : 「{"value":["8:orgid:・・・」で始まる内容 (手順 7 で確認したものと同じ内容) ※途中までしか表示されていなくても問題ありません
===========
※もし上記のような結果が表示されるエラーが発生する場合には、手順 6 からやり直してみてください。
13. Windows PowerShell ISE のスクリプト ウィンドウで、PowerShell コマンドを修正します。
※ブロックされたユーザーのリストを取得するための HTTP リクエストを送信する PowerShell コマンドを修正し、ブロックされたユーザーの解除を行うための HTTP リクエストを送信する PowerShell コマンドに書き換えます。
※以下に説明する以外の内容については手を加えないでください。
※以下の説明で目安として修正対象の行番号を記載しますが、環境・状況によっては行番号は多少前後するため、あくまで対象行を探す際の目安として参照してください。
13-1. 26 行目あたりの 「Invoke-WebRequest"・・・」で始まる行で、Uri の末尾の「blocklist/」を「blocklist/manage」に変更します。
修正前: Invoke-WebRequest -UseBasicParsing -Uri https://teams.microsoft.com/api/mt/part/{Region}/beta/userSettings/blocklist/ `
修正後: Invoke-WebRequest -UseBasicParsing -Uri https://teams.microsoft.com/api/mt/part/{Region}/beta/userSettings/blocklist/manage `
※ {Region} の箇所は環境によって異なるので、Uri の末尾部分だけ変更してください。
13-2. 26 行目あたりの「Invoke-WebRequest」で始まる行の下に 1 行追加し、「-Method "POST" `」と記載します。
修正前: -
修正後: -Method "POST" `
13-3. 31 行目あたりの「"method"=・・・」で始まる行で、「GET」を「POST」に変更します。
修正前: "method"="GET"
修正後: "method"="POST"
13-4. 32 行目あたりの「"path"=・・・」で始まる行で、パスの末尾の「blocklist/」を「blocklist/manage」に変更します。
修正前: "path"="/api/mt/part/{Region}/beta/userSettings/blocklist/"
修正後: "path"="/api/mt/part/{Region}/beta/userSettings/blocklist/manage"
※ {Region} の箇所は環境によって異なるので、Uri の末尾部分だけ変更してください。
13-5. 51 行目あたりのコマンドの最終行の「}」の後ろに「`」と以下に記載する 2 行分の内容を追加します。
修正前: }
修正後: } `
-ContentType "application/json;charset=UTF-8" `
-Body "{`"remove`":[`"8:orgid:{InsertBlockedUserId}`"]}"
13-6. 手順 13-5 で追加した「-Body・・・」で始める行の {InsertBlockedUserId} の箇所を、手順 8 で確認して控えておいた orgid の値 (「8:orgid:」の後ろの 32 桁の ID) で置き換えます。
(例)手順 8 で控えておいた内容が次の場合: {"value":["8:orgid:12345678-1234-1234-1234-123456789012"],"type":"System.Collections.Generic.List`1System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"}
修正前: -Body "{`"remove`":[`"8:orgid:{InsertBlockedUserId}`"]}"
修正後: -Body "{`"remove`":[`"8:orgid:12345678-1234-1234-1234-123456789012`"]}"
14. PowerShell コマンドの修正が完了後、Windows PowerShell ISE のツールバーの [スクリプトを実行] のアイコン (緑色の三角のアイコン) をクリックし、ブロックされたユーザーの解除を行うための HTTP リクエストを送信する PowerShell コマンドを実行します。
PowerShell コマンドの実行後、Windows PowerShell ISE の画面下側のコンソールウィンドウにコマンドの実行結果が表示されるので、次のような内容が表示されることを確認します。
===========
StatusCode : 202
StatusDescription : Accepted
===========
15. Microsoft Teams の画面に戻り、設定画面を一度閉じます。
16. Microsoft Teams の画面右上のプロファイル画像の横にある [...] (設定など) > [設定] をクリックして再度設定画面を開き、[プライバシー] > [ブロックした連絡先を編集] をクリックし [ブロックしたユーザーの管理] の画面でブロックされていたユーザーが表示されなくなったこと (ブロックが解除されたこと) を確認します。