###ドキュメントライブラリでまとめてフォルダやファイルをアップロードした後にカスタム列のデータを更新するPowerShell
テストデータの作成などで
#ロード
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
#ユーザーID
$User = "user@xxxxx.onmicrosoft.com"
#更新対象ドキュメントライブラリがあるサイトのURL
$SiteURL = "https://xxxxx.sharepoint.com/sites/xxx/"
#更新対象ライブラリの名称
$DocLibName = "test"
#パスワードを入力
$Password = Read-Host -Prompt "Please enter your password" -AsSecureString
#対象のサイトの読み込み
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password)
$Context.Credentials = $Creds
#対象のライブラリの読み込み
$List = $Context.Web.Lists.GetByTitle($DocLibName)
$Context.Load($List.RootFolder)
$Context.ExecuteQuery()
$camlQuery = new-object Microsoft.SharePoint.Client.CamlQuery
#再帰的に取得(フォルダ内部のデータも対象)
$camlQuery.ViewXml = "<View Scope='RecursiveAll'><Query><Where></Where></Query></View>"
$listItems = $list.GetItems($camlQuery)
$context.Load($listItems)
$context.ExecuteQuery()
#無条件に読み込み、存在するデータ分一律の値でUpdate
foreach($listItem in $listItems){
$listItem["customColumn"] = "test" #件名
$listItem["startDate"] = Get-Date -Format “yyyy/MM/dd” #開始予定日
$listItem["endDate"] = “2018/12/31” #終了予定日
$listItem.Update();
$Context.ExecuteQuery();
}