LoginSignup
3
0

【SharePoint】PnP.PowerShellだけでアプリの設定がどこまでできるか - ライブラリ編

Last updated at Posted at 2023-12-08

こんにちは!
M365(特にSharePoint,Power Automate,Power Apps,Teams)に関する記事やちょっとした小ネタなどをご紹介していきます。

はじめに

PnP.PowerShellコマンドのみを利用してリスト/ライブラリの作成・設定から、列、ビューの設定などをどこまで実装できるかを検証してみたシリーズの第2弾は、ドキュメント ライブラリの作成と設定となります。

※過去の記事は、末尾の「関連記事」のリンクからご覧ください。

検証環境

・Windows PowerShellバージョン:5.1
・PnP.PowerShellモジュール:1.12.0
・M365ライセンス:Office 365 E1

検証内容

<前提>
・SharePointサイトが作成済みであること(今回はモダンチームサイトを利用)
・PnP.PowerShellモジュールがインストール済みであること

PnP.PowerShellモジュールのインストール、サイトへの接続方法は、以下のサイトを参照ください。
SharePoint サイトのデザイン - PnP PowerShell コマンドレット

ライブラリの作成と設定

ライブラリの新規作成および設定変更は、リストと同様に「New-PnPList」、「Set-PnPList」コマンドを利用します。
それぞれのコマンドで指定出来るオプション、指定出来ないオプションをカテゴリ別に表にまとめました。「New-PnPList」で指定出来ないものは、ライブラリ作成後に「Set-PnPList」で追加設定を行う必要があります。

New-PnPListコマンドレット
Set-PnPListコマンドレット

①リスト名、説明、ナビゲーションの列挙

< 設定画面(GUI)>
image.png
image.png

設定項目1 設定項目2 New-PnPList Set-PnPList
名前と説明 名前
Title

Title
説明 ×
Description
ナビゲーション このリストをサイド
リンク バーに表示する

OnQuickLaunch
×
その他 内部名(Webアドレス)
URL

Path
アプリの種類
Template
(GenericList,DocumentLibrary
など)
×

表の見方は以下の通りです。
・該当列のコマンドで指定出来る場合は「○」、出来ないものは「×」となります。
・○の下に記載している単語は、指定するオプション名となります。
※コマンド実行例も併せてご確認ください。

# New-PnPList 実行例
New-PnPList -Title "検証用ライブラリ01" -Url "testlib01" -Template DocumentLibrary -OnQuickLaunch

# Set-PnPList 実行例
Set-PnPList -Identity "検証用ライブラリ01" -Title "検証用ライブラリ02" -Path "testlib02" -Description "検証用のライブラリです"

②バージョン設定(ライブラリの場合)

< 設定画面(GUI)>
image.png

設定項目1 設定項目2 New-PnPList Set-PnPList
コンテンツの承認 承認を必須にする ×
EnableModeration
アイテムの
バージョン履歴
編集するたびに
バージョンを作成する

EnableVersioning

EnableVersioning
または
EnableMinorVersions ※1
次の数のメジャーバージョンを保存 ×
MajorVersions
次の数のメジャーバージョンの下書きを保存 ×
MinorVersions ※2
下書きアイテムのセキュリティ
※3
下書きアイテムを
表示できるユーザー
×
DraftVersionVisibility
(Approver,Author,Reader)
チェックアウトを必須にする 編集前のチェックアウト ×
ForceCheckout

※1 メジャーバージョンの作成有無は「EnableVersioning」でTrueまたはFalseを指定し、マイナーバージョンも含める場合は「EnableMinorVersions $true」を指定します。
※2 コンテンツの承認が有効またはマイナーバージョンの作成が有効な場合のみ、設定値が反映されます。
※3 コンテンツの承認が無効の場合は設定不可となります。また、マイナーバージョンの作成が有効な場合は「Auther」「Reader」のみ選択可能となります。

③詳細設定(ライブラリの場合)

< 設定画面(GUI)>
image.png

設定項目1 設定項目2 New-PnPList Set-PnPList
コンテンツタイプ コンテンツタイプの管理を許可
EnableContentTypes

EnableContentTypes
ドキュメントのテンプレート テンプレートのURL ×
ブラウザーで開くドキュメント 既定の表示方法 ×
DefaultItemOpenInBrowser
※1
独自の送信先 送信先名 ×
URL ×
フォルダー [新しいフォルダー] の表示 ×
EnableFolderCreation
検索 リストアイテムの検索結果表示 ×
NoCrawl
既定以外のビューの
インデックス化
既定以外のビューの検索結果表示 ×
CrawlNonDefaultViews
※2
ドキュメントライブラリ インデックスの再作成 × 不明
オフライン クライアントの
使用制限
ダウンロードの許可 × ×
ExcludeFromOfflineClient
※3
サイト リソース ライブラリ リソースライブラリとして設定 × 不明
クイック プロパティの編集 [クイック編集]と[詳細] の利用 ×
DisableGridEditing
ダイアログ ボックス × 不明
インデックスの自動管理 × 不明
リストの表示 ×
ListExperience
(Auto,NewExperience,ClassicExperience)

※1 Set-PnPListで指定可能なパラメータなし。後述のコマンド処理により設定が可能。
 指定はTrue/Falseで行います。既定値の「サーバーの既定値を使用する(ブラウザーで開く)」を指定する値は見つかりませんでした。
 また、Get-PnPListを実行すると「DefaultItemOpenInBrowser」の値はブランクとなり、「DefaultItemOpenUseListSetting」がTrueとなります。
image.png

※2 コマンド自体は正常に実行されますが、パラメータには反映されませんでした。後述のコマンド処理により設定が可能。
※3 オプション名は記載のものと推測されますが、コマンドを実行してもパラメータに反映されませんでした。後述のコマンド処理でも同様に反映不可となりました。

上記の※1、※2で記載した別方法によるコマンド処理は以下となります。この処理を利用することで、Set-PnPListで直接指定が出来ないものも、一部設定が可能でした。

$list = Get-PnPList -Identity "ライブラリの表示名"

# ※1(ブラウザーで開くドキュメント)の場合
# $True=ブラウザーが既定、$False=クライアントアプリケーションが既定
$list.DefaultItemOpenInBrowser = $false

# ※2(既定のビュー以外のインデックス化)の場合
$list.CrawlNonDefaultViews = $false

$list.Update()
Invoke-PnPQuery

【参考】モダンリストとライブラリのエクスペリエンスをオプトアウトする

④ライブラリの権限

< 設定画面(GUI)>
image.png

設定項目1 設定項目2 New-PnPList Set-PnPList
このリストに対する権限 権限の継承/中止 ×
(BreakRoleInheritance [中止]),
ResetRoleInheritance [継承])

※ BreakRoleInheritanceを指定して実行すると、権限の継承中止に加え、それまで付与されていたSharePointグループも削除される場合がありますので、実行後にGUIでも確認することをお奨めします。

最後に

リストに比べると、バージョン管理の設定項目が増えていたり、ファイル操作に関する設定項目が見られるのがライブラリの特徴かと思います。
リスト同様に、ほとんどの項目はPowerShellでも設定が出来そうでしたが、テンプレートのURLなどファイル自体の修正が必要なものなどは、GUIから実施したほうが良さそうでした。

関連記事

第1回:【SharePoint】PnP.PowerShellだけでアプリの設定がどこまでできるか - リスト編

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0