以前の投稿でStream (on SharePoint) に移行ツールを使えば、Stream (クラシック)への既存のリンクはしばらくの間はリダイレクトされるという話を書きました。
🔗 SharePoint Technical Notes : Stream (on SharePoint)への移行: リダイレクトについて (lekumo.biz)
特に SharePoint ページに Stream Webパーツを使ってビデオコンテンツを配置しているケースが多いと思います。そんな中、Microsoft MVP の一人である てっちゃん (@techan_k) さんが SharePoint ページ上にある Stream Webパーツを CSV ファイルに書き出すスクリプトを公開してくれています。助かりますね。
📝 Export of Stream (Classic) Web Parts and pages that use them | PnP Samples
私の方でもさっそく試してみたのですが、メモ書きを残しておこうと思います。
PnP PowerShellを使う準備
PnP PowerShell を使うため事前準備が必要です。PnP の概要などは下記にまとめています。
🔗 SharePoint Technical Notes : PnP PowerShell の概要とインストール (lekumo.biz)
実行
まずはローカルにスクリプトファイル(*.ps1)を用意します。例では "spo-export-stream-classic-webparts.ps1"というファイル名が使われているので、これにしておくとよいでしょう。ここに、GitHubに公開されているスクリプトをコピーして貼り付けておきます。
スクリプトの実行方法は上記のGitHub内およびスクリプト内のコメントにも書かれていますので確認しておきましょう。
都度、サイトを指定してサイト単位で Stream Webパーツがあるページを探索することになります。
結果はCSVファイルに出力されます。出力場所はマイドキュメント(My Documents)内に作成される "StreamClassicWebPartsReport" フォルダーです。
スクリプト実行後に、このフォルダーを開くようにしたい場合は、次のように -openFolder オプションを指定してスクリプトを実行します。
.\spo-export-stream-classic-webparts.ps1 -siteUrl "https://contoso.sharepoint.com/PnPScriptSamples" -openFolder
実行すると「日付-サイト名.csv」という名前付け規則でCSVファイルが生成されます。ちなみにスクリーンショットでは訳があって「日付-サイトID」で生成しています。
このファイルを確認すれば、どのページに当該Webパーツが埋め込まれているかがわかります。
注意点
最終的にはスクリプトの実行は首尾よくいったのですが、最初はいくつかのエラーに遭遇したので備忘録して残しておきます。
最初のエラーは Getting SitePages .. Started 時点で遭遇したページのエラーでした。このページを実際に開くと前に何かを試したのかページ自体がエラーとなっていました。おそらくWebパーツの不具合だったと思いますが、よくみると作りかけで実際には参照していないものであったためページ自体を削除しました。
次が Processing pages -- Started 時点のエラーで、下記が実際のエラー画面です。「フォルダーに...」というページ。
なんだろうとページを開いたのですが、こちらはページ自体何も問題ない。ですが、ページの詳細を確認すると説明部分に文字化けが。。。本文に書いていた絵文字までが説明部分に追加されており、文字化けしていたわけです。Cannot read incomplete UTF-16 JSON text とエラーメッセージにあるので、これかなと詳細ウィンドウを修正し文字化けを取り除きました。
さて、ここまででページの取得は無事に完了したのですが、CSVファイルの出力でまたエラー。なんだろうとよくよく確認すると、運悪く対象のサイト名が「SharePoint/OneDrive/Stream の利活用」となっている。サイト名にファイル名に使用できない文字が含まれていたのです。手っ取り早く修正するためにスクリプトを修正して $site.Title を $site.ID に置き換えました。
以上で無事にスクリプトが実行できたわけです。
最後に
最後に遭遇した不具合の情報を書きましたが、スクリプト自体は自分で作ると面倒ですし、そもそもPowerShellを書くための基礎知識が必要です。こうしたスクリプトを公開し共有してくれるのは、本当に助かります。
これで新しい Stream への移行が少しでもスムーズにいくといいですね。
コメント