ひと目でわかる Office 365 サイトカスタマイズ&開発編

「ひと目でわかる Office 365 サイトカスタマイズ&開発編」が 10/13 に発売されます!

SharePoint Online (Office 365)、SharePoint Server 2016 に対応した内容となっており、SharePoint サイトの 「カスタマイズと開発」をテーマに幅広い内容について解説しています。
・ デザイン カスタマイズ
・ JavaScript を用いたカスタマイズ
・ PowerShell の利用
・ SharePoint アドイン開発
・SharePoint Framework
・PowerApps
・Microsoft Flow

含めたい内容がたくさんあり、でもページ数との兼ね合いもあり、、
前作同様に章ごとのレベル感がまちまちになってしまった点はあるのですが、その分 幅広い内容を1冊にカバーしておりますので、前バージョンの 「ひと目でわかる SharePoint 2013 サイトカスタマイズ&開発編」と同じく、SharePoint サイトのカスタマイズや開発を行う方向けの入門~中級レベルの参考書として手にしていただければと思います。

https://www.amazon.co.jp/dp/482225352X

  • 単行本: 452ページ
  • 出版社: 日経BP社 (2017/10/13)
  • 言語: 日本語
  • ISBN-10: 482225352X
  • ISBN-13: 978-4822253523
  • 発売日: 2017/10/13

 

本日見本誌も届きました。
S__141459467
Office 365、SharePoint に関するセミナー・研修をイルミネート・ジャパンにて承っており、定期開催コースや、ご要望に合わせた内容まで幅広く対応しています。また定期開催コースでは、Office 365 や SharePoint 活用、PowerApps、Microsoft Flow に関する新コースも予定しています。
本書の内容をベースにしたカスタム研修も承っておりますので、どうぞよろしくお願いいたします。

奥田

広告

Japan SharePoint Group 勉強会#25

今日、2017年2月11日に、Japan SharePoint Group 勉強会#25 でセッション担当させていただきました。

私は 「Excel + SharePoint」 というタイトルで、Excel Online や Excel Services といった Excel 関連の SharePoint 機能について、基本の使い方・使いどころ・機能差をお話させていただきました。 スライド UP します。
クリックでスライド開きます

勉強会で登壇させていただくのは久しぶりだったのですが、ユーザーの立場の方から管理、IT Pro、開発者とさまざまな立場の SharePoint ユーザーが70名近く!も参加されており、有意義な時間をすごさせていただきました。
また参加したいです!
主催、事務局のみなさま、参加いただいた皆様、ありがとうございました。

 

SharePoint Framework client-side web パーツ開発のファースト ステップ

SharePoint Framework は、SharePoint の新しいページ/Web パーツ モデルです。Modern UI とか新しい UI エクスペリエンス等とよばれていますが、SharePoint Online では、リスト/ライブラリ/ページの新しい UI の提供が始まっています。

■ 新しいページ概要 (作成・編集)

1.新しいページを作成する場合、[設定] – [ページの追加] をクリックします。

1
2.ページが作成され、編集モードで開きます。

2
3.タイトルをつけて、

3
4.Web パーツの挿入も可能です。

 4.png
5.配置した Web パーツは、設定メニューから Web パーツの編集画面を開き、設定変更が可能です。

5.png

これまでの Web パーツの設定画面とは少し違い、[適用] や [OK] をクリックしなくても、設定内容が適用されることが確認できます。

 

6. [発行] をクリックして、ページを発行します。

6.png


ページ ファイルは [サイトのページ] ライブラリに格納され、設定によりトップページにすることも可能

7.png

 

■ SharePoint Framework 開発ツール

開発ツールについて、詳細は https://dev.office.com/sharepoint/docs/spfx/tools-and-libraries にありますが、下記を利用します。


・ TypeScript
SharePoint Framework で開発するクライアントサイド Web パーツの開発は、TypeScript クラス、モジュール、
インターフェースを利用します。

  ・ Node.js、NPM
SharePoint client-side developmet tools は NPM パッケージ マネージャーを利用しています。

  ・ Gulp
ビルド プロセスに Gulp を利用します。

  ・ Yeoman generators
新しいプロジェクトを作成する際に利用します。

 

■ 開発を行う前に: 開発環境の準備

開発に利用するコード エディターはなにを利用してもいいと思いますが、すでに私の PC にインストールされている Visual Studio Code を利用した手順をご紹介します。

   Visual Studio Code のインストールはこちらから https://code.visualstudio.com/download

開発環境に必要なツールを順番にインストールします。

1.Node.js (Long Term Support (LTS) version)
https://nodejs.org/en/ より、ダウンロードしてインストールします。

2.windows-build-tools

  Node.js をインストールすれば、NPM (Node Package Manager) もインストールされるため、下記コマンドでパッケージ名を指定してインストールします。

npm install -g –production windows-build-tools

   installtool1

3. Yeoman と gulp
Yeoman は node.jsベースで動くスキャフォールディングツールです。下記コマンドでインストールします。

npm install -g yo gulp

4.Yeoman SharePoint Generator

npm install -g @microsoft/generator-sharepoint

■ 開発を行う前に: Office 365 テナントの準備

SharePoint Framework の開発を試す際、Office 365 テナントが必要です。また先行リリースが有効になっているかどうかを確認ください。

・ Office 365 管理センターで、[組織のプロファイル] より先行リリースを有効に設定してください。
  先行リリース

■ 簡単な Client-side Web パーツを作ってみる (指定したリストのアイテム一覧)

さて、では簡単な Client-side Web パーツの開発を行ってみましょう。

 Step 1 プロジェクト作成

   Yeoman でクライアント サイド Web パーツ作成時に必要なフォルダーやファイルを生成させます。

1.Node.js のコマンド プロンプトを起動します。

2.プロジェクト フォルダーを作成したいディレクトリーに移動して、
   dev1

3.新しいプロジェクト フォルダー作成します。

md test-webpart

   dev2

4.作ったプロジェクト フォルダーに移動して、

cd test-webpart

   dev3

5.Yeoman SharePoint Generator で、中身を生成します。

yo @microsoft/sharepoint

  途中で、Web パーツ名や説明、framework 選択が表示されますが、すべて既定値で、[Enter]

   dev4

6.しばらく待つと、プロジェクトが生成されます。
  dev5

   プロジェクトを作成したフォルダー内を確認すると、こんな感じです。
   dev6

Step 2  テスト実行

   プロジェクトの初期状態で、ローカルでテスト実行を行ってみます。

1.HTTPS エンドポイントを利用して実行されるのが既定です。開発環境ローカルに証明書をインストールします。
(すでに行っている場合は、必要ありません)

     Node.js のコマンド プロンプトで次を実行します。

gulp trust-dev-cert

2.次のコマンドで、実行します。

gulp serve

   https://localhost:4321 がブラウザーで起動します。
テストページとして利用できる Workbench /temp/workbench.html が開きます。
  dev7

3.Web パーツを追加してみます。
  dev8

  設定メニューを開き、プロパティに入力した内容が、Web パーツ内に反映されることが確認できます。

     dev9

また Workbench は、テスト実行中、既存の SharePoint サイトに /_layouts/15/workbench.aspx を指定しても開けます。
  dev10

このままテスト実行したまま、ソースコードの内容を確認し、編集を加えていきます。

Step 3  プロジェクト内容 基本確認

プロジェクトを Visual Studio Code で開いてみます。

1. Visual Studio Code を起動し、[ファイル] メニュー – [フォルダーを開く] でプロジェクト フォルダーを指定し、開きます。

2. src/wenparts 内に、基本のファイル群が確認できます。
  dev11

3. HelloWorldWebPart.ts を開いてみます。

基本は Basic ClientWebPart クラスを継承して作成し、合わせて Web パーツ名やプロパティ定義を行う定義ファイルが必要です。サーバーサイドの Web パーツをソリューションで開発する際や、アプリパーツを SharePoint Add-ins で開発するときと似ていますね。

  dev12

      ・ BaseClientSideWebPart クラスを継承しています。
・ render() メソッドに、Web パーツ内の内容が含まれています。
${this.properties.description} 部分は、プロパティの description を参照しています。

4.Web パーツの設定画面で変更が可能なプロパティの定義を確認します。
既定でプロパティ画面には、テキストボックスが1つ表示されています。定義を確認してみましょう。
  dev13

    ・ HelloWorldWebPart.ts ファイル内の頭にある import
      dev14

    ・ HelloWorldWebPart.ts ファイル内 propertyPaneSettings プロパティ
     dev15

    ・ IHelloWorldWebPartProps.ts
     dev16

    ・ マニフェスト HelloWorldWebPart.manifest.json
     dev17

 

Step 4  プロパティを追加してみる

プロパティを追加して、画面に表示してみます。

1.HelloWorldWebPart.ts ファイル内の頭にある import に、次を追加

,PropertyPaneCheckbox, PropertyPaneDropdown, PropertyPaneToggle

   dev18

2. HelloWorldWebPart.ts ファイル内 propertyPaneSettings プロパティを、次のように変更します。

protected get propertyPaneSettings(): IPropertyPaneSettings {
  return {
pages: [
{
header: {
description: “設定してください。”
},
groups: [
{
groupName: “設定グループA”,
groupFields: [
PropertyPaneTextField(‘description’, {
label: “リスト名を設定”
}),
PropertyPaneTextField(‘test1’, {
label: ‘複数行テキスト’,
multiline: true
}),
PropertyPaneCheckbox(‘test2’, {
text: ‘チェックボックス’
}),
PropertyPaneDropdown(‘test3’, {
label: ‘ドロップダウン’,
options: [
{ key: ‘カテゴリーA’, text: ‘カテゴリーA’ },
{ key: ‘カテゴリーB’, text: ‘カテゴリーB’ },
{ key: ‘カテゴリーC’, text: ‘カテゴリーC’ },
{ key: ‘カテゴリーD’, text: ‘カテゴリーD’ }
]}),
PropertyPaneToggle(‘test4’, {
label: ‘トグル’,
onText: ‘On’,offText: ‘Off’
})
]
}]
}]
};
}

    dev19

3. IHelloWorldWebPartProps.ts を次のように変更します。

export interface IHelloWorldWebPartProps {
description: string;
test1: string;
test2: boolean;
test3: string;
test4: boolean;
}

    dev20

4. マニフェスト HelloWorldWebPart.manifest.json 内のプロパティバッグを次のように編集し、既定値を設定します。

“preconfiguredEntries”: [{
“groupId”: “d2f78fea-15d7-474c-8b5e-c56a7825c51f”,
“group”: { “default”: “Under Development” },
  “title”: { “default”: “HelloWorld” },
“description”: { “default”: “HelloWorld description” },
“officeFabricIconFontName”: “Page”,
“properties”: {
“description”: “HelloWorld”,
“test1”: “サンプルテキスト”,
“test2”: true,
“test3”: “カテゴリーA”,
“test4”: true
}
}]

   dev21

5. HelloWorldWebPart.ts ファイル内 render() に次を追加します。

<p class=”ms-font-l ms-fontColor-white”>test : ${this.properties.test1}</p>
<p class=”ms-font-l ms-fontColor-white”>test1 : ${this.properties.test2}</p>
<p class=”ms-font-l ms-fontColor-white”>test2 : ${this.properties.test3}</p>
<p class=”ms-font-l ms-fontColor-white”>test3 : ${this.properties.test4}</p>

  dev22

6.すべて保存し、テスト実行中の画面で確認してみます。

  dev23

 

Step 5  SharePoint リスト アイテムを取得・表示してみる

指定したリストのリスト アイテムを一覧する機能を追加してみます。

1.HelloWorldWebPart.ts ファイル内に、次のインターフェイスを追加します。

export interface ISPLists {
value: ISPList[];
}
export interface ISPList {
Title: string;
Id: string;
Description: string;
}

2. HelloWorldWebPart クラス内に、次のメソッドを追加します。

private _getListData(): Promise<ISPLists> {
return this.context.httpClient.get(this.context.pageContext.web.absoluteUrl + ‘/_api/web/lists/GetByTitle(\”+this.properties.description+’\’)/Items’)
.then((response: Response) => {
return response.json();
});
}
private _renderListAsync(): void {
this._getListData().then((response) => {
this._renderList(response.value);
});
}
private _renderList(items: ISPList[]): void {
let html: string = ‘<table>’;
html += `<th>ID</th><th>Title</th><th>Description</th>`;
items.forEach((item: ISPList) => {
html += `<tr><td>${item.Id}</td><td>${item.Title}</td>
<td>${item.Description}</td></tr>`;
});
html += `</table>`;
const listContainer: Element = this.domElement.querySelector(‘#spListContainer’);
listContainer.innerHTML = html;
}

3.render()を次のように変更します。
render

4. HelloWorld.module.scss に次を追加します。

.listTable table{
border-collapse: collapse;width:100%;margin-top:5px; }
.listTable th{
padding: 6px;  text-align: left;  vertical-align: top;  color: #333;
background-color: #eee;   border: 1px solid #b9b9b9;  }
.listTable td{
padding: 6px;  background-color: #fff;  border: 1px solid #b9b9b9;  }

5.すべて保存し、テスト実行中の画面で結果を確認してみます。
Web パーツ設定画面で指定したリスト名の、リストアイテムを取得して、表示しています。
※ 上記コードでは、同じサイト内の指定したリストに対して、ID、Title、Description 列を取得しています。
※ ローカル環境の HTML での実行では、結果は得られません。SharePoint サイト内
の /_layouts/15/workbench.aspx を利用して結果を確認します。

      dev24

6.テスト実行を止める場合は、Ctrl + S で。

 

 

長くなってきたので、今回はここまでにします。
SharePoint Framework でのクライアント サイド Web パーツの開発を試す参考手順にいただければ幸いです。

クライアント サイド Web パーツ は、SharePoint Add-ins で開発するアプリ パーツと違って、iframe で動作しているわけではありません。そのためカレント ユーザーのコンテキストでブラウザー上で実行されます。ユーザー向けの簡単な機能だったら、コンテキストの受け渡しだのアクセス許可だのめんどくさいことを考えなくてもよい分、SharePoint Add-ins よりも、こちらのほうがよっぽどわかりやすく開発できそう。

また既存の SharePoint ページでの利用も可能だそうです。
既存の SharePoint ページ (従来の UI) で利用できるように展開する方法とか、Office Graph API 使った内容とか、Office UI Fablic  使ってみる内容とかふれてみたいなと思ってます。

SharePoint 開発は、オンプレ環境限定のサーバー サイドコードで拡張を行う 「ソリューション」、SharePoint 外部で動作するように開発する 「SharePoint Add-ins」 と現在2種類の手法があります。
それに 「SharePoint Framework」 が追加されてくることで、どういったときにどの開発方法を利用するか、さらに考慮が悩ましくなってきそうです。SharePoint Framework はまだプレビューですが、変更点等これからも確認していきたい内容です。

SharePoint Visual Studio によるアプリ開発 っていう SharePoint 開発者向けのセミナーを定期的に開催してるのですが、、SharePoint Framework が正式リリースされたら、別セミナーにするか、現行のセミナーに内容を追加するか、悩みます。。受講する方からすると、SharePoint 開発のあれもこれも、1回の受講で理解できたほうがいいはず?

SharePoint Server 2016 単一サーバー (検証) 環境構成メモ

SharePoint Server 2016 の検証環境 構築・設定メモです。検証環境なので単一サーバー ファームにしているため、インストールと初期構成は特別なことはなにもありませんが、全機能を動作検証できるようにするためには、設定しておかなければいけないことが結構たくさんあるので、メモとしてまとめておいたもの、UP します。 なんだか長いのでインデックスつけておきます。

 

■ SharePoint Server 2016 インストール

  • インストール要件は下記を確認「TechNet SharePoint Server 2016 のハードウェア要件およびソフトウェア要件」 https://technet.microsoft.com/ja-jp/library/cc262485(v=office.16).aspx
  • ドメイン参加、別サーバーで SQL Server 2014 SP1 のインストールは事前に行っています。 ※ 私は別サーバーにしましたが、検証環境なのでよい!ってことであれば、SQL は SharePoint と同居も可
  • SQL Server のインストールは必須です。    「TechNet SharePoint Server 2016 で使用されなくなった機能と削除された機能https://technet.microsoft.com/ja-jp/library/mt346112(v=office.16).aspx 1.Prerequisiteinstaller.exe を利用して、前提条件をすべてインストール・構成 (再起動も)。 
    pre1 pre2
    pre3 pre4

    2.SharePoint Server 2016 のインストール (プロダクトキーの入力あり) 。終了後、構成ウィザードは実行しない

    ins1 ins2
    ins3 ins4

    3.Language Pack のインストール

    ins5 ins6

 まずはインストールを行いました。SharePoint Server 2013 と大きな違いはありません。 インストール時に、サーバーの種類で 「スタンドアロン」 が利用できなくなったことくらいです。

■ 構成ウィザードの実行

構成ウィザードを実行して、単一サーバーファームとして構成します。 1.  構成ウィザードの起動 conf1
2.[新しいサーバー ファームの作成] を選択 3.[データベース サーバー] に DB サーバー名、DB アクセスアカウントとしてあらかじめ用意したドメイン アカウントを指定 conf2
4.  パスフレーズを指定
conf3
5.  サーバー役割で、[単一サーバー ファーム] を指定 conf4
6. 
全体管理のポート番号を任意に指定 conf5
7.  内容確認し、次へ 8.構成が終わるまでまつ。 conf8

■ 全体管理で [このファームのサーバーの管理] を確認してみる

● [役割] と [準拠] という列が追加されています CA1

  – [役割] : 構成時に選択したサーバーの役割が表示されているようです。 – [準拠] : サーバーの役割に沿っているかどうかが表示されるようです。

よくみると、[状態] が 「アップグレードを利用可能」 に。さらに Health Analizer にも、同様のエラーが 「次のデータベースには、現在の SharePoint ソフトウェアよりも古いバージョンが含まれていますが、これは下位互換性の範囲内です: SharePoint_AdminContent_XXXXXXXXXXXXXX.」 CA2

検索すると、下記 KB が見つかりました。 「 “Upgrade Available” status in new SharePoint Server 2016 farm」 https://support.microsoft.com/en-us/kb/3157397

KB に記載がある解決方法は↓

1. Get-SPWebApplication <Central Administration URL> | Get-SPContentDatabase | Upgrade-SPContentDatabase を実行して、問題とされている DB をアップグレード

2. 製品構成ウィザードを PSConfig で実行 PSConfig.exe -cmd upgrade -inplace b2b -wait -force -cmd applicationcontent -install -cmd installfeatures -cmd secureresources

CA3

古いバージョンの製品なんてインストールしているはずがないので、???でいっぱいですが、上記実行後は、[状態] 列は問題なくなりましたので、よしとします。

■ ファーム構成ウィザード実行

サービス設定を行いたいので、ファーム構成ウィザードを実行します。 1.  ウィザードを開始する CA4
2.サービスアカウントを指定し、サービス アプリケーションとサービスの選択内容を確認し、[次へ] UPS は外しました。
3.しばらく待つ
4.[サイト コレクションの作成] 画面が表示されたら、ルート サイト コレクションを作成する 5.ファーム構成ウィザードが完了 CA5

下部に、[SharePoint 2016 ハイブリッド構成] という内容が追加されてます。 CA6

ここから Office 365 の [OneDrive とサイトの機能を構成する] 画面にジャンプするだけなので、またあとから必要な時に設定できます。よって、スキップ。

■ UserProfile Service Application 作成

1.  全体管理で [サービス アプリケーションの管理] より [新規] – [UserProfile Service Application] をクリック
2.必要な内容を指定し、作成

■ グローバル検索センターとして利用する検索センターサイトの作成

ファーム構成ウィザード内で作成した SharePoint – 80 内のルート サイト コレクション内に検索センター サイトを作成しておきます。あとで検索管理にて、グローバル検索センターとして設定するためです。もちろん別のサイト コレクション内など、任意の場所に作成して OK です。この内容は SharePoint Server 2013 と変わりありません。

1.  ルート サイト コレクションのトップ レベル サイトを開きます。ついでにこのサイトは [すべてのユーザー] に閲覧権限を付与しておきました。
検索センター作成1
2.サイト コレクション機能の [発行インフラストラクチャ] をアクティブ化
3.サブサイトとして [エンタープライズ検索センター] テンプレートを利用して新しいサイトを作成

■ 個人用サイト用に Web アプリケーション作成、個人用サイトのホスト作成

この内容も SharePoint Server 2013 と変わりありません。

1.  全体管理でアプリケーション構成の管理内にある [Web アプリケーションの管理] を開く
2.[新規] をクリックし、新しい Web アプリケーションを作成
3.作成した Web アプリケーション内にルート サイト コレクションとして、個人用サイトホストを作成する作成時、サイト テンプレートを [個人用サイトのホスト] を選択するだけです。
4.[Web アプリケーションの管理] に戻り、一覧から作成した Web アプリケーションを選択し、[セルフサービス作成] をクリック。セルフサービス サイトの作成を [オン] に変更しておきます。

■ 検索管理の基本設定

 Search Service Application の構成も、大きな変更点はありません。

SharePoint Server 2016 で機能強化ポイントのひとつに 「ハイブリッド」 がありますが、検索に関する新機能の目玉はハイブリッド検索です。SPS と SPO 両方のコンテンツをいっしょくたに検索できるってやつです。これらを検証したい場合は、Cloud Search Service Application を PowerShell によって作成が必要です。 オンプレのみの検索機能を検証するだけでよければ、Search Service Application の基本設定だけで OK なので、とりあえずまずは Search Service Application の基本設定を行っておきます。

1.  全体管理で [サービス アプリケーションの管理] より [Search Service Application] をクリックして検索管理画面を開く 2.既定のコンテンツ アクセス アカウントを設定
3.グローバル検索センターの URL で、[検索センター URL の設定] をクリックし、あらかじめ作成しておいた検索センターサイトの URL/Pages を指定
4.コンテンツ ソースの [ローカル SharePoint サイト] ソースの編集画面で、クロールスケジュールを設定しておく

■ プロファイル同期の設定

 プロファイル同期については、少ししくみが変更されています。

SharePoint Server 2013 で利用されていた User Profile Synchronization Service はなくなっています。AD インポートか、外部 Identity Provider (Microsoft Identity Manager)のどちらかが利用できます。AD インポートは高パフォーマンスかつ、設定がとっても簡単ですが、インポートは AD から SP プロファイルに対しての一方通行のみです。また複数のドメイン フォレストはサポートしていません。 MIM を利用すると別途 MIMのインストール・構成が必要な分、設定は複雑になります。その分、双方向での同期ができたり、写真を自動的にインポートしたり、LDAP 以外もサポートしたり、複数フォレストをサポートしたり、、と機能はさらに充実するようです。ここでは AD インポートで設定した内容です。

1.  全体管理で [サービス アプリケーションの管理] より [UserProfile Service Application] を選択し、リボンから [管理者] をクリック。ひとの検索ができるように既定のコンテンツ アクセス アカウントに、[検索クローラー用ユーザーデータの取得] 権限を付与しておきます。

2.[UserProfile Service Application] をクリックして、プロファイルサービスの管理画面を開く

3.[同期設定の構成] を開くと、既定が AD インポートになっていることが確認できます。 UP1

4.[同期接続の構成] を開き、[新しい接続の作成] をクリックする。

5.[新しい同期接続の追加] 画面で、必要な内容を入力し、[OK] UP2

6.プロファイル サービスの管理画面に戻り、[プロファイルの同期の開始] をクリックし、[完全同期の開始] を選択して [OK] をクリックする

7.  「プロファイルの同期状態」 が 「同期中」 から 「アイドル」 になるまで待つ

8.同期された内容を確認したい場合、[ユーザー プロファイルの管理] で確認可能 CA7

■ 個人用サイトのセットアップ

1. 全体管理で [サービス アプリケーションの管理] より [UserProfile Application] をクリックして、プロファイル サービスの管理画面を開く

2.[個人用サイトのセットアップ] をクリックし、[優先する検索センター] にグローバル検索センターの URL、[個人用サイトのホストの場所] に個人用サイトホストとして作成しておいたサイトの URL、[個人用サイトの場所] に管理対象パスとして利用する文字列を設定

■ Secure Store Services 初期設定

こちらも SharePoint Server 2013 と変更はなさそうです。キーの生成と、他のサービス アプリケーションの設定で利用するため、ターゲットアプリケーションを1点つくっておくことにします

1.  全体管理で [サービス アプリケーションの管理] より [Secure Store Service] をクリックし、SSS 管理画面を開く

2.[新しいキーの生成] をクリックし、パスフレーズを入力して [OK] する

3.ターケット アプリケーション管理の [新規作成] をクリック

4.ターゲット アプリケーション ID、表示名、連絡先を任意に指定、種類は [グループ] を選択し、[次へ]
SSS1 

5.フィールド名は変更せず、[次へ]

6.このターゲット アプリケーションの管理者とメンバーを任意に指定し、[次へ] SSS2

7.作成されたターゲット アプリケーションをクリックし、メニューより [資格情報の入力] をクリック。 SSS3

8.このターゲット アプリケーションを利用して外部データソースにアクセスする際の、接続用アカウントを指定しておく (これは必要になってからあとで設定してもよいかもしれません。私はこのあと Visio Service とか BCS を試したいので、外部 SQL Server へ接続可能なアカウントを設定しておきました)

■ Visio Services 初期設定

Visio サービスの無人サービス アカウントを設定しておきます。

1.全体管理で [サービス アプリケーションの管理] より [Visio Graphics Service] をクリックし、Visio Graphics Service の管理画面を開く

2.[グローバル設定] を開き、無人サービス アカウントの [アプリケーションID] に、Secure Store Service で作成しておいたターゲット アプリケーションの ID を指定

■ アプリの構成

SharePoint Add-ins (SharePoint アプリ) や Access アプリを利用できるように構成を行います。 まずはアプリ用ドメインを DNS に構成します。

1.ドメイン コントローラーにログオンし、DNS マネージャーを開く

2.[前方参照ゾーン] を右クリック – [新しいゾーン] をクリックする

3.[新しいゾーン ウィザード] で次のような設定を行う・ [ゾーンの種類] : [プライマリ ゾーン] ・ [ゾーン名] : アプリ用のドメイン名・ 動的更新の設定は、環境に応じて必要な設定を選択

4.前方参照ゾーン内に作成したアプリ用ドメインを右クリック – [新しいエイリアス (CNAME)] をクリック

5.[新しいリソース レコード] ダイアログで、次の設定をして [OK]

       ・ [エイリアス] : *
[ターゲットホスト用の完全修飾ドメイン名] : SharePoint の FQDN App1

次に Subscription Settings Services と App Management Service を構成します。

1.SharePoint 管理シェルで次を実行

$account = Get-SPManagedAccount “<AccountName>”

$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account

$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName SettingsServiceDB

$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc

$appPoolAppSvc = New-SPServiceApplicationPool -Name AppServiceAppPool -Account $account

$appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolAppSvc -Name AppServiceApp -DatabaseName AppServiceDB

$proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc

さらに続いて、アプリ URL の構成をします。

 1.サーバーの全体管理で [アプリ] をクリック

2.[アプリ URL の構成] を開き、設定を行う・ [アプリ ドメイン] : DNS に登録したアプリ用ドメインを指定
・ [アプリ プレフィックス] : 任意の文字列を指定 App2

■ Access アプリ 初期設定

Access アプリを利用できるように構成します。前手順「アプリの構成」 とあわせて必要な内容です。この内容も前バージョンと変更点はありません

1. SQL Server に対して下記を設定しておく
Access Service のサービス アカウントに、dbcreater、securityadmin が必要
SQL Server 構成マネージャーで、TCP/IP と名前付きパイプ プロトコルを有効に
TCP 1433、1434、UDP 1434 ポートの受信可能に (ファイアーウォール)
データベースのプロパティで、詳細設定内にある [包含データベースの有効化] を True に

2. 全体管理で [サービス アプリケーションの管理] より [Access Service] をクリックし、Access Services の管理画面を開く

3. [新しいアプリケーション データベース サーバー] に SQL サーバー名を入れて、[OK] をクリック
※ もし 「RequestCache not yet initialized」 とかいうエラーがでたら、[アプリケーション データベース サーバーを検証する (推奨)] をオフにしてやりなおしてみる。

■ ワークフロー構成

SharePoint Server 2016 では 2013 と同様に、SharePoint 2010 ワークフローおよび SharePoint 2013 ワークフローが利用でき、ワークフローの編集には SharePoint Designer 2013 を利用します。

SharePoint Server 2013 のときの構成と同様で、SharePoint 2013 ワークフローを利用するためには Workflow Manager のインストール構成が必要です。 まずはインストールと Workflow Manager 構成を

1. http://go.microsoft.com/fwlink/?LinkID=252092 より Web Platform Installer を起動

2. 「Workflow Manager」 で検索し、Workflow Manager 1.0 だけ [追加] をクリックし、[インストール] をクリック

3. 同意して、インストールを実行、終わるのを待つ

4. インストールが完了し、[続行] をクリックすると、Workflow Manager 構成ウィザードが起動するが、まだインストールが必要なものがあるので、閉じる (このまま構成すると、結局エラーになる)

5. 再起動かける

6. Web Platform Installer を起動し、今度は 「Service Bus」 で検索。Service Bus 1.0 CU1 を入れる

7. 再起動 (めんどくさすぎる)

8. Web Platform Installer で次に 「Workflow Manager」 で検索し、今度は Workflow Manager 1.0 CU 3 を入れる

9. やっと Workflow Manager の構成を開く (スタートメニュー内にあるかと)

10. 構成ウィザードを進めて、構成終わらす
WF4

Workflow Manager が構成できたら、SharePoint ファームとの接続を PowerShell で設定します。

1. SharePoint 2016 管理シェルを開き、次のコマンドを実行

Register-SPWorkflowService -SPSite http://URL -WorkflowHostUri http://URL:12291 -AllowOAuthHttp -Force

無事構成が終わると、全体管理で [サービスアプリケーションの管理] より [Workflow Service Application] を開くと、こんな感じになるはずです。

WF5

■ Project Web App 初期構成

Project Server は Project Web App として SharePoint Server 2016 に組み込まれました。 全体管理でサービス アプリケーションも作成されていることも確認して、 Proj1

早速動くかどうかだけ確認しようと、サイト コレクション機能の [Project Web App の設定] をアクティブ化すればよいのかと思い、やってみると下記エラーに。 Proj2

別ライセンスキー? SharePoint Server インストールにはシェアポのライセンスが必要なはずなので、ってことは SharePoint ライセンス+Project Server ライセンスが必要ってことなのですね。 調べてみると、SharePoint Server のライセンスも Enterprise が必要なようですね。SPS に組み込まれたわけではなく、同梱されるようになったってことですね。少し勘違いをしていました。個人的に Project Online はつかったことがあるのですが、Project Server はインストールすらしたことがなかったので、このあたり勉強になりました。

TechNet 「Project Server 2016 のソフトウエア要件」 https://technet.microsoft.com/JA-JP/library/ee683978(v=office.16).aspx

前置きが長くなりましたが、ライセンスキーの設定を行います。

1.SharePoint 管理シェルで、Enable-ProjectServerLicense を実行し、キーを登録

再度、サイト コレクション機能の [Project Web App の設定] をアクティブ化すると、またエラー・・・ Proj3 

UI から本当にできないかどうかまでは試し切れてはいませんが、下記記事を読んでためしたところ、PowerShell でPWA サイト テンプレートを利用してサイト コレクションを作り、サイトコレクション機能も PowerShell でアクティブ化すれば OK でした。 TechNet 「Project Web App を新しいサイト コレクションと共に展開する (Project Server 2016)」https://technet.microsoft.com/ja-jp/library/ee662105(v=office.16).aspx

1. PowerShell で PWA サイトテンプレートを使って、サイト コレクション作成

New-SPSite -ContentDatabase ContentDBName -URL SiteCollectionURL/PWASiteName -Template pwa#0

2. サイト コレクション機能をアクティブ化

Enable-SPFeature pwasite -URL SiteCollectionURL/PWASiteName

■ Office Online Server インストール構成

Office Online Server は Office Web Apps Server 2013 の後継です。

SharePoint Server 2016、Exchange Server 2016、Skype for Business Server と連携するよう構成可能で、SharePoint Server 2016 と利用することでブラウザーで Office ファイルの閲覧・編集が行えます。また大きな変更点として、SharePoint Server にあった Excel Services は Excel Online の機能になったため、Excel Services の機能を利用するためには Office Online Server が必要になりました。

下記 URL あたりが参考になります
TechNet 「Office Online Server」  https://technet.microsoft.com/ja-jp/library/jj219456(v=office.16).aspx 「Plan Office Online Server」 https://technet.microsoft.com/ja-jp/library/jj219435(v=office.16).aspx 「Deploy Office Online Server」 https://technet.microsoft.com/ja-jp/library/jj219455(v=office.16).aspx 「Configure Office Online Server for SharePoint Server 2016」 https://technet.microsoft.com/ja-jp/library/ff431687(v=office.16).aspx

インストールを行い、SharePoint Server とのバインドを PowerShell で行うという構成の流れは、以前のバージョンの Office Web Apps Server と同様です。 前提条件は下記です。

  • SharePoint Server 2016 と同じハードウエア要件
  • OS は Windows Server 2012 R2
  • ドメインメンバーであること
  • その他サーバーと同居は不可 (ドメイン コントローラー上のインストールも×)
  • Office はインストールしない

1. OS インストール、ドメイン参加

2. 前提ソフトウエアをインストール

Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,InkandHandwritingServices,NET-Framework-Features,NET-Framework-Core,NET-HTTP-Activation,NET-Non-HTTP-Activ,NET-WCF-HTTP-Activation45,Windows-Identity-Foundation

3. 再起動

4. さらに次をインストール

5. Office Online Server をインストール

6. Language Pack インストール
※ 構成したあとに LangPack を入れたら、やり直しになるそうなので、構成前に入れておきます。

7. Excel Online で Kerberos 委任が必要な場合は、[サービス] で 「Windows トークンサービスに対するクレーム」 を自動開始にしておきます。

8. PowerShell で下記を実行しファーム構成

HTTP の場合

New-OfficeWebAppsFarm -InternalURL “http://servername&#8221; -AllowHttp -EditingEnabled

HTTPS の場合

New-OfficeWebAppsFarm -InternalUrl “https://servername(FQDN)&#8221; -ExternalUrl “https:// servername(FQDN)” -CertificateName ” Certificatename” -EditingEnabled

9. ブラウザーで http://servername/hosting/discovery を開いて、WOPI-discovery が返ってきたら OK 10. HTTP の場合、Excel Online で Secure Store Service 利用するなら、下記も実行

Set-OfficeWebAppsFarm -AllowHttpSecureStoreConnections:$true

  次に SharePoint とのバインドを設定します。下記を参考に

1. SharePoint 側で SharePoint 管理シェルで次を実行

HTTPS の場合は最後の -AllowHTTP は必要なし

New-SPWOPIBinding -ServerName <ossservername(FQDN)> -AllowHTTP

HTTP の場合、合わせて下記を実行

Set-SPWOPIZone -zone “internal-http” $config = (Get-SPSecurityTokenServiceConfig) $config.AllowOAuthOverHttp = $true $config.Update()

2. Excel SOAP API を有効に (Excel Online でのスケジュールデータ更新に必要)

$Farm = Get-SPFarm $Farm.Properties.Add(“WopiLegacySoapSupport”, “OSSServer(FQDN)URL/x/_vti_bin/ExcelServiceInternal.asmx”); $Farm.Update();

ここまでで Office Online 機能が確認できるはずです。

■ 送信メールの構成

次に通知メールが送れるように送信メールを構成します。ほとんど設定方法は変わっていませんが、SharePoint 2016 の新機能の中に送信メールがらみの内容が2点。

  • 「既定値以外の SMTP ポートの利用」 :送信メール構成時に、必要に応じてポート番号が設定できるように変更されています。
  • 「SMTP 接続の暗号化」 利用する場合、SMTP サーバーは TLS 1.0、TLS 1.1、TLS 1.2 をサポートしている必要あり。あわせて当たり前ですが、SMTP サーバーにサーバー証明書が必要 SharePoint サーバー側で SMTP による接続暗号化を使用するように設定が必要

送信メールの構成を行う際に指定する SMTP サーバーは、SP から接続可能 & SP から受信が可能 & 匿名 SMTP メール送信が可能であればなんでもよいと思いますが、下記に新機能に関する注意点まとめておきます。

  • Exchange Server を利用する場合 [受信コネクタ] で TLS を有効にしておかないと、SMTP 接続の暗号化設定はできない
    送信2
  • SharePoint ファーム内で SMTP サーバーを構成する (SharePoint サーバーで、[役割と機能の追加ウィザード] で [SMTP サーバー] を入れておき、SMTP サーバーのプロパティで、[匿名アクセス] を有効に等必要な設定は前提) 送信コネクターで TCP ポート番号を指定。

1. 全体管理で、[システム設定] – [送信メール設定の構成] をクリックする 2. 送信 SMTP サーバー、アドレス、文字セットを設定し、[OK] をクリックする

  • 送信 SMTP サーバー : サーバー名 or IP アドレスを指定
  • 差出人アドレス、返信先アドレス:任意の内容を指定
  • TLS 接続暗号化の使用 : 2016 新機能 TLS 接続が利用できる場合は 「はい」
  • SMTP サーバーのポート : 2016 新機能 SMTP サーバーのポートは 25 以外も指定できるように
  • 文字セット: 任意の内容を指定 送信1

■ 受信メールの構成

こちらは以前のバージョンと設定方法変わってません。 1.サーバー マネージャーで [役割と機能の追加] を利用し、SMTP サーバー機能をインストール 受信1

2.全体管理で、[システム設定] – [受信メール設定の構成] をクリック

3.[受信メールの設定] 画面で、受信メールを有効化し、表示アドレスを指定する 受信5 受信6

受信メールのドロップフォルダーをいちいち指定しなくてよくなってますね。

 

もし MIM でのプロファイル同期とか、ハイブリッドからみの機能を試したければ、まだ追加で設定することがありますが、だいたいこれくらいで SharePoint Server 2016 の一通りの基本機能を試せるのではと思います。

SharePoint Server 2016 MinRole 構成メモ

前回単一サーバーファームとして検証環境を構築する際のメモを投稿しました。今回は、MinRole を利用した構成メモです

MinRole について

SharePoint Server 2016 では、新しいインフラ概念として MinRole というしくみが導入されています。インストール時に構成ウィザードで、あらかじめ定義されたロールを指定することで、そのロールに基づいたサービスが自動的に構成され展開作業が簡略化できること、またロールが明確になることでファームパフォーマンスが最適化できること、各サーバーの役割 (ロール) が明確となるため、パフォーマンス予測がしやすくなることが利点とのことです

参考 [TechNet MinRole の概要]
https://technet.microsoft.com/ja-jp/library/mt346114(v=office.16).aspx
[TechNet SharePoint Server 2016 の MinRole と関連つけられているサービスの説明]
 https://technet.microsoft.com/ja-jp/library/mt667910(v=office.16).aspx

● 選択できるロール

ロール名 説明
フロントエンド エンドユーザーからの要求を処理。フロントエンド Web サーバーとなり、遅延が短くなるように最適化されている
アプリケーション バックエンドの要求 (ジョブ、検索クロール要求とか) を処理。スループットが高くなるよう最適化されている
検索 検索サービス用。
分散キャッシュ 分散キャッシュ用。フロントエンド間のユーザー要求を負荷分散
カスタム カスタムの役割を割り当てる場合。サービスの構成はされない。
単一サーバー ファーム 単一サーバーに全サービスを実行。開発環境とか評価環境に便利

SharePoint Server 2016 では、検証時等に利用する単一サーバー構成、新しく登場した MinRole を利用した構成、そして従来通りサーバーでどのサービスを稼働させるかを構成するカスタム構成と、インストールの方法は大きく3種類となります。

下記は、MinRole を利用して、AD、SQL、SP1(フロントエンド)、SP2(アプリケーション)、SP3(分散キャッシュ)、SP4(検索) の構成でファーム構成を行ったときのメモです。

 

1.事前準備

  • SQL サーバーのインストール
  • AD に SharePoint のデータベース アクセスアカウント、サービス用アカウント用意
  • SharePoint の4台について

OS インストール、ドメイン参加
・ 
Prerequisiteinstaller.exe を利用して、前提条件をすべてインストール
・ 
SharePoint Server 2016 のインストール
Language Pack のインストール

 

2.フロントエンドの構成  

製品構成ウィザードを利用して、フロントエンドの役割を構成します。

1. SP1 (フロントエンド) のマシンで、製品構成ウィザードを起動し、[次へ]
1_thumb1
2. さらに [次へ]
2_thumb1
3. ダイアログが表示されたら、[はい]
3_thumb1
4. [新しいサーバー ファームの作成] を選択し、[次へ]
4_thumb2
5. データベース サーバー、データベースアクセス アカウントを指定し、[次へ]
5_thumb1
6. パスフレーズを指定し、[次へ]
6_thumb1
7. サーバーの役割として、[フロントエンド] を選択し、[次へ]
7_thumb1
8. 全体管理をホストするポート番号を任意に指定し、[次へ]
8_thumb1
9. 内容を確認し、[次へ]
9_thumb1
10. 構成中の間待つ
11. 「構成成功」 を確認し、[完了]
10_thumb1

全体管理で確認するとこんな感じに
11_thumb1

 

3.アプリケーションの構成

製品構成ウィザードを利用して、アプリケーションの役割を構成します。

1. SP2 (アプリケーション) のマシンで、製品構成ウィザードを起動し、[次へ]
2. ダイアログが表示されたら、[はい]
3. [既存のサーバー ファームへの接続] を選択し、[次へ]
22_thumb2
4. データベース サーバー名を指定し、[データベース名の取得] をクリック
データベース名が挿入されたことを確認して [次へ]
23_thumb1
5. パスフレーズ (1台目の構成ウィザードで指定したもの) を入力し、[次へ]
24_thumb1
6. サーバーの役割として、[アプリケーション] を選択し、[次へ]
25_thumb2
7. 内容を確認し、[次へ]
26_thumb1
8. 構成中の間待つ
9. 「構成成功」 を確認し、[完了]
27_thumb1

全体管理見てみると、
28_thumb1

 

4.分散キャッシュの構成

製品構成ウィザードを利用して、分散キャッシュの役割を構成します。

1. SP3 (分散キャッシュ) のマシンで、製品構成ウィザードを起動し、[次へ]
2. ダイアログが表示されたら、[はい]
3. [既存のサーバー ファームへの接続] を選択し、[次へ]
4. データベースサーバー名を指定し、[データベース名の取得] をクリック
データベース名が挿入されたことを確認して [次へ]
5. パスフレーズ (1台目の構成ウィザードで指定したもの) を入力し、[次へ]
6. サーバーの役割として、[分散キャッシュ] を選択し、[次へ]
31_thumb1
7. 内容を確認し、[次へ]
8. 構成中の間待つ
9. 「構成成功」を確認し、[完了]
33_thumb1

 

5.検索の構成

製品構成ウィザードを利用して、検索の役割を構成します。

1. SP4 (検索) のマシンで、製品構成ウィザードを起動し、[次へ]
2. ダイアログが表示されたら、[はい]
3. [既存のサーバー ファームへの接続] を選択し、[次へ]
4. データベースサーバー名を指定し、[データベース名の取得] をクリック
データベース名が挿入されたことを確認して [次へ]
5. パスフレーズ (1台目の構成ウィザードで指定したもの) を入力し、[次へ]
6. サーバーの役割として、[検索] を選択し、[次へ]
41_thumb1
7. 内容を確認し、[次へ]
8. 構成中の間待つ
9. 「構成成功」を確認し、[完了]
42_thumb1

 

6.全体管理 確認してみる

さて、全体管理で内容を確認してみます。構成ウィザード終了後、自動的に全体管理が開きますが、4台ともファーム構成ウィザードはいったんスキップして実行していません。

  • [このファームのサーバーの管理]
    [
    役割] が それぞれ表示されています。
    51_thumb1
  • [このファームのサービスを管理]
    image_thumb1
  • [アプリケーション構成の管理] – [サーバーのサービス]
    サーバーを変更しながら、各サーバーでのサービスの状態が確認できます。
    image_thumb3
  • [サービス アプリケーションの管理]
    image_thumb5

7.ファーム構成ウィザード

 ファーム構成ウィザード実行

1. 全体管理で [構成ウィザード] – [ファーム構成ウィザードの起動] をクリック
2. [ウィザードの開始] をクリック
3. 新しい管理アカウントを指定
4. サービスアプリケーションの内容を確認し、[次へ]
5. しばらく待つ
6. [サイト コレクションの作成] 画面が表示されたら、ルート サイト コレクションを作成する
7. ファーム構成ウィザードが完了

最後に、内容確認

● [アプリケーション構成の管理] – [サーバーのサービス]

    – SP01 (フロントエンド)
last1_thumb1

    – SP02 (アプリケーション)
last2_thumb1

    – SP03 (分散キャッシュ)
last3_thumb1

    – SP04 (検索)
last4_thumb1

● [アプリケーション構成の管理] – [サービス アプリケーションの管理]
last5_thumb2

この後、各種機能を利用するための設定がいろいろ必要ですが、MinRole を利用したインストールについてのメモでした。

また 2016/09/26 の Office Blog でアナウンスされていましたが、11月に SharePoint Server 2016 Feature Pack1 が提供されるそうです。
Feature Pack 1 に含まれる新機能の中に、MinRole の機能強化があり、MinRole に 「フロントエンドと分散キャッシュ」 と 「アプリケーションと検索」 が追加されるようです。
MinRole で可用性も考慮すると、4Role×2の8台構成が最小ということになりますが、この機能強化で 2Role ×2 の4台で可能性も考慮した MinRole 最小構成が組めそうです。