こんにちは、SharePoint サポートの佐伯です。
今回の投稿では、PowerShell を使用してビューの基本的な操作を実施する方法についてご紹介します。
あまり PowerShell のご経験がない方にも分かりやすくするために、ここではシンプルなサンプルをご紹介していきます。目的の処理を実装する際にご参考になりましたら幸いです。
実装の際は MSDN の資料も合わせてご参照ください。
■ビューの作成
|
#サイトを取得します。 $web = Get-SPWeb <Web サイトの URL> #リストを取得します。 $list = $web.Lists["<リスト名>"] #ビューのコレクションを取得します。 $views = $list.Views #ビュー名を設定します。 $viewName = "<ビュー名>" #ビューに表示する列を設定します。 $viewFields = New-Object System.Collections.Specialized.StringCollection $viewFields.Add("<列の内部名>") $viewFields.Add("<列の内部名>") #クエリを設定します。 $query = '<CAML 文字列>' #表示するアイテム数を設定します。 $rowLimit = <アイテム数> #指定のアイテム数に制限して表示するかページングを行うかを設定します。 $paged = <True または False> #ビューを既定のビューにするかを設定します。 $defaultView = <True または False> #ビューを追加します。 $view = $views.Add($viewName, $viewFields, $query, $rowLimit, $paged, $defaultView) |
例) タイトル順にアイテムを表示するビューを追加する
$web = Get-SPWeb http://sharepoint/sites/team
$list = $web.Lists["ニュース"]
$views = $list.Views
$viewName = "タイトル順"
$viewFields = New-Object System.Collections.Specialized.StringCollection
$viewFields.Add("LinkTitle")
$viewFields.Add("Modified")
$query = '<OrderBy><FieldRef Name="LinkTitle" /></OrderBy>'
$rowLimit = 30
$paged = $true
$defaultView = $false
$view = $views.Add($viewName, $viewFields, $query, $rowLimit, $paged, $defaultView)
■ビューの取得
|
#サイトを取得します。 $web = Get-SPWeb <Web サイトの URL> #リストを取得します。 $list = $web.Lists["<リスト名>"] #ビューのコレクションを取得します。 $views = $list.Views #ビューを取得します。 $view = $views[<インデックス番号、ビュー名、またはビューの GUID>] #ビューのプロパティ値を取得します。 $view.<ビューのプロパティ> |
例) ビュー名を取得する
$web = Get-SPWeb http://sharepoint/sites/team
$list = $web.Lists["ニュース"]
$views = $list.Views
$view = $views[0]
$view.Title
例) ビューの GUID を取得する
$web = Get-SPWeb http://sharepoint/sites/team
$list= $web.Lists["ニュース"]
$views = $list.Views
$view = $views["すべてのアイテム"]
$view.ID
例) ビューのサイト相対 URL を取得する
$web = Get-SPWeb http://sharepoint/sites/team
$list = $web.Lists["ニュース"]
$views = $list.Views
$guid = [System.Guid]("51352a9b-f6af-47a1-9377-b63ebfb6e6c8")
$view = $views[$guid]
$view.Url
参考 : その他の <ビューのプロパティ> は下記の資料をご参照ください。
http://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.spview_properties(v=office.15).aspx
■ビューの編集
| #サイトを取得します。
$web = Get-SPWeb <Web サイトの URL> #リストを取得します。 $list = $web.Lists["<リスト名>"] #ビューのコレクションを取得します。 $views = $list.Views #ビューを取得します。 $view = $views[<インデックス番号、ビュー名、またはビューの GUID>] #ビューのプロパティに値を設定します。 $view.<ビューのプロパティ> = <変更後のプロパティ値> #ビューを更新します。 $view.Update() |
例) ビュー名を更新する
$web = Get-SPWeb http://sharepoint/sites/team
$list= $web.Lists["ニュース"]
$views = $list.Views
$view = $views["すべてのアイテム"]
$view.Title = "すべてのニュース"
$view.Update()
例) アイテム 20 毎にページングされるよう設定する
$web = Get-SPWeb http://sharepoint/sites/team
$list = $web.Lists["ニュース"]
$views = $list.Views
$view = $views["すべてのニュース"]
$view.Paged = $true
$view.RowLimit = 20
$view.Update()
参考 : その他の <ビューのプロパティ> は下記の資料をご参照ください。
http://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.spview_properties(v=office.15).aspx
■ビューの削除
| #サイトを取得します。
$web = Get-SPWeb <Web サイトの URL> #リストを取得します。 $list = $web.Lists["<リスト名>"] #ビューのコレクションを取得します。 $views = $list.Views #削除するビューの GUID を変数にセットします。 $guid = [System.Guid]("<GUID 文字列>") #ビューを削除します。 $views.Delete($guid) |
例) ビューを削除する
$web = Get-SPWeb http://sharepoint/sites/team
$list = $web.Lists["ニュース"]
$views = $list.Views
$guid = [System.Guid]("a8271a7d-14ba-4fb5-a068-66f75f67b9ee")
$views.Delete($guid)
- 補足
目的の処理を実施した後は、SPWeb.Dispose メソッドを使用して SPWeb オブジェクトを閉じ、リソースを解放します。
| $web.Dispose() |
例) 登録日の降順でアイテムを表示するビューを追加する
$web = Get-SPWeb http://sharepoint/sites/team
$list = $web.Lists["ニュース"]
$views = $list.Views
$viewName = "登録日(降順)"
$viewFields = New-Object System.Collections.Specialized.StringCollection
$viewFields.Add("LinkTitle")
$viewFields.Add("Created")
$viewFields.Add("Author")
$query = '<OrderBy><FieldRef Name="Created" Ascending="FALSE" /></OrderBy>'
$rowLimit = 30
$paged = $true
$defaultView = $false
$view = $views.Add($viewName, $viewFields, $query, $rowLimit, $paged, $defaultView)
$web.Dispose()




















