SharePoint サイトが増えるほど、ロゴや色、フォント、テーマのばらつきは「見た目の問題」ではなく、運用と統制の問題になりがちです。2026年4月時点では、その SharePoint サイトのブランディング ガバナンスを PowerShell でかなり実務的にスクリプト化 できます。Microsoft 365 Roadmap の項目 526794 は 2026年4月7日に更新されて Launched となっており、企業テーマの個別サイト適用、特定サイトでの site branding 無効化、変更の監査までを PowerShell ベースで回せる方向が明確になりました。対象として SharePoint、Web/Desktop、Worldwide、GCC、GCC High、DoD が示されています。(Microsoft)
重要なのは、PowerShell が単なる作業自動化ではなく、決めたブランドを崩れにくくする運用レール になることです。とくに、サイト数が多いテナント、部門ごとにサイトが増えやすい組織、Multi-Geo 環境では効果が大きくなります。SharePoint の Brand Center でブランド資産を一元管理し、PowerShell で適用・制限・監査を自動化するのが、いちばん再現性の高い進め方です。(Microsoft Learn)
2026年4月時点で何が変わったのか
今回のポイントは、SharePoint のブランディングを「人が UI でその都度変える運用」から、「管理者がルールを定義してスクリプトで適用・固定・追跡する運用」へ寄せやすくなったことです。Roadmap の説明では、一貫したブランド適用、個別サイトへの enterprise themes 適用、特定サイトでのカスタム ブランディング無効化、ブランド変更の監査が主眼として示されています。(Microsoft)
実務に落とすと、単一の「新コマンド」が増えたというより、SharePoint Online 管理シェルのテーマ関連コマンド、サイト設定コマンド、Brand Center 連携、Purview の監査ログ を組み合わせてブランド ガバナンスを運用しやすくなった、と理解するのが自然です。(Microsoft Learn)
Brand Center と PowerShell は役割が違う
Brand Center は、ブランド マネージャーや指定されたオーナーが、色・フォント・画像などのブランド資産を一か所で扱うための中枢です。Brand Center はテナントごとに 1 つで、グローバル管理者が有効化し、内部では Organization Asset Library を使い、Public CDN が前提になります。Brand Center サイトの所有者グループに入ったユーザーが、資産管理や運用を担います。(Microsoft Learn)
一方の PowerShell は、そのブランドを大量のサイトへ確実に適用し、例外を固定し、変更履歴を追跡する執行レイヤー です。Microsoft Learn のテーマ取得に関する説明でも、テナント レベルのテーマにはコマンド ベースのツールで作成したものと Brand Center UI で作成したものの両方が含まれるとされており、Brand Center と PowerShell は競合ではなく補完関係にあります。(Microsoft Learn)
PowerShell でスクリプト化できること
| やりたいこと | 主な手段 | 実務上の意味 |
|---|---|---|
| 標準テーマを登録・更新する | Add-SPOTheme / Get-SPOTheme | テナント標準の色設計を定義する |
| 既存サイトへテーマを適用する | Set-SPOWebTheme | 既存サイトの見た目のばらつきを是正する |
| 既定テーマを隠す | Set-SPOHideDefaultThemes | サイト所有者が勝手に別テーマを選びにくくする |
| 特定サイトでブランディング変更を禁止する | Set-SPOSite -DisableSiteBranding $true | コーポレート ポータルや法務系サイトを固定化する |
| 変更履歴を監査する | Search-UnifiedAuditLog と監査アクティビティ | 誰がいつテーマや branding 設定を変えたかを追える |
| フォントまで統一する | Add/Get/Set/Remove-SPOFontPackage | 色だけでなくタイポグラフィまで標準化できる |
上の整理は、Microsoft の公式 cmdlet と監査ドキュメントで裏付けられています。特に注意したいのは、Add-SPOTheme はテーマを登録するだけで自動適用はしないこと、Set-SPOHideDefaultThemes はモダン サイト向けで個別テーマ単位ではなく既定テーマ全体の表示・非表示を切り替えること、監査検索は Search-UnifiedAuditLog を使うと既定では 100 件のサブセットしか返らないことです。フォント パッケージは Brand Center のフォント ライブラリが前提で、非表示のパッケージでも Set-SPOFontPackage で適用できます。(Microsoft Learn)
なぜ大規模な SharePoint 運用で効くのか
ハブ サイトだけでは完全統制にならない
SharePoint のハブ サイトは、関連サイトへ共通のナビゲーションやブランド感を広げるのに有効です。ただし、Microsoft は hub に関連付けられた Microsoft 365 グループ接続チーム サイトには、カスタム テーマやロゴが自動適用されない と明記しています。つまり、ハブだけで「全部そろう」と考えるとズレます。PowerShell で定期的に対象サイトへテーマを当てるほうが、実際には安定します。(Microsoft Learn)
既存サイトの是正を何度でもやり直せる
SharePoint では、テーマを作っただけでは既存サイトの見た目はそろいません。Add-SPOTheme で作成したテーマは、モダン サイトの「外観の変更」に出るだけで、自動では適用されないからです。だからこそ、PowerShell で対象サイトを列挙し、Set-SPOWebTheme を流す構成が効きます。ブランド逸脱が起きても、再実行で戻せます。(Microsoft Learn)
Multi-Geo では「どこで作るか」が重要になる
テーマ管理は一元化の方向へ進んでいます。Microsoft Learn では、Primary Geo が組織全体のテーマ作成・管理の中心 となり、Satellite Geo の管理者は Get-SPOTheme と Set-SPOWebTheme で Primary Geo のテーマを参照・適用できる一方、新しいテーマを Satellite Geo 側で作る運用は今後サポートしない方向と説明されています。Multi-Geo ほど、PowerShell で源流を一本化する意味が大きいです。(Microsoft Learn)
導入前に確認したい前提
| 確認項目 | 見落とすと起きやすいこと |
|---|---|
| SharePoint Online 管理シェルを最新化しているか | 新しい cmdlet や挙動差分を拾えない |
| PowerShell 7 を使うか | Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell が必要 |
| Brand Center を使うか | フォントや画像の一元管理が中途半端になる |
| Public CDN の扱いを理解しているか | Brand Center 前提の運用設計で詰まりやすい |
| モダン サイト中心の設計か | Set-SPOHideDefaultThemes はクラシック サイトには効かない |
| 監査をどこで見るか決めているか | 変更検知が後回しになり、運用が属人化しやすい |
| Multi-Geo かどうか | テーマ作成の場所を誤ると統制がぶれる |
これも見落としやすい点ですが、今回の PowerShell 化を クラシック時代の master page カスタマイズ回帰 と考えるのは危険です。Microsoft は、クラシックの custom master pages や alternate CSS は更新時に壊れやすく、モダン UI では無視されることがあるため、モダンなブランディング手法を使うよう案内しています。今回のブランド ガバナンスも、前提はモダン サイトです。(Microsoft Learn)
実務でおすすめの運用パターン
標準テーマは「作成」と「適用」を分けて考える
まず決めるべきなのは、コーポレート標準として何色を正とするかです。テーマ名は Contoso-Corporate-2026Q2 のように、ブランド名 + 版 で管理すると、後から差し替えるときに事故が起きにくくなります。Multi-Geo なら Primary Geo を作成元に固定し、Brand Center を使うならそこをブランド資産の正本にします。Add-SPOTheme は登録であって適用ではない、という前提を最初にチームで共有しておくと運用がぶれません。(Microsoft Learn)
まずは接続を標準化する
# PowerShell 7 の場合のみ
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell
Connect-SPOService -Url https://contoso-admin.sharepoint.com
SharePoint Online 管理シェルは最新化しておくのが基本です。PowerShell 7 で実行する場合は -UseWindowsPowerShell が必要です。(Microsoft Learn)
既存サイトへ企業テーマを一括適用する
$themeName = "Contoso-Corporate-2026Q2"
$sites = Get-SPOSite -Template GROUP#0 -IncludePersonalSite:$false -Limit ALL
foreach ($site in $sites) {
Set-SPOWebTheme -Theme $themeName -Web $site.Url
}
この形なら、Microsoft 365 グループ接続のチーム サイトをまとめて補正できます。ハブ サイト関連付けだけでは取りこぼしが出るケースの穴埋めとして使いやすいパターンです。(Microsoft Learn)
既定テーマを隠して、逸脱しやすい UI を減らす
Set-SPOHideDefaultThemes $true
これは派手な機能ではありませんが、実務ではかなり効きます。ブランド ガイドラインを決めても、テーマ ピッカーに既定テーマがずらっと見えていると、現場ではつい別テーマが選ばれます。UI 側の選択肢を減らすのは、ガバナンスではとても重要です。なお、これはモダン サイト向けで、個別の既定テーマだけを選んで隠すことはできません。(Microsoft Learn)
絶対に変えたくないサイトは branding 自体を止める
$lockedSites = @(
"https://contoso.sharepoint.com/sites/hr-portal",
"https://contoso.sharepoint.com/sites/legal"
)
foreach ($siteUrl in $lockedSites) {
Set-SPOSite -Identity $siteUrl -DisableSiteBranding $true
}
全サイトを一律に締める必要はありません。むしろ、変えてよいサイト と 変えてはいけないサイト を分けるほうが現実的です。コーポレート ポータル、IR、法務、監査、全社ナレッジ トップのような「顔になるサイト」は固定し、部門サイトは一定の範囲で自由度を残す設計のほうが回ります。Set-SPOSite -DisableSiteBranding は、その境界線を明確にしやすいコマンドです。(Microsoft Learn)
監査は SharePoint シェルではなく Purview / Exchange Online 側で見る
# Exchange Online PowerShell で実行
Search-UnifiedAuditLog `
-StartDate (Get-Date).AddDays(-7) `
-EndDate (Get-Date) `
-Operations TenantWideThemeCreated,TenantWideThemeUpdated,TenantWideThemeDeleted,UpdateDisableSiteBranding `
-SessionCommand ReturnLargeSet
監査まで入れて初めて「ガバナンス」になります。公式ドキュメントでは、統合監査ログは Search-UnifiedAuditLog で検索でき、SharePoint を含む Microsoft 365 サービスのイベントを絞り込めます。既定では 100 件の結果しか返さないため、件数が多いテナントでは ReturnLargeSet を付けたほうが実用的です。テーマ作成・更新・削除や DisableSiteBranding 変更に対応する監査アクティビティも定義されています。(Microsoft Learn)
フォントまでそろえると、見た目の差が一段減る
$fontPackage = Get-SPOFontPackage -Identity "<font-package-guid>"
Set-SPOFontPackage -Identity $fontPackage -WebUrl "https://contoso.sharepoint.com/sites/marketing"
Brand Center を本格的に使うなら、テーマ色だけでなくフォント パッケージまで管理対象に入れると、一気に“会社っぽさ”がそろいます。Add-SPOFontPackage は Brand Center にアップロード済みのフォントを前提に新しいフォント パッケージを作成し、Set-SPOFontPackage はそれを SharePoint サイトや Viva Connections に適用できます。パッケージを非表示にしても PowerShell から適用できるため、テスト用や段階展開用の運用とも相性がいいです。(Microsoft Learn)
よくある失敗と回避策
| 失敗 | 起きる理由 | 回避策 |
|---|---|---|
| テーマを作ったのにサイトがそろわない | Add-SPOTheme は登録だけで自動適用しない | Set-SPOWebTheme を配布ジョブに含める |
| 組織テーマ以外が普通に使われる | 既定テーマが見えたまま | Set-SPOHideDefaultThemes $true を検討する |
| ハブに関連付ければ全部そろうと思う | グループ接続チーム サイトには custom theme / logo が自動反映されない場合がある | 定期的な PowerShell 補正を前提にする |
| クラシック サイトも同じように制御できると思う | 既定テーマ非表示はモダン サイト向け | クラシックは別ポリシーで扱うか、先にモダナイズする |
| 監査検索で件数が少ない、0 件になる | Search-UnifiedAuditLog は既定 100 件、同日検索で時刻未指定だと結果が出ないことがある | ReturnLargeSet と明示的な日時指定を使う |
Get-SPOSite の情報で条件分岐したら誤判定した | -Limit や -Filter 使用時は一部プロパティが既定値のままになることがある | 重要な判定前に -Identity で個別取得する |
| フォント パッケージ削除をロールバックだと思う | 削除してもフォント ファイルは消えず、既存ページの表示も残る場合がある | 旧版/新版の切り替え計画を別で持つ |
このあたりは公式ドキュメントを読んでいても見落としやすい実務ポイントです。とくに Get-SPOSite の取得条件によるプロパティ差分と、監査検索の結果件数・日時指定の癖は、運用に入ってから問題になりがちです。(Microsoft Learn)
まず何から始めるべきか
今回の SharePoint サイトのブランディング ガバナンス PowerShell 化で本当に価値があるのは、SharePoint をきれいに見せることではなく、ブランド変更を再現可能な運用に変えること です。Brand Center を「正本」、PowerShell を「適用と統制」、監査ログを「証跡」に分けると、設計がぐっとシンプルになります。(Microsoft Learn)
最初の一歩は、次の 3 つで十分です。
- 標準テーマ名を 1 つ決め、例外サイトの一覧を作る
- 対象サイトへ
Set-SPOWebThemeを流す一括スクリプトを作る UpdateDisableSiteBrandingとテーマ変更を週次で監査する
サイトが 20 未満なら UI 中心でも回せますが、50 を超えるあたりから PowerShell の効果が一気に出ます。Multi-Geo や全社ポータルを持つ組織なら、今回のタイミングで「ブランドを誰が決めるか」ではなく、ブランドをどう崩れなくするか まで設計しておく価値があります。

コメント