【PowerShell】PnP PowerShell を利用して SharePoint リストを操作しよう①

Power Platform の活用を推進する中で、オンプレミスデータをクラウド(SharePointリストなど)と連携させたいという要件は多いのではないでしょうか。
Microsoft 社が提供する、オンプレミスデータソースと Microsoft クラウドサービスのブリッジとして機能するオンプレミスデータゲートウェイの利用が推奨されていますが、ポリシー上の理由でゲートウェイが構築できない場合やプログラムからデータを操作したい場合、他の構成を考える必要があります。
本ブログでは、手法の一つとして、社内PCまたはサーバから PowerShell コマンドを実行して SharePoint リストのデータを読み書きする方法について掲載します。
オンプレミスデータゲートウェイに関する記事もありますので、興味がある方はご覧ください。

こんにちは。システムソリューション営業本部の吾妻です。 ソースコードを書くことなくアプリ開発でき...
はじめに
本ブログは、PowerShell コマンドを実行して SharePoint リストのデータを読み書きする方法について、以下の3回に分けて掲載します。連載 | 概要 | 記載内容 |
第1回 | PowerShell モジュールの概要と 利用環境の構築手順について |
PowerShell と PnP PwerShell モジュールの インストール方法 |
第2回 | SharePoint Online と PnP PowerShell の連携 |
Microsoft Entra ID アプリケーション登録と サインイン用の電子証明書作成 |
第3回 | PowerShell コマンドによる スクリプトの実行 |
PnP PowerShell モジュールを利用した スクリプトの作成・実行 |
今回は第1回として、PowerShell モジュールの概要と利用環境の構築手順をご紹介します。
PnP PowerShell について
PnP PowerShell とは
PnP PowerShell とは、PowerShell モジュールの一つであり、SharePoint Online や Microsoft Teams、Azure Active Directory などのMicrosoft 365 環境で動作するコマンドレットを提供します。
この PnP PowerShell は、Microsoft 社が提供しているモジュールではなく、オープンソースのコミュニティが提供するモジュールとなります。
本記事は PnP PowerShell オープンソース ドキュメント の情報を引用しているため、最新情報は ここ を参照してください。
SharePoint Online Management Shell との違い
SharePoint Online Management Shell も SharePoint Online の操作が可能な PowerShell コマンドレットを提供しています。
こちらのモジュールは SharePoint 管理センターレベルの設定を PowerShell から操作できるようにしたモジュールであり、管理者・一般ユーザーの追加やサイトコレクションの管理などが行えますが、サイトごとのコンテンツを管理することはできません。
一方、PnP PowerShell はテナント・サイトやリストの設定、権限の付与に加え、 サイトごとのコンテンツ管理など SharePoint の高度な管理が可能です。
また、直感的なコマンドレットが多く用意されているため、少ないコード量で詳細にSharePointの管理を行えます。
PnP PowerShell の利用環境構築
PowerShell のインストール
PowerShellは Windows、Linux、Mac などで利用可能です。
PnP PowerShell を使用するには PowerShell 7.4.4 以降が必要であるため、インストールするバージョンにはご留意ください。
今回は Windows環境に標準搭載されている「Windows PowerShell」を実行し、winget コマンドから最新バージョンの PowerShell をインストールします。
wingetコマンドラインツールはWindows 11または最新バージョンのWindows 10のアプリインストーラーに含まれています。
wingetツールが導入されていない場合は、ここ からインストールしてください。
最新バージョンの PowerShell の検索
PowerShellコマンド winget search Microsoft.PowerShell

最新バージョンの PowerShell をインストール
PowerShellコマンド
winget install --id Microsoft.PowerShell --source winget

PowerShell のバージョンを確認する
先ほどインストールした Powershell 7 を起動し、以下のコマンドを実行します。
PowerShellコマンド
$PSVersionTable

表示される PSVersion が 7.4.4 以降であればOKです。
PnP PowerShell のインストール
PnP PowerShell モジュールのインストール
Powershell 7 を起動し、PnP PowerShellモジュールをインストールします。
PowerShellコマンド
Install-Module PnP.PowerShell -Scope CurrentUser -Force
※補足
過去に PnP PowerShell をインストールしている場合は、以下コマンドでモジュールの更新をしてください
PowerShellコマンド
Update-Module -Name PnP.PowerShell -Scope CurrentUser
PnP PowerShell モジュールのバージョンを確認する
PowerShellコマンド
(Get-InstalledModule -Name PnP.PowerShell -AllVersions).Version
まとめ
今回は、PnP PowerShell の概要と利用環境の構築までをご紹介しました。
次回は SharePoint Online と PnP PowerShell を接続するまでの手順をご紹介します。
QES では Power Platform の開発支援、QAサポート、開発者教育、ガバナンス整備など、組織で Power Platform を活用するためのサポートを包括的にご提供しています。Power Platform 活用についてご興味がある/利用中だが課題を感じていらっしゃるお客様はまずはお気軽にお問い合わせください。
このブログで参照されている、Microsoft、Windows、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。