Get-PnPFolderItemでSharepointOnline/One Drive for Businessの一覧を取得する

Get-PnPFolderItemの利点

以前、Get-PnPListItemでファイル一覧を取得する記事を書きました。

OneDrive for Business /Sharepoint Online Document LibraryをPnPPowershellで管理する

上記にもあるように、OneDrive for BusinessとSharepointOnlineのドキュメントラブラリは技術仕様がほぼ一緒です。

上記記事では一覧をとることを重視していたんですが、ファイルの数が大きくなってくるとまずページサイズ上限で引っかかります。

上記がでるので Get-PnPListItemコマンドレットに-PageSize 500オプションを追加すると一応動きます。

その後取れたItemの詳細を取るために一個一個Queryを実行しないといけないんですが、リストが余りに多いと429 Too Many Requestsが返ってきてエラーになります。DDoS攻撃防止用ですね。start-sleep入れてみたんですが10万近くファイルがあると終わりません。
ということで、Get-PnPFolderItemで必要なフォルダ指定で一覧を取ることにしました。注意点は2つ。

・相対パスはSubSiteからのパス。ドキュメントライブラリーの時はデフォルトはShared Documents/

なのでここからのパス

・取れるItemはListItemとは違うオブジェクトなので、コンテキストを移して一つ一つデータをQuery実行する必要あり。

参考までに。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

前の記事

Windows10にRSATをいれる。

次の記事

Macで外部キーボードを使う