💻

SharePoint 2013 のリストに内部名でアクセスする

2022/01/01に公開

SharePoint 2013 のリストには内部名と表示名が存在します。SPListItemCollection オブジェクトのインデクサーからリストを取得するときは、表示名を指定しなければなりません。

$web = Get-SPWeb http://sharepoint.example.com
$list = $web.Lists["サイトのページ"]  # 取得できる
$list = $web.Lists["SitePages"]  # 取得できない

表示名は変更可能ですので、メンテナンスを考えると、表示名を指定するのは望ましくありません。そこで、内部名を指定して取得するために、SPList.GetList メソッドが使用できます。ちなみにカスタム リストのような場合は URL が /Lists/List1 のようになりますので、注意が必要です。

$web = Get-SPWeb http://sharepoint.example.com
$list = $web.GetList($web.ServerRelativeUrl.TrimEnd("/") + "/SitePages")  # 取得できる

なお、列の場合は、内部名と表示名のいずれでも取得できるようです。

$item = $list.Items[0]
$value = $item["Modified"] # 取得できる
$value = $item["更新日時"] # 取得できる

Discussion