2017年1月18日

2017年1月18日 (水)

SharePoint 2016 ではSuiteBarの設定は変更できるのか? という記事です。まずはおさらいから。

SharePoint 2013 でのおさらい

SharePoint 2013 では SuiteBar (スイートバー)の左側の "SharePoint" という文言をファーム管理者が変更できました。SuiteBar とは下図のところです。

SuiteBarSP2013

ファーム管理者は次のような PowerShellのコマンドを実行して変更できます。

[既定値の取得]

Add-PSSnapin Microsoft.SharePoint.PowerShell
$webApplication=Get-SPWebApplication "http://sp2013"
$webApplication.SuiteBarBrandingElementHtml

上記コマンドを実行すると下記のような出力が得られます。

<div class="ms-core-brandingText">SharePoint</div>

ということで、単純にHTMLが記載されているだけなので、下記のようにして変更できます。

$webApplication.SuiteBarBrandingElementHtml="<div class='ms-core-brandingText'>オフィスアイ社内ポータル</div>"
$webApplication.Update()

ちなみに、この設定はSharePoint Webアプリケーション単位の設定であるため、たいていの場合、組織全体のサイトで一括設定しかできません。

SharePoint 2016 では? 

SharePoint 2016 ではどうだろう? と検証してみました。SharePoint 2016での表示は次の通りです。

SuiteBarSP2016

2013と同様にSuiteBarBrandingElementHtmlプロパティは取得できます。しかし、SuiteBarBrandingElementHtmlの値を更新しても、何も変化しない。これは仕様なのかは不明ですが。そのためSharePoint 2016 では表記の変更はSuiteNavBrandingTextプロパティを利用しましょう。

$webApplication.SuiteNavBrandingText="オフィスアイ"
$webApplication.Update()

  SuiteBarSP2016-update

SharePoint 2016 では次のコマンドを実行すると Office 365 と同様にロゴを表示することもできます。

$webApplication.SuiteNavBrandingLogoNavigationUrl = "http://sp2016-a/sites/SiteBranding"
$webApplication.SuiteNavBrandingLogoTitle = "オフィスアイ デモサイト"
$webApplication.SuiteNavBrandingLogoUrl="/_layouts/15/images/officei/office-i-logo.png"
$webApplication.Update()

SuiteBarSP2016-update2

元の設定に戻す場合はSuiteNavBrandingTextやSuiteNavBrandingLogoNavigationUrlなど使用したプロパティはそもそも既定値が空であるため、空の値("")を代入するだけです。

 

以前、SharePoint Online のモダンUIとクラシック UI の切り替えについて次の記事を書きました。

もう少し、詳細に説明した方がよさそうなので補足します。切り替え方法は次の3つがあります。

  1. Office 365 の SharePoint Online の管理者が、SharePoint 管理センター上で既定の設定をする。既定値は "モダンUI"。
    そのため、原則すべてのサイトの既定値は可能であれば、リストやライブラリはモダンUIになる(カスタマイズがされていたり、モダン UI に対応していないお知らせリストなど一部は除く)。
  2. Office 365 の SharePoint Online の管理者が、SharePoint Online の PowerShell コマンドレットを使って、サイトコレクションまたはサイト単位でUIの既定値を設定する。
  3. サイト コレクションの管理者またはサイトの管理者はリストやライブラリ単位でUI設定を変更する

上記の手順は次の資料に掲載されていますが、2について少し補足します。

リストまたはドキュメント ライブラリの既定の環境を新しい環境またはクラシック環境に切り替える

2は、PowerShell を使う方法ですが、SharePoint のクライアント サイドのAPI を使うため、JavaScript などでも実装できます。結局は、各サイトでモダン UI 設定が既定になっていて、これを無効にするフィーチャーが存在しています。このフィーチャーは、サイトコレクション用とサイト用と2種類あるのですが、それぞれ Hidden 設定になっているフィーチャーであるため、GUIからはアクティブ化や非アクティブ化はできません。これを PowerShell を使って、操作しようというのが上記のリンク先の PowerShell スクリプトです。

各フィーチャーIDは次の通りです。

  • サイトコレクションのフィーチャーID : "E3540C7D-6BEA-403C-A224-1A12EAFEE4C4"
  • サイトのフィーチャーID : "52E14B6F-B1BB-4969-B89B-C4FAA56745EF"

ですから、これらのフィーチャーのアクティブ化と非アクティブ化を JavaScript からでも操作できます。

これをヒントに、サイトの管理者レベルでサイト単位で一括してUI設定を変えられる SharePoint アドインを作ってみました。

ちょこっとしたツールですので、上記のヒントがあれば手軽に開発できるでしょう。ちなみに、弊社「オフィスアイ ラーニング ポータル」のサブスクリプションを購入いただいている方は、自由にご利用いただけます。開発は苦手という方は、弊社までお問い合わせください。