前回はリスト作成をやったので、今回はリストアイテムの作成についてやっていきます(∩´∀`)∩
事前準備
PowerShellのスクリプトを実行する際に必要なSDK等がありますので、その辺のインストール等がまだの方は↓の記事を参考に準備しておいてください(∩´∀`)∩
SharePoint Online Client Component SDK というヤツを使います。
リストの取得
接続等行った状態から説明していきます。その辺は記事末尾のサンプルコード内には書いておきますので、そちらも参考にしていただけたらと。
今回は前回作成した ほげほげ(hogehoge)というリストを対象にアイテム作成します。
で、まずはリストを取得します。
1 2 3 4 5 |
# リスト取得 $list = $Context.Web.Lists.GetByTitle("hogehoge") # リストIDが分かっている場合、GetByIdでもOK # $list = $Context.Web.Lists.GetById("IDの文字列") |
GetByTitle か GetByID でリストを取得します。タイトルを使う時は内部名でも表示名でもどちらでもOKです。
IDで取得する場合は下記記事の方法などを使うか、PowerShellでなんやかやするなどしてIDを取得しておきます。
オブジェクトの作成とか値の設定とか
1 2 3 4 5 6 7 8 |
# オブジェクト作成 $CInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation # 取得したリストにアイテム作成用のオブジェクトを突っ込む $item=$list.AddItem($CInfo) # タイトルを設定 タイトル以外も入れるならこの辺で $item["Title"]="テストアイテム2!" |
リストアイテム作成用のオブジェクトみたいなのを作ったり、リストアイテムの各値を設定したりとかします。
アイテムの値なんかは $item[] に内部列名指定して入れていきます。大文字小文字の区別があるので気を付けましょう。
更新その他
最後に更新やらロードやらえくせきゅーとやらしておきます。
1 2 3 4 5 6 7 8 9 10 11 |
# 更新 $item.Update() # コンテキストにロード $Context.Load($item) # 上記の更新を実行 $Context.ExecuteQuery() # 後始末 $Context.Dispose() |
ここまでの処理を実行すると↓のようにアイテムが作成されます。

まとめ
リストをデータベース代わりに使うような場合だとか、何かのマスタデータを登録するような場面で使えるかな~~と思います。
趣味で勉強とかして覚えたんですけども、実務でまだ使ったことなかったり。。(ノ∀`)
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null #接続情報等 $SiteUrl = "https://xxxxxx.sharepoint.com/testsite" $Account = " administrator@xxxxxx.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 # リスト取得 $list = $Context.Web.Lists.GetByTitle("hogehoge") # リストIDが分かっている場合、GetByIdでもOK # $list = $Context.Web.Lists.GetById("IDの文字列") # オブジェクト作成 $CInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation # 取得したリストにアイテム作成用のオブジェクトを突っ込む $item=$list.AddItem($CInfo) # タイトルを設定 タイトル以外も入れるならこの辺で $item["Title"]="テストアイテム!" # 更新 $item.Update() # コンテキストにロード $Context.Load($item) # 上記の更新を実行 $Context.ExecuteQuery() # 後始末 $Context.Dispose() |