PnP Provisioning でクラシックサイトのマスターページとページレイアウトを SPO に展開する方法

はじめに

PnP Provisioning を使って、クラシックサイトのマスターページとページレイアウトを SharePoint Online サイトに展開する方法を調査しました。 想像していたのとは違う形になってしまったので、展開方法を残しておきたいと思います。 なお、PnP Provisioning は日々進化しているオープンソースのライブラリのため、ここでの検証結果が未来永劫有効なものではないということをご了承ください。 2022年5月6日時点のコードで検証しています。

普通にテンプレート化してもダメ

Get-PnPSiteTemplate コマンドレットで PnP サイトテンプレートを作成すればマスターページもページレイアウトもテンプレートに含まれるだろうと思っていたのですが、それだけではうまく行きませんでした。 試したことは、Get-PnPSiteTemplate コマンドレットで .pnp 形式のファイルを出力させ、これを Invoke-PnPSiteTemplate コマンドレットで展開する方法です。 .pnp 形式のテンプレートは無事作成することができ、.pnp ファイルの拡張子を .zip に変更し解凍することでマスターページファイル(.master)が含まれていることも確認したのですが、この方法では .pnp ファイルにページレイアウトが含まれませんでした。 試しに Invoke-PnPSiteTemplate コマンドレットを実行するも、マスターページファイルは展開されるもののマスターページとしては認識されず・・・ そしてもちろんページレイアウトも展開されませんでした。 色々オプションを付けてもうまく行かなかったため、この方法は諦めました。

読了時間: 1分

モダンサイトのテンプレート展開などを実現する「PnP PowerShell」

PnP PowerShell とは

モダンサイトやリストの自動展開や各種設定を SharePoint 管理コンソールよりも簡単に実施できるようにするためのコマンドレットを多数備えた、PowerShell コマンドライブラリです。 SharePoint Online だけでなく SharePoint オンプレミスに対しても使用することができます。 詳細は docs を参照してください。

どんなことができるの?

PnP PowerShell を使うことで、例えば次のようなことができるようになります。

モダンサイトのテンプレート展開

モダンサイトはテンプレート化することができませんが、PnP PowerShell のプロビジョニングテンプレートを使用することで、予め定めたリストやライブラリを追加したり、ドキュメントを事前にアップロードしてサイトを展開するというようなことができるようになります。 旧来のサイトテンプレートと全く同じではありませんが、サイトテンプレートよりも細かいことまで含めてできるようになります。

読了時間: 1分

SPO のモダン対応を促進する「SharePoint Modernization Scanner」

SharePoint Modernization Scanner とは

SharePoint Modernization Scanner は、SharePoint Online サイトのモダン化を進めるために、SharePoint Online サイトをスキャンしてモダンに切り替えられていないサイトを抽出するツールです。 PnP コミュニティにより維持管理されており、GitHub からダウンロードして無償で使用することができます。 また、詳細な説明資料はマイクロソフトの Docs に掲載されており、Docs に最新モジュールへのリンクも掲載されています。 SharePoint Modernization Scanner は随時アップデートがされており、ドキュメントもそれに合わせて更新されているので、使用する際には常に Docs を確認して最新の情報を参照するようにしてください。 このブログでも、ツールの紹介だけを行い詳細な使い方については割愛しています。

読了時間: 1分

OneDrive 同期クライアントによる同期を制限する

OneDrive 同期クライアントを使っている場合、OneDrive for Business 上のデータの情報漏洩対策として、会社 PC では同期を許可するけど、自宅 PC は同期を許可させたくないという話はよくあることかと思います。 SharePoint 管理コンソールから「Set-SPOTenantSyncClientRestriction」を実行すると、上記のような制限をかけることができるようになります。 また、「Get-SPOTenantSyncClientRestriction」で現在の状態を確認することができます。

# テナントに接続 (URL は SharePoint 管理センターの URL です
PS> Connect-SPOService https://[テナント名]-admin.sharepoint.com
# 現在のOneDrive同期設定を確認
PS> Get-SPOTenantSyncClientRestriction
TenantRestrictionEnabled : False
AllowedDomainList : {}
BlockMacSync : False
ExcludedFileExtensions : {}
OptOutOfGrooveBlock : False
OptOutOfGrooveSoftBlock : False
DisableReportProblemDialog : False
# 同期を許可するドメインのドメインGUIDを取得する
PS> $domains = (Get-ADForest).Domains; foreach($d in $domains) {Get-ADDomain -Identity $d | Select ObjectGuid}
ObjectGuid
----------
99999999-9999-9999-9999-999999999999
# OneDrive 同期制限をかけ、上記ドメインのみ同期を許可する
PS> Set-SPOTenantSyncClientRestriction -Enable -DomainGuids "99999999-9999-9999-9999-999999999999"
TenantRestrictionEnabled : True
AllowedDomainList : {99999999-9999-9999-9999-999999999999}
BlockMacSync : False
ExcludedFileExtensions : {}
OptOutOfGrooveBlock : False
OptOutOfGrooveSoftBlock : False
DisableReportProblemDialog : False

制限がかかった状態の OneDrive for Business に OneDrive 同期クライアントで同期をしようとすると、使用中の PC が同期が許可されたドメインに属する PC でない場合に、以下のエラーが表示されます。 Set-SPOTenantSyncClientRestriction なお、エラーが出ていても同期ができないだけで、過去に同期されたファイルはローカルに残り続けます。 制限を解除する場合は「Remove-SPOTenantSyncClientRestriction」を実行します。

読了時間: 1分

Office 365 に独自のドメインを追加する方法

Office 365 のテナントに独自のドメインを追加するという作業を行なったので、その際の流れを残しておきたいと思います。 ちなみにここで紹介する流れは 2015 年 2 月 1 日時点の Office 365 が対象です。 今後は流れが変わる可能性がありますのでご了承ください。 また、利用しているドメイン管理業者は Value Domain になります。 1. Office 365 管理センターよりドメイン追加を開始 Office 365 管理センターにアクセスし、メニューから[ドメイン]をクリック。 その後、右ペインの[ドメインの追加]をクリックします。 o365domain-1 2. ドメインと DNS の説明 ドメイン名の登録をするわけですから、DNS のことをきちんと理解しておきなさいということですね。 [始めましょう]をクリックします。 o365domain-2 3. ドメインの指定 追加するドメインをテキストボックスに入力し[次へ]をクリックします。 ちなみに私は以前から使っている orivers.jp を指定しました。 ドメインを持っていない場合は事前にドメインをゲットしてください。 o365domain-3 4. DNS に TXT レコードを追加 前の手順で指定したドメインを所有していることを確認するため、DNS に TXT レコードを追加します。 画面に TXT 名、TXT 値、TTL が表示されるので、これをご自身が利用している DNS に登録します。 o365domain-4 Value Domain の場合は、DNS の管理画面にて以下のように記述します。 入力ミスを防ぐため画面からコピペします。 txt @ MS=ms36472078 DNS の登録が済んだら、Office 365 の画面に戻り、[レコードを追加しました]をクリックします。 DNS の登録が無事済んでいたら、次のステップに進むことができます。 [次へ]をクリックします。 o365domain-7 DNS の登録が失敗している場合や、登録結果がまだ反映されていない場合は、以下のようなエラーが出ます。 o365domain-6 ちなみに私の場合は、DNS の登録から 30 分くらいして、ようやく次のステップに行けるようになりました。 5. 既存ユーザーのドメイン更新 現在のドメイン「xxx.onmicrosoft.com」に登録されているユーザーを新しいドメインに移行します。 移行したいユーザーをチェックして、[選択したユーザーの更新]をクリックします。 o365domain-8 無事更新が完了しました。 [次へ]をクリックします。 o365domain-9 ここで一度サインアウトします。 [サインアウト]をクリックします。 o365domain-10 6. 新規ユーザーを追加する 新しいドメインに追加するユーザーをここで登録します。 登録が完了したら[これらのユーザーの追加]をクリックします。 o365domain-11 無事登録が完了しました。 [次へ]をクリックします。 o365domain-12 7.  DNS レコードの更新を開始 いよいよ Office 365 に新しいドメインを追加するための DNS の設定をします。 [次へ]をクリックします。 o365domain-13 8. サブドメイン「www」の使用状況確認 SharePoint サイト用のサブドメインを作成するためかと思いますが、「www」サブドメインの使用状況の確認が入ります。 今回は「www」サブドメインは何もせずに残しておきたいので[はい、www.orivers.jp に Web サイトがあります]を選択します。 o365domain-14 すると、この Web サイトを使い続けるかと聞かれるので、[はい、現在の Web ホストでこの Web サイトを使い続けます]を選択し、[次へ]をクリックします。 o365domain-15 9. 使用するサービスの選択 新しいドメインで使用するサービスを選択します。 今回はメールだけ使いたいので、[電子メール、予定表、および連絡先用の Outlook]にチェックをして、[次へ]をクリックします。 o365domain-16 10. DNS レコードの追加 MX レコード、CNAME レコード、TXT レコードが表示されます。 o365domain-17 o365domain-18 これらのレコードを先ほどと同様 DNS に登録します。 入力ミスを防ぐため画面からコピペします。 なお、前の手順で追加した TXT レコードはこのタイミングで削除します。 Value Domain の場合は、DNS 管理画面で以下のように記述します。 mx orivers-jp.mail.protection.outlook.com. 0 cname autodiscover autodiscover.outlook.com. cname msoid clientconfig.microsoftonline-p.net. txt @ v=spf1 include:spf.protection.outlook.com -all ※cnameの最後は必ず「.」で。 DNS にレコードを追加した後、Office 365 の画面に戻り、[レコードを追加しました]をクリックしますが、 先ほどと同様、DNS 更新のタイムラグがあるので、先ほどと同じくらいの時間待ちましょう。 DNS の更新がまだ済んでいない場合は、以下のようなエラーが表示されます。 「何を修正しますか?」って、ちょっと日本語変ですねw o365domain-20 この不思議な日本語をクリックすると、以下のようにエラーの対応方法が表示されます。 o365domain-21 11. 設定完了! 前の画面でしばらく待ってから[レコードを追加しました]をクリックし、以下の画面が表示されれば設定完了です。 o365domain-22 設定そのものは難しくないのですが、DNS の登録方法がドメイン管理業者により異なるので、そこがはまりどころですね。 あとタイトルが大きすぎw

読了時間: 1分

SharePoint 2013 の検索結果チューニングに関するまとめ

2014年9月6日に Japan SharePoint Group でお話しさせていただいた時の資料をスライドシェアにアップしております。 http://www.slideshare.net/HiroakiOikawa/sharepoint-2013-38769081 SharePoint Server 2013 および、SharePoint Online で検索結果の並び順がいまいちだなーと思っている方、スライドとスライドに記載のリンク先のページを見て、チューニングを行ってみてください。 勉強会ではデモがうまくいかない部分があったり、時間全然足りなくて急いじゃったりしたので、ブログでフォローアップしていければと思っております。。。

読了時間: 1分

SharePoint が導入済みのサーバーは、sysprep 非対応

はじめに

複数の開発者に SharePoint の開発環境を提供するために、SharePoint や Visual Studio を導入した環境をマスターイメージとして作成し、この環境を複製して各開発者に提供するということは、チーム開発を行う上では良くある話かと思います。 また、開発環境に限らず、SharePoint の動作検証環境を丸っと複製したいというニーズもあると思います。 このようなニーズを満たすための方法としてよくあるのは、仮想環境を丸ごとコピーして複製するとか、マスターとなるイメージを作成してそこから環境を構築するとかという手段が思いつきます。 ただ、そのまま仮想環境を丸ごとコピーすると、コンピュータ名や SID が被ってしまったりするため、複製された各環境がネットワーク的に分断された状態を作らなければ、何かと問題が起きてしまいます。 そのような状況になるのを防ぐため、環境を丸ごとコピーするような場合には、sysprep を使えばいいと考えるかと思います。 sysprep を使うことでコピーされた環境を初めて立ち上げる際にコンピュータ名などを設定しなおすことができるようになりますので。 ※sysprep についての情報はこちら この手法を SharePoint が入った環境で行うとどうなるか・・・・ということを調べてみました。 結果は目に見えてはいたのですが、一応。

読了時間: 1分

パスフレーズを変更する

はじめに

パスフレーズとは、ファームを新規構築する際に構成ウィザードの流れの中で設定する値で、ここで設定した値を、以降ファームにサーバーを追加する際に入力することになります。 一気に全サーバーをファームに追加する場合は、パスフレーズを忘れることなどないと思うので問題ないのですが、しばらく間をあけてからサーバーを追加する時などは、場合によってはパスフレーズを忘れてしまった、ということもあるかと思います。 そんな時に備え、パスフレーズを初期化する方法をご紹介します。

パスフレーズ変更スクリプト

パスフレーズの変更は、以下の PowerShell で行います。 (青字が入力する部分になります。)

1: $pass = ConvertTo-SecureString -String "xxxx" -asPlainText -Force
2: Set-SPPassPhrase -PassPhrase $pass -Confirm
3:  
4: コマンド パイプライン位置 1 のコマンドレット Set-SPPassPhrase
5: 次のパラメーターに値を指定してください:
6: ConfirmPassPhrase: \*\*\*\*
7:  
8: 確認
9: この操作を実行しますか?
10: 対象 "SPPassPhrase" に対して操作 "Set-SPPassPhrase" を実行しています。
11: [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S)
12: [?] ヘルプ(既定値は "Y"): y

1 行目の “xxxx” には新たに設定したいパスフレーズを指定します。 パスフレーズのセキュリティ要件(文字の長さ、種類)を満たした文字を指定する必要があります。 6 行目の “****” には、1行目で指定したパスフレーズを確認のためもう一度入力します。

読了時間: 1分

ファームで使用しているデータベースを一覧表示する

はじめに

開発環境や検証環境として、SharePointファームをたくさん立てていると、いつの間にかデータベースがたくさんできてしまい、いざデータベースを整理しようと思った時にどのデータベースを消してよいのかが判別できなくなることがあると思います(私だけ!?) SQL Server Management Studioのオブジェクトエクスプローラを見ると、データベースが多すぎてどうしたらよいものかと・・・ image_3_42B37651 ※画像はあえて小さくして載せてます。 そんな時にファームで利用しているデータベースの一覧が見れるととても便利なわけですが、PowerShell で手軽に実現できてしまいます。

読了時間: 1分

SharePoint 2013の各サービスアプリケーションの推奨実行場所

SharePoint 2013の各サービスアプリケーションの推奨実行場所 サービスアプリケーション毎に、お勧めの実行サーバーがまとめられています。 http://t.co/VA3n0cYaLH

twetter より

読了時間: 1分