📋

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

に公開

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