これは、PowerShell Advent Calendar 2014 18日目の記事です。
SharePoint でリストなどの情報を、PowerShell から利用するためには、Client Side Object Model (CSOM) を利用する必要があり、以下の二つをインストールする必要があります。
Windows Management Framework 3.0
http://www.microsoft.com/en-us/download/details.aspx?id=34595
SharePoint Server 2013 Client Components SDK
http://www.microsoft.com/en-us/download/details.aspx?id=35585
CSOM を使って、
● 接続
● サイトのタイトルとURLの取得
● SiteCheckリストのタイトル取得
までは、以下のようになります。
# Client Side Object Model の読み込み Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" $WebUrl = 'https://テナント名.sharepoint.com/' $loginUser = "hoge@テナント名.onmicrosoft.com " $Password = "パスワード" $securePassword = ConvertTo-SecureString $Password -AsPlainText -Force # コンテキストを作成 $Context =New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl) $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($loginUser, $securePassword) $Context.Credentials = $credentials if (!$Context.ServerObjectIsNull.Value) { Write-Host $WebUrl " に接続完了" -ForegroundColor Green } $web = $Context.Web $Context.Load($web) $Context.ExecuteQuery() Write-Host $web.title Write-Host $web.Url # SiteCheck というリストの内容を抽出 $listName = "SiteCheck" $list = $web.Lists.GetByTitle($listName) $Context.Load($list) $Context.ExecuteQuery() Write-Host $list.Title Write-Host $list.Description $query = New-Object Microsoft.SharePoint.Client.CamlQuery $query.ViewXml = "" $listItems = $list.getItems($query) $Context.Load($listItems) $Context.ExecuteQuery() $query.ListItemCollectionPosition = $listItems.ListItemCollectionPosition foreach($item in $listItems) { Write-Host $item["Title"] }