リスト/ライブラリに設定された権限をレポート Permission Reporting Tool

SharePintには「現在設定されている権限をレポートする機能」がありません。エンドユーザがSharePointに慣れ、権限設定を使いこなすようになると、システム管理者は遠からずこの問題に直面します。

すべてのオブジェクトで権限が継承されていれば問題ないのですが、一箇所でも継承が切られ、独自権限が設定されていると厄介です。それを設定した本人以外(ときには本人すらも)「どこが非継承の箇所なのか」が判らない。

「以前のライブラリ管理者が異動になるので、このライブラリのアクセス権を見直したい。ついては現在設定されているアクセス権を一覧で出してほしい」、このケースは対応困難です。

さて、前置きが長くなりましたが、Microsoftから提供されている SharePoint Administration Toolkit に含まれる Permission Reporting Tool を活用することで、この問題に対応できます。

まず、SharePoint Administration は以下からダウンロードできます。
SharePoint 2010 Administration Toolkit (SharePoint Server 2010)
SharePoint Administration Toolkit (Office SharePoint Server)

サーバ上でダウンロードしたexeを実行します。(以下、SharePoint2007環境で進めます)

必要な機能はPermission Reportingだけですが、ここではすべてインストールしています。

インストールされるロケーションです。次で必要になります。

インストールが完了しても、Permission Reporting機能は利用できません。実は、この機能はwsp(web solution Package)形式でインストールディレクトリ配下に置かれるだけですので、これをSharePointファームにソリューションとして追加→展開→有効化する必要があります。

まず追加です。stsadm -o – addsolution を実行します。

以下はstsadmコマンドでも可能ですが、ここではGUIから。サーバ構成の管理→ソリューション管理で[展開]します。次に、ファーム機能の管理で[アクティブ化]します。

ここで次のエラーになる場合、2009年6月CUの適用が必要です。このCUはSP2よりも新しいリリースのため(参考:SharePointのアップデート(CU)を時系列で確認)、SP2後にCUを適用していない環境では必須になります。

CUはこちらからダウンロードできます。
MOSS CU June 2009 CU
wss CU June 2009 CU

PermissionReporting.wspの導入が完了すると、サイト管理画面の「ユーザと権限」に項目が追加されます。このうち「Broken Inheritance Reports Jobs」を利用します。

クリックするとジョブ設定画面になります。このレポート機能はリアルタイムではなく、まずジョブを登録し、それがTimerJobで実行され、結果をXMLファイルとしてドキュメントライブラリに出力する仕様になっています。

サーバの全体管理でレポート用の専用ジョブが登録されていることを確認できます。

[create]をクリックして個別のジョブを設定します。項目は至ってシンプル。

scopeは対象となるサイトまたはリスト/ライブラリ、Report Locationが出力先(ライブラリしか選択できません)です。別ウィンドウのツリーから指定します。

ジョブを保存した直後。ステータスが「Scheduled」になっています。

しばらくたつと、Completedになります。

指定したドキュメントライブラリに、xmlファイルが出力されます。

このxmlファイルには権限の継承が切れた個所がすべてリストアップされていますが、あまりにも難解のため、そのままではエンドユーザには理解しにくいでしょう。そこで、Excelにこのxmlを読込ませることをお勧めします。

サンプル : permission.zip

上サンプルは、実際に出力されたxslと、それを読み込んだエクセルファイルです。なお、このレポートでは下位オブジェクトにおいて上位から削除された権限も「Removed」として記録されているため、実用には「Removed」をフィルタすると「実際に設定されている権限一覧」になります。

また、この説明では飛ばしましたが、オプションの「Expand SharePoint groups membership」「Expand role rights」をチェックしておくと、前者はSharePointグループに登録されているユーザ/組織の一覧、後者は権限レベル(ロール)に設定されている項目が、別のxmlにレポートされます。

参考:
Use the Permission Reporting Tool


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9