kazuakix の日記

Windows Phone とか好きです

SharePoint Online で外部ユーザーの招待がうまくいかないときの対応

SharePoint で外部ユーザーを招待したときに承諾を失敗した (Microsoft アカウントで承諾された?) 等でうまく招待できない事があります。*1
 
SharePoint 管理センターや AzureAD でユーザーを消してみたりもしますが、うまくいきません...というか招待し直しもできなくなったり、招待できても消したはずのプロファイルが再利用されているような不思議な状態になってしまいました。

f:id:kazuakix:20150607181438j:plain,w500
 
GUI でダメなときは PowerShell...という訳で、SharePoint Online Management Shell を使って中身を確認していきます。
 
まずはログイン。

PS C:\> $credential = Get-Credential
PS C:\> Connect-SPOService -Url https://XXXXX-admin.sharepoint.com -Credential $credential 

XXXXX は自分のテナント名に読み替えてください。

Get-SPOUser で有効なユーザーの一覧を表示してみます。

PS C:\> Get-SPOUser -Site https://tauchidev.sharepoint.com/teams/odecon | FT -a

Display Name                       Login Name
------------                       ----------
**** *****                         *****_live.jp#ext#@********.jp
******\******************          ******\******************
システム アカウント                SHAREPOINT\system
すべてのユーザー                   true
** **                          *******@******.net
外部ユーザー以外のすべてのユーザー spo-grid-all-users/379f7c96-a777-41fb-a4e...
** **                          *******_******.net#ext#@*********.onmicro...
** **                          *******@********.jp
** **                          **********_*********.onmicrosoft.com#ext#...
** **                          *****_****.onmicrosoft.com#ext#@********.jp

この時点で SharePoint 管理センターでは見えなかったユーザーが表示されています。
管理センターって一体...。
 
問題のあるユーザーの Login Name を指定して Remove-SPOUser で消してみます。

PS C:\> Remove-SPOUser -Site https://XXXXX.sharepoint.com/teams/XXXXX -LoginName *****_live.jp#ext#@********.jp
PS C:\> Remove-SPOUser -Site https://tauchidev.sharepoint.com/teams/odecon -LoginName *******@******.net

 
ただ、こちらを消しても一部外部ユーザーのプロファイルは残ったままでした。
Get-SPOExternalUser で確認するとこちらにも消したはずのユーザーが残っています。

PS C:\> Get-SPOExternalUser -Position 0 -PageSize 5

Email       : *****@*****.onmicrosoft.com
DisplayName : ** **
UniqueId    : 10037FFE90F32E11
AcceptedAs  : *****@*****.onmicrosoft.com
WhenCreated : 2015/06/05 8:36:24
InvitedBy   :

Email       : *******@******.net
DisplayName : ** **
UniqueId    : 1003000085151EB2
AcceptedAs  : *******@*****.net
WhenCreated : 2015/02/01 9:21:05
InvitedBy   :

Email       : **@***.net
DisplayName : ** **
UniqueId    : 1003000090F6A64B
AcceptedAs  : ****@*****.onmicrosoft.com
WhenCreated : 2015/06/05 14:27:00
InvitedBy   :

今回は真ん中のユーザーが不要だったので Remove-SPOExternalUser に UniqueId を指定して削除しました。

PS C:\> Remove-SPOExternalUser -UniqueIDs 1003000085151EB2

確認
この操作を実行しますか?
対象 "UniqueIDs" に対して操作 "Remove external users." を実行しています。
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)
[?] ヘルプ(既定値は "Y"): y
Successfully removed the following external users
1003000085151EB2

 
これで完全に削除することができました。あらためて招待しなおして正しいアカウントで承諾してもらいましょう。

*1:むしろちゃんと Office 365 ID で応じてきたのはひとりだけという状態...