SharePoint Online :外部ユーザーの亡霊を除霊する

変なタイトルにしてしまいました。
SharePoint のサイトコレクションに外部ユーザーを招待しようとしたところ、エラーで招待できないトラブルがありました。よくよく調べると、そのユーザーは過去に一度招待をしていて、その後利用しなくなったので削除したような形跡がありました。外部ユーザーの削除はただアクセス許可レベルの削除だったり、 SharePoint グループから削除するだけでは完全には削除できないようで、最終的に PowerShell を使う事になったので備忘録として残しておきます。

※以下、スクショはボカシ多めでスミマセン。

▼招待で外部ユーザーのアドレスを入力するとなぜかエントリーが一致したと(すでにおかしい)。ちなみに複数って書いてあるのに実際は1つだけ候補が出る。

▼エントリから選択すると、表示名に変わりました。はじめて外部招待をするユーザーの場合、この挙動はありえませんね。

▼招待しようとすると原因がよくわからない感じのエラー文章でエラーが

▼アクセス依頼ページを見ると、該当ユーザーは過去に招待され承諾していた事が判明

▼権限の確認をすると割り当てられたアクセス許可レベルはない

▼ SharePoint 管理センターのユーザープロファイルで調べても該当ユーザーは出てこない

スクショはありませんが、AzureADの方でも該当ユーザーは出てきません。このような状態でも亡霊として残っていて、つまり、この時点ですでにGUI上での調査・対応は手詰まりでした。

ここで、僕の苦手な PowerShell 登場させます。
(以下は PowerShell を知らない僕がやっているので間違っている可能性もあります。)

【1】まずは接続

$cred = Get-Credential Connect-SPOService -Url https://yoursite-admin.sharepoint.com -Credential $cred

【2】ユーザー一覧を表示

Get-SPOUser -Site https://yoursite.sharepoint.com/sites/hogehoge | FT –a

▼GUIでは出てこなかった亡霊が現れます。

【3】亡霊を除霊

Remove-SPOUser -Site https://yoursite.sharepoint.com/sites/hogehoge -LoginName hogehoge#ext#@yoursite.onmicrosoft.com

※ LoginName の[ hogehoge#ext#@yoursite.onmicrosoft.com ]は【2】で表示された Login Name に置き換え。

これで除霊完了です。

▼除霊した事により、外部ユーザーの招待をしようとすると、先程とは挙動が異なり、招待できます。

こんな事までしないといけないとは、まさしく亡霊ですね…。