SharePoint Listsの作成や展開、手作業だと面倒ですよね。
PowerShellとPnP.PowerShellを使えば、これらの作業を自動化できます!
この記事では、環境構築からコマンドの実行まで、丁寧に手順を解説します。
初心者の方も、ぜひチャレンジしてみてください。
PowerShell 環境構築の概要
本記事では、大きく3ステップでPowerShellからSharePoints Listsを作成するための環境構築を紹介します。それぞれのステップで何をしているのか?をここでは簡単に説明します。
- PowerShellを開く
PCでPowerShellを開きます。 - PowerShell 7をインストールする
PowerShellのバージョンを確認します。
バージョンは7以降でないと、PnP.PowerShellの最新バージョンが利用できません。
対象バージョンでない場合、PowerShell 7をインストールします。 - PnP.PowerShellをインストールする
PowerShell 7に、PnP.PowerShellモジュールをインストールします。
PnP.PowerShellがインストールされていることを確認します。
最後に、簡単なサンプルコードを利用して、SharePointのサイトにListsを追加してみます。
※OSは、Windows11を前提として進めます。
※Macをご利用の場合、本記事手順では設定できない可能性がありますこと、ご了承ください。
実際に環境構築してみよう
それでは、ここから3ステップでPowerShellの環境構築を進めます。
PowerShellを開く
1-1.デスクトップ画面下の[ウィンドウ]アイコンをクリックし、[PowerShell]と検索して表示される「Windows PowerShell」の[管理者として実行する]をクリックします。
※以降「PowerShellを開く」と記載した場合は、この手順を実施してください。
1-2.ユーザーアカウント制御の画面が表示される場合は、[はい]をクリックします。
1-3.Windows PowerShellのターミナル画面が表示されます。
PowerShell 7をインストールする
2-1.PowerShellのバージョンを確認します。PowerShellのターミナル画面に以下のコマンドを入力し、[Enter]キーを押下します。
$PSVersionTable
出力される結果を確認します。
下画像のように、PSVersionが7より小さい数字の場合は、PowerShell 7をインストールする必要があります。次の手順に進みます。(すでにPSVersionが7以降の場合は、次の章へ進みます。)
2-2.PowerShellのターミナル画面に以下のコマンドを入力し、[Enter]キーを押下します。
※最新のPowerShellバージョンを検索します。
winget search Microsoft.PowerShell
[すべてのソース契約条件に同意しますか?]という旨のメッセージが表示されるので、[Y]を入力し、[Enter]キーを押下します。
最新のPowerShellバージョンが表示されます。内容を確認し、次の手順に進みます。
2-3.PowerShellのターミナル画面に以下のコマンドを入力し、[Enter]キーを押下します。
※検索で表示された最新のPowerShellバージョン(1行目モジュール)をインストールします。
winget install --id Microsoft.Powershell --source winget
しばらく、インストール進捗バーが表示され、[インストールが完了しました]という旨のメッセージが表示されます。
2-4.PowerShellのターミナル画面に以下のコマンドを入力し、[Enter]キーを押下します。
※検索で表示された最新のPowerShellバージョン(2行目モジュール)をインストールします。
winget install --id Microsoft.Powershell.Preview --source winget
しばらく、インストール進捗バーが表示され、[インストールが完了しました]という旨のメッセージが表示されます。
2-5.デスクトップ画面下の[ウィンドウ]アイコンをクリックし、[PowerShell]と検索して表示される「PowerShell 7(x64)」の[タスクバーにピン留めする]をクリックします。
※以降「PowerShellを開く」と記載した場合は、「PowerShell 7(x64)」を起動してください。
PnP.PowerShellをインストールする
3-1.PowerShell 7にPnP.PowerShellをインストールします。PowerShell 7のターミナル画面に以下のコマンドを入力し、[Enter]キーを押下します。
Install-Module PnP.PowerShell -force
特に、インストール進捗画面などは表示されずに、処理が終了します。
3-2.PowerShell 7にPnP.PowerShellがインストールされたことを確認します。PowerShell 7のターミナル画面に以下のコマンドを入力し、[Enter]キーを押下します。
Get-Command -Module PnP.PowerShell
下画面のように、様々なコマンドが表示されることを確認できれば、問題なくインストールされています。
ここから、実際にSharePoint Listsへサンプル用のリストをコマンドで作成します!
3-3.テキストエディタ(メモ帳など)を開き、以下のコードを貼り付けます。
#PnP PowerShellモジュールのインポート
Import-Module -Name PnP.PowerShell
# 接続先サイトURLと認証情報
$siteUrl = "https://{サイトドメイン}/sites/{サイト名}"
$credentials = Get-Credential
# SharePoint Online に接続(MFA認証が無効の場合)
#Connect-PnPOnline -Url $siteUrl -Credentials $credentials
# SharePoint Online に接続(MFA認証が有効の場合)
Connect-PnPOnline -Url $siteUrl -UseWebLogin
#リスト作成
$Title = "SAMPLEリスト"
$InternalName="SampleLists"
New-PnPList -url $InternalName -Title $Title -Template GenericList
#リストへ列を追加
#文字列型を追加
Add-PnPField -List $InternalName -DisplayName "社員番号" -InternalName "uid" -Type Text -AddToDefaultView
# 数値型のフィールドを追加
Add-PnPField -List $InternalName -DisplayName "価格" -InternalName "Price" -Type Number -AddToDefaultView
# 日付と時刻型のフィールドを追加
Add-PnPField -List $InternalName -DisplayName "登録日" -InternalName "RegistrationDate" -Type DateTime -AddToDefaultView
# 選択肢型のフィールドを追加 (選択肢は "赤", "青", "緑")
Add-PnPField -List $InternalName -DisplayName "色" -InternalName "Color" -Type Choice -Choices "赤", "青", "緑" -AddToDefaultView
# ユーザー型のフィールドを追加 (複数選択可)
Add-PnPField -List $InternalName -DisplayName "担当者" -InternalName "PersonInCharge" -Type User -AddToDefaultView
#デフォルト列の内容を変更
Set-PnPField -List $InternalName -Identity "Title" -Values @{"Title"="社員名"; "Indexed"=$true}
Set-PnPField -List $InternalName -Identity "uid" -Values @{"Title"="コード"; "Indexed"=$true}
Set-PnPField -List $InternalName -Identity "Modified" -Values @{ "Indexed"=$true}
#リストへの添付ファイルを無効にする
Set-PnPList -Identity $InternalName -EnableAttachments $false
#リストに新しいビューを作成
Add-PnPView -List $InternalName -Title "社員表" -Fields "uid","Title" -SetAsDefault -Query "<OrderBy><FieldRef Name='uid' Ascending='true'/></OrderBy>" -Paged
#コンソールにメッセージを表示
Write-Host $Title を追加
下画面の赤枠箇所は、ご自身で用意したSharePointサイトのURLに変更してください。
【補足】SharePointサイトのURL確認方法
接続先にするSharePointサイトを開き、左メニューの[ホーム]をクリックします。
このときURLバーに表示されているURLがSharePointサイトのURLです。
3-4.[ファイル]>[名前を付けて保存]の順にクリックします。任意の階層へ保存します。
文字コードは[UTF-8(BOM付き)]を指定してください。
3-5.保存したtxtファイルの拡張子を[ps1]に変更します。
3-6.作成したps1ファイルを実行します。PowerShell 7のターミナル画面に以下のコマンドを入力し、[Enter]キーを押下します。
※<スクリプトファイルのパス>には、ps1ファイルの格納先パスに変更してください。
pwsh -ExecutionPolicy RemoteSigned -File <スクリプトファイルのパス>
ps1ファイルを実行すると、[ユーザー]と[パスワード]を入力する旨のメッセージが表示されます。
SharePointサイトへの管理権限をもっているMicrosoftアカウントのIDとパスワードを入力後、[Enter]キーを押下します。
Microsoftのサインイン画面が表示された場合は、SharePointサイトへの管理権限をもっているMicrosoftアカウントの認証をします。
コマンドが実行され、エラーなく処理が完了したことを確認します。
3-7.接続先のSharePointサイトでサンプルリストが作成されたことを確認します。
SharePointサイトの左メニューから[サイト コンテンツ]をクリックします。
画面中央の一覧に「SAMPLEリスト」が表示されていれば、コマンド成功です。
念のため、「SAMPLEリスト」をクリックして、リスト画面に遷移します。
コマンドで作成した列が表示されていることを確認します。
おつかれさまでした!以上でPowerShellの環境構築がすべて完了しました。
PnP.PowerShellは、SharePoint Listsの作成以外にも、いろいろコマンドがあるので試してみてください。当ブログでは、ITに関わるTipsやガジェットのレビュー、資格受験記などを掲載してます。他にご興味のある記事がありましたら、ご一読いただけますと幸いです!
コメント