招待された外部ユーザーを確認する/SharePoint Online の新コマンドレット「Get-SPOExternalUser」
SharePoint 2010、そして最新の SharePoint 2013 は、PowerShell によるリモート操作に対応している。これは一定以上の規模がある環境を管理/運用する上で必須と言える機能だが、残念ながら Office 365 のチームサイトではこれまでサポートされなかった。しかし、最近の Office 356 のアップデートに伴い「SharePoint Online 管理シェル」がリリースさた。これにより、限定的ではあるものの、一部の管理タスクを PowerShell 経由で行うことが可能になった。
SharePoint Online Management Shell
http://www.microsoft.com/ja-jp/download/details.aspx?id=35588
このシェルをPCにインストールし、PowerShell 上で
Import-Module Microsoft.Online.SharePoint.PowerShell を実行する。
これで、SharePoint Online 専用のコマンドレットが使用可能になる。
コマンドを実行する前に、当然ながら SharePoint Online に接続しなければならない。Connect-SPOService で接続する。SharePoint Onilne 管理センターの URL と、管理者のアカウントが必要だ。
例:
Connect-SPOService -Url https://contoso-admin.sharepoint.com -credential admin@contoso.com
実行すると、ダイアログでパスワードを求められる。
認証後、確認のためサイトコレクションの一覧を取得する Get-SPOSite を実行してみる。
その他のコマンドや導入に関する詳細は以下を参照のこと。
SharePoint Online 管理シェルの概要/コマンドレットのリファレンス
http://technet.microsoft.com/ja-jp/library/fp161388.aspx
SharePoint Online 管理シェル Windows PowerShell 環境を設定する
http://technet.microsoft.com/ja-jp/library/fp161372.aspx
さて、ここからが本題だ。SharePoint Online には「外部ユーザーの招待」という独自機能がある。これは、Microsoft ID(旧 Live ID)さえあれば、契約外のユーザーをチームサイトに招待できるもので、完全に無償だ。例えば、顧客との情報共有や、複数社を跨いだプロジェクトでの活用など、非常に有益だ。
もっとも、企業向け製品版(オンプレミス)には存在しない新機能だけにアラもある。最大の問題は、これまで管理者が、現在招待されている外部ユーザーを確認する方法がなかったことだ。これでは情報セキュリティ上の懸念が大きい。
だが、今回の新しい管理シェルには、この外部ユーザーを出力する Get-SPOExternalUser が含まれている。これを実行してみると、確かに live.jp である外部ユーザー「梟太郎」が確認できた。
招待している外部ユーザーがこの一人だけのためあまり意味が無いが、次のように書けば、結果をテキストファイルに出力することもできる。
Get-SPOExternalUser | Out-File -FilePath C:\PStext\report.txt -Encoding UTF8
Get-SPOExternalUser と対になるコマンド Remove-SPOExternalUser を使えば、このユーザーを削除する(招待を停止する)こともできる。この際 Get-SPOExternalUser で確認できる UniquId が必要になる。上の梟太郎氏であれば「10037FFE8220E458」だ。
ただ、この Get-SPOExternalUser コマンドだけでは、外部ユーザーが、どのサイトコレクションに招待されているかまでは判らない。実運用においては Get-SPOSite と、サイトコレクション指定でユーザーを抜き出す Get-SPOUser とを組み合わせて定期的にレポートを出力し、更には事前申請された招待ユーザーとの差異をチェックする、などの工夫が必要だろう。
なお、実用を考えると「現在招待されているユーザー」だけでなく「招待を送付しているがまだ応じていない(初回アクセスをしていない)ユーザー」も把握したいところなのだが、この情報をシステム的に取得することは、今のところ無理であるようだ。
また、最初の接続コマンドレット Connect-SPOService がパラメータとして「SharePoint Online 管理センターのURL」を要求することから気付いた方も居るかもしれないが、この管理シェルは Pプランでは利用できない(管理センターが存在しない)。これはとても残念な点だ。
参考:
Using PowerShell to Manage SharePoint 2013 Online
Windows PowerShell for SharePoint Command Builder