Powershellでリスト一覧を取得する(SPO)

SharePoint

前回はPowershellでSharePoint Online を操作するための準備について紹介しました。今回はSharePoint Onlineのリスト一覧を取得してみようというお話です。

$Context.Web.lists

前回動作確認で$Contextというオブジェクトを作成していましたが、その中にリストの情報も詰まっています。

リスト一覧の場合、$Context の中の Web情報 の中の lists を取得してやります。イメージとしては↓の図のような感じ。

んでそれが $Context.Web.lists という書き方で参照できるという訳ですね。

そしてそれはリストの一覧、つまり全てのリスト情報が入っていますので、ループ処理などを用いて1リストずつ見ていってやるということをよくやります。

foreach($objList in $Context.Web.lists)
{
    Write-Host "リスト名 : " $objList.Title
}

foreach で1リスト分ずつ見ていって、$objList.Title でリストのタイトル部分を参照しています。

メモ$objListがどんな要素を持っているかはインテリセンス(?)だかで確認できます。ピリオドまで打つと候補が表示されますので、使いたいものを選択しませう。

サンプル

コード

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null

#接続情報等
$SiteUrl = "https://tenant.sharepoint.com/testsite" 
$Account = "administrator@tenant.onmicrosoft.com" 
$Password = Read-Host -Prompt "Enter Password." -AsSecureString

# Credential作成
$Credential = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Account, $Password) 

# Context作成
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Context.Credentials = $Credential

$Context.Load($Context.Web.lists) 
$Context.ExecuteQuery()

foreach($objList in $Context.Web.lists)
{
    Write-Host "リスト名 : " $objList.Title
}
# 後始末
$Context.Dispose()

 実行結果

コメント

タイトルとURLをコピーしました