【Skype for Business Server】Skype for Business Server 2015をインストール Part.3

Part2の続き。

6,トポロジの作成、展開
トポロジビルダーで新しいトポロジを作り、それを公開するよ。トポロジはSfBの設定ファイル的な感じと思ってもらえれば。
といっても、ファイルとして管理されるわけじゃなくて、DBに埋め込まれるっぽいけど。






















7,SfBのインストール

「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\MajorVersion」の値をaから10に変える。詳しくはここを↓

【Skype for Business Server】ローカル構成ストアインストール時に、rewite_2.0_rtx_x64.msiのインストールに失敗する








 

証明書を作成する。
Part1で構築した認証局サーバに対しての要求、インポート、SfBへの割り当てをGUIから一括でできる。

まず、既定の証明書を作成。これは必須。クライアントからの基本的な通信に使う。







次はOAuthTokenIssuerを作成。これはStandard Editionだといらないかも。でも、Exchangeとの通信時に必要かもだから入れといた方がいいかも。








サービスの起動
管理者権限のPowershellでStart-CSWindowsServiceを実行する

※以下メッセージが出力され、RTCSRVが起動しない場合がある。RTCSRVはSfBの核となるサービスでこれが起動しないには、なにも始まらないのだ。

そんなときは、以下コマンドでうまくいくことがある。
DBを最新化している?っぽいけど、いまいちやってることがわからない・・・

 

8,Silverlightのインストール
SfBでは管理コンソールであるコントロールパネルはブラウザベースの操作になっていて、Silverlightを使っていたりする。
インストールせずに、PowershellのCS系コマンドでなんとかならなくもないけど、やっぱGUIで視覚的に見れるのはやりやすかったりする。


とりあえず、これでインストールは完了。
Part4では、SfBを使えるユーザの有効化をやっていく予定だよ。

【Skype for Business Server】Skype for Business Server 2015をインストール Part.2

つぎは、Skype for Business Serverをインストールしていくよ。
インストールするサーバは、ADサーバとは別に用意したWindows Server 2016
基本構成であるStandard Editionで構築するよ。
あと、とりあえずDNSのsrvレコードは登録せず、クライアント側からSfBサーバを指定することにするよ。

 

1,役割機能のインストール
SfBに必要な役割機能をインストールするよ。
GUIでインストールしてもいいけど、Add-WindowsFeatureコマンドレットで一括インストールができるよ。
Powershellを管理者コマンドで起動し、以下を実行

 

2,Shareフォルダの作成
「C:\Share」を作成し、共有のアクセス許可、NTFSアクセス権ともにEveryoneフルコントロールをつけるよ。
インストール時にしかるべき権限に変更されるからセキュリティ云々は気にしなくて大丈夫


 

3,ActiveDirectoryの準備
ここでは、SfB用のスキーマを拡張したり、Skype用管理者権限を持ったグループを作成したりするよ。
SfBが入ったDVDなりISOからSetup.exeを実行する





「ActiveDirectoryの準備」を選択








 

4,単一のStandard Editionサーバーの準備
今回はStandard Editionで構築するのでやっておくよ。


 

5,管理ツールのインストール
今後必要になるトポロジビルダーやSfB用のPowerShellをインストールするよ。


めちゃんこ長くなってきたから続きはPart3で(^^)

【Skype for Business Server】Skype for Business Server 2015をインストール Part.1

自宅の検証環境でインストールしなおしたので、インストール手順を振り返ってみるよ。

Skype for Business Serverのインストール条件として
・ドメイン参加サーバであること
・証明書を発行してもらう必要がある(ActiveDirectory証明書サービスを使う)

なので、環境としては2種類のサーバをWindows Server 2016で作るよ
・AD、証明機関サーバ
・Skype for Business Server(Standard Edition)

ADは構築済、参加済と前提で書いていくよ。
まずは、ADサーバに証明機関をインストールするところを。

ウィザードに従って、役割「ActiveDirectory証明書サービス」をインストール

「証明機関」を選択

「証明機関」を選択

「エンタープライズCA」を選択

「ルートCA」を選択

これで、プライベート認証局サーバが出来上がりです。

【Skype for Business Server】予定表連携の流れ

Skype for Businessでは、Outlookで設定した予定表を取得し、プレゼンス情報(連絡可能、取り込み中など)を変化させる。
とはいっても、クライアントで動作しているOutlookとSkypeが連携しているわけではなくて、SkypeクライアントはEWS接続でExchangeサーバに接続し、予定表をSIP通信で取得する流れになるよ。

Skypeサーバ側のPowershellを使って、「Start-CsClsLogging -Scenario alwayson」を実行して、集中管理ログを取得する。
使い方は、Start-CsClsLoggingで取得開始、Stop-CsClsLoggingで取得終了、Search-CsClsLoggingでログファイル取得といった感じ。以下のように実行するよ。

ログファイルは以下のように出力される。

次は、Skypeサーバ側でログ取得をしつつ、Skypeクライアントでは、予定表を故意に変化させるよ。なにはともあれ、EWS連携ができていることが前提条件になるので、構成情報をチェック。

Outlookの予定表に適当な予定を設定し、Skypeクライアントを再起動。

再起動後、プレゼンス情報が「取り込み中」となる。

ログをStop-CsClsLoggingで止めて解析する。
解析するのは、専用のデバッグツールを使うと分かりやすい。
公式では、Skype for Busieness Server 2015のインストールフォルダに入れましょう。と言われているので、C:\Program Files\Skype for Busieness Server 2015\の下に入れる。
テキストエディタでも見れるけど、デバッグツールではSIP通信のIN/OUTをわかりやすく表示してくれる。
https://www.microsoft.com/en-us/download/details.aspx?id=47263

取得したLogFile.txtをSnooper.exeで読み込むとこんな感じ。
まず、SIP通信の中身を見てみる。availabilityの6500は取り込み中、meetingSubjectは予定表の名前などやり取りしていることがわかる。
※MSDNブログのでは、Out→inの順番だったが、逆になっちゃった。とりあえず、プレゼンスの動きは分かったからいいかな?
ただ、流れとしては、以下っぽい。
1.ExchangeのGetUserAvailabilityでSkypeサーバにプレゼンス情報を送信
2.Skypeサーバは送られてきたプレゼンス情報を連絡先リストに登録しているユーザへ送信

プレゼンスの対応表は以下の通り。

Value Availability
3500 Available
6500 Busy
9500 Do Not Disturb
12500 Be Right Back
15500 Away
18500 Offline

うーん、奥が深いね。

参考サイト

Skype for Business クライアントと予定表の連携について


https://msdn.microsoft.com/ja-jp/library/dd253506(v=office.13).aspx
https://technet.microsoft.com/ja-jp/library/jj687958(v=ocs.15).aspx

【Skype for Business Server】EWS連携がうまくいかないときに確認すること

 

Skype for BusinessではExchange Serverと連携することで、以下機能を拡張することができる

・会話履歴の保存
OutlookやOWAに「会話履歴」フォルダが作成され、そこにメッセージの履歴が保存される

・予定表のプレゼンス機能連携
予定表のスケジュールに合わせて、退席中、連絡可能など自動で状態を変化させる

で、EWSっていうのは、Exchange Web Servicesの略で、ExchangeServerとhttpもしくはhttpsでやり取りするプロトコルのこと。
Skypeでは、EWSを使ってExchangeと連携しているよ。

【確認することその1】
Outlook、OWAで会話履歴フォルダがあるか。
これがあれば、EWS連携はできているはず。

 

【確認することその2】
タスクバーのSkypeアイコンをShift押しつつ右クリックの構成情報の「EWS情報」をチェック。
「EWS状態OK」となっていれば、いいはず。OKとなっていたけど、会話履歴フォルダができていない場合もあったような・・・謎い

 

【確認することその3】
レジストリ「\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Lync\nexuser03@extest.local\Autodiscovery」があるかチェック。
ここのキーは、EWS状態がOKとなれば引っ張られてくるキーっぽい。
autodiscoverの性質的に、ExchangeServerを見つけられたなら、その後はautodiscoverの通信は発生させず、見つけたExchangeServerに対してのみアクセスする動作っぽい気がする。パケットキャプチャを見た限りそうっぽかった。

 

【確認することその4】
AutodiscoverのSRVレコードをエントリしているか。
Skypeでは、EWS接続をする前段階で、ExchangeServerを見つけるために、Autodiscoverというレコードを探しにいくよ。
なので、以下のようなSRVレコードを登録する必要があるよ。

 

【確認することその5】
AutodiscoverのSIPドメイン名をExchangeServerのWebサーバ証明書に登録しているか。
EWSは、443のhttpsでアクセスしにいくので、必要っぽい。
mmc→証明書から確認するとこんな感じ。

参考にしたサイト

LyncとExchangeの連携の落とし穴

Lync と Exchange の統合 EWS part1

【Skype for Business Server】アドレス帳の取得方法

Skype for Business 2016でアドレス帳を取得する方式。
取得方式は2種類あるよ。

・WebSearchAndFileDownload
デフォルトの方式で、SkypeクライアントはGalContacts.dbとGalContacts.db.idxを「%userprofille%\AppData\Local\Microsoft\Office\16.0\Lync\sipドメイン名」フォルダ内に格納し、それを参照する方式

・WebSearchOnly
Skypeクライアントでユーザがアドレス帳検索をすると、その都度SkypeServer側へ問い合わせをする方式

Get-CsClientPolicyのAddressBookAvailabilityで設定確認ができる。

WebSearchAndFileDownloadへ変更

WebSearchOnlyへ変更

MS的にはWebSearchOnlyを推しているみたい。

Skype for Business 2016 のアドレス帳ダウンロードの不具合

【Skype for Business Server】ローカル構成ストアインストール時に、rewite_2.0_rtx_x64.msiのインストールに失敗する

今のプロジェクトでSkype for Business Serverの担当をしてるんだけど、書ける範囲でSkype関連も書いていこうかなと。

サーバー:Windows Server 2016
ミドル:Skype for Business Server 2015、IIS10

タイトルの通り、ローカル構成ストアのインストール時に、以下メッセージが表示されて失敗する場合

一時的に、レジストリ「HKLM\SOFTWARE\Microsoft\InetStp」の
MajorVersionの値を10から7に変えてあげるとうまくいく。

こんな感じに。

InetStpってのは、IIS関連のバージョンみたいで、インストール時にチェックして、対象外のバージョンならはじくみたいなことをやっているんだと思う。なんかWindows Serve 2016とIIS10の組み合わせがいけない模様?
ここに詳しく載ってた。英語だけど。

[solved]Prerequisite Installation failed: RewriteModule