SharePoint 隠しリストの概要

SharePointには「隠しリスト」があります。SharePointリスト/ライブラリで、HiddenプロパティがONになっていると、すべてのサイトコンテンツには表示されません。「サイトのユーザーリスト」などのSharePointが内部で利用しているリストは削除されると困るので、このような仕様になっているようです。ワークフロー用に作成したタスクリスト、履歴リストなども削除の順序によっては、すべてのサイトコンテンツに表示されなくなったりします。そんな困ったリストを削除するためには、「PowerShellスクリプトでサイト内のリストを取得して削除しちゃえば・・・」っと開発者ならば考えてしまいますが、今回は別の方法を解説します。

おおまかな流れは、以下の通りです。
1) SQL Server Management Studioでリストを特定
2) SharePointユーザーインターフェイスで隠しリストを表示

SQL Server Management Studioでリストを特定

オンプレミス SharePointのコンテンツデータベースは、SQL Serverデータベースです。SQL Serverデータベースの管理ツール SQL Server Management Studioで、データベースの中身がみれます。SharePointのコンテンツデータベース(WSS_Content_*)の、AllListsテーブルにリストの設定が格納されています。

SharePoint 隠しリストの表示

AllListsテーブルには、tp_WebId列(リストがあるサイトのGUID)、tp_ID列(リストのGUID)、tp_Title列(リストのタイトル)などがあります。リストを一意に特定するのは「tp_ID列」です。「隠しリスト」は、tp_flags列の 0x0100ビットがONのリストです。tp_flags列は、削除不可、ファイル添付許可などのリスト設定がつまっているビットフラグの集合体です。探しているリストを、リスト名や 隠しリスト指定などから特定したら、そのリストのtp_ID列の値(例:d7f54ff0-3447-4943-82f3-d1bb34ca9389)を控えておいてください。

SharePointユーザーインターフェイスで隠しリストを表示

リストの設定画面は、SharePoint Hiveにあるアプリケーションページ _layouts/listedit.aspx です。listedit.aspxは Listパラメータに リストのGUIDを指定すると、そのリストの設定画面が開きます。書式は以下の通りです。
書式) http://Server/sites/Site/_layouts/listedit.aspx?List={GUID}

リストの設定画面が開く...のですが、先ほど説明した「tp_flags列の値」が削除不可になっているとリスト削除はできません。テーブルの値をパッチすれば、できるようになるのですが(^-^;
隠しリストにどんな列が定義されているか、どんな詳細設定になっているかは覗けます。


2018年の記事

2017年の記事


風水吉凶方位 風水吉凶方位 |  奇門遁甲 奇門遁甲 |  金運神社 金運神社 |  仏像 仏像 |  論語 論語 |  般若心経 般若心経 |  二十四節気 二十四節気 |  菜根譚 菜根譚 |  SharePoint活用 SharePoint |  OneNote活用 OneNote |  ICT活用 ICT