記事公開日
【PowerShell】PnP PowerShell を利用して SharePoint リストを操作しよう③

本ブログでは、社内PCまたはサーバから PowerShell コマンドを実行して SharePoint リストのデータを読み書きする方法について掲載します。
前回の記事では、SharePoint Online と PnP PowerShell を接続するまでの手順をご紹介しました。
まだご覧になっていない方は、以下のリンクからご確認ください。
はじめに
本ブログは、PowerShell コマンドを実行して SharePoint リストのデータを読み書きする方法について、以下の3回に分けて掲載します。連載 | 概要 | 記載内容 |
第1回 | PowerShell モジュールの概要と 利用環境の構築手順について |
PowerShell と PnP PwerShell モジュールの インストール方法 |
第2回 | SharePoint Online と PnP PowerShell の連携 |
Microsoft Entra ID アプリケーション登録と サインイン用の電子証明書作成 |
第3回 | PowerShell コマンドによる スクリプトの実行 |
PnP PowerShell モジュールを利用した スクリプトの作成・実行 |
今回は第3弾として、PnP PowerShell コマンドを用いて SharePointリスト を操作する方法をご紹介します。
事前準備
PowerShell を介した SharePoint Online への接続
まずは PowerShell (7.4以降) コマンドから SharePoint サイトに接続をします。
PowerShellコマンド
connect-PnPOnline サイトURL -Tenant テナント名 -ClientID アプリケーション(クライアント)ID -CertificatePath “格納した証明書のパス” -CertificatePassword (ConvertTo-SecureString -String 証明書パスワード -AsPlainText -Force)
サイトURL:アクセスするSharePointサイトのURL(例:https://example.sharepoint.com/sites/sitename)
テナント名:Microsoft Entra テナントに関連付けられている組織のプライマリドメイン名(プライマリドメイン名は こちらの方法 から確認できます)
アプリケーション(クライアント)ID:前段で登録したアプリのアプリケーション(クライアント)ID
格納した証明書のパス:前段で出力された電子証明書(pfxファイル)が格納されたパス
証明書パスワード:Register-PnPEntraIDAppコマンドで設定した証明書のパスワード
各パラメータの詳細は Connect-PnPOnline を参照してください。
コマンド実行後にエラー文が表示されなければ SharePoint サイトへの接続が成功しています。
以降に紹介するコマンドは、SharePoint サイト接続中にのみ実行ができます。
SharePoint リストの操作
リストのアイテムを取得
PowerShellコマンド
Get-PnPListItem -List リスト名 [-Id <Int32>]
リスト名:アイテムを取得したいリストの名前
取得したリストのアイテムが表示されます。
ID取得したリストの内、該当する「ID」のアイテムのみが表示されます。
他にもクエリに基づいて条件に合うアイテムを取得することができます。
詳細は Get-PnPListItem を参照してください。
リストにアイテムを追加
PowerShellコマンド
Add-PnPListItem -List リスト名 -Values @{ 列名=xxx; 列名=“yyy”}
リスト名:アイテムを追加したいリストの名前
列名:フィールドの内部名
追加したリストのアイテムが表示されます。
Get-PnPListItemコマンドより追加したアイテムがリストに反映されていることを確認できます。
他にもバッチ処理により複数のアイテムを追加することができます。
詳細は Add-PnPListItem を参照してください。
リストのアイテムを更新
PowerShellコマンド
Set-PnPListItem -List リスト名 -Identity ID -Values @{ 列名=xxx; 列名=“yyy”}
リスト名:アイテムを追加したいリストの名前
ID:SharePointリストのID列に設定されている値
列名:フィールドの内部名
更新したリストのアイテムが表示されます。
Get-PnPListItemコマンドより更新したアイテムがリストに反映されていることを確認できます。
他にもバッチ処理により複数のアイテムを更新することができます。
また、Get-PnPListItem と併せて使用することで、特定のアイテムのみ更新させることができます。
詳細は Set-PnPListItem を参照してください。
リストのアイテムを削除
PowerShellコマンド
Remove-PnPListItem -List リスト名 -Identity ID
リスト名:アイテムを追加したいリストの名前
ID:SharePointリストのID列に設定されている値
アイテムを削除するかの確認が行われ、[Yes]を選択すると削除処理が行われます。
Forceパラメータを指定すると削除確認の質問をスキップできます。
Get-PnPListItemコマンドより削除したアイテムがリストに反映されていることを確認できます。
他にもバッチ処理により複数のアイテムを削除することができます。
また、Get-PnPListItem と併せて使用することで、特定のアイテムのみ削除させることができます。
詳細は Remove-PnPListItem を参照してください。
SharePointリスト操作のスクリプト
前提条件
・ローカル環境に存在するcsvファイルのデータをSharePointリストと連携
・オンプレミスデータゲートウェイは利用不可
・Microsoft Entra 管理センターよりアプリの登録は利用可能
実装例
まとめ
今回は、SharePointリストを操作するコマンドと スクリプトの実装例についてご紹介しました。
本記事で紹介したスクリプトはリストを操作するコマンドを主に使用しておりますが、エラー処理やログの出力機能を追加することでプログラムの監視やデバックに役立てることができます。
また、PnP PowerShell には SharePointリストの操作以外にもMicrosoft 365製品のセットアップ、構成、保守に利用できます。
利用可能なコマンドレットについて、不明点があればご相談ください。
QES では Power Platform の開発支援、QAサポート、開発者教育、ガバナンス整備など、組織で Power Platform を活用するためのサポートを包括的にご提供しています。Power Platform 活用についてご興味がある/利用中だが課題を感じていらっしゃるお客様はまずはお気軽にお問い合わせください。
このブログで参照されている、Microsoft、Windows、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。