読者です 読者をやめる 読者になる 読者になる

からめもぶろぐ。

ワタシ SharePoint チョット デキル

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

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

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

表示名は変更可能ですので、メンテナンスを考えると、表示名を指定するのは望ましくありません。そこで、内部名を指定して取得するために、SPList.GetList メソッドが使用できます。

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

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

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

SPWeb.GetList method (Microsoft.SharePoint)

(2016/02/17 追記) リスト名を取得する方法を修正しました。