ラベル Lync の投稿を表示しています。 すべての投稿を表示
ラベル Lync の投稿を表示しています。 すべての投稿を表示

2014年2月6日木曜日

[SQL Server] ミラーリングされたDBについて、プライマリDBのみトランザクションログバックアップ(切り捨て)を行うT-SQL文

Lync ServerのバックエンドDBをミラーリングした場合、トランザクションログの肥大化による障害を回避するため、定期的なトランザクションログバックアップが必要となります(参考KB)。プライマリとミラーのスイッチを考慮すると、ミラーを構成するSQL Serverの両インスタンスでバックアップを実行するのが確実ですが、その場合ミラーDBに対するバックアップは失敗し、ログにエラーが出力されます。

エラーそのものは製品仕様に基づくため問題ではないものの、他のエラーが埋もれてしまう懸念と気分の問題から、ミラーリングされたDBのステータス(プライマリかミラーか)を取得し、プライマリの場合のみトランザクションログバックアップを実行するT-SQL文を作成しました。これをSQL Server Agentで毎時実行することで、ラボ環境にて余計なエラー出力なくトランザクションログを切り捨てることができています。ラボ環境では切り捨てだけできればよかったのでバックアップ先をnullデバイスにしていますが、バックアップデータが必要な場合でも簡単に変更して再利用可能です。

-- T-SQL文開始 --
declare @database_name sysname
declare principal_databases cursor
    local static read_only forward_only
    for select name
    from sys.databases d, sys.database_mirroring m
    where d.database_id = m.database_id
    and m.mirroring_role_desc like 'PRINCIPAL'
    order by name
open principal_databases
fetch next from principal_databases into @database_name
while @@fetch_status = 0 begin
    backup log @database_name to disk = N'NUL'
    fetch next from principal_databases into @database_name
end
close principal_databases
deallocate principal_databases

-- T-SQL文終了 --

2014年2月4日火曜日

[Lync] ラボ環境でPBXを利用するには

AsteriskNOWとX-Liteを使うことで、Lync Server 2010 / 2013のラボ環境で、PBXを利用した機能検証・テストを手軽に行うことができるようになります。導入・設定までの詳細な手順は、以下の記事が参考になります。

Series: Exchange 2013 and Lync 2013 Integration with AsteriskNOW PBX Pt. 1
Series: Exchange 2013 and Lync 2013 Integration with AsteriskNOW PBX Pt. 2
Series: Exchange 2013 and Lync 2013 Integration with AsteriskNOW PBX Pt. 3

以下、記事に沿ってHyper-V上のラボ環境に導入・設定してみて気づいた注意点です。

  • 記事ではメモリ1GBとありますが、512MBでも設定後の状態で約半分空きがあるので、軽めの利用であればそれで十分そうです。

  • ベースがCentOSであるため、Hyper-Vの統合サービスを簡単に導入できます。それにより、レガシーでないネットワークアダプターも利用できるようになります。

  • インストール時には、ネットワークアダプターがないとインストールが中断されてしまうため、最低1つのレガシーネットワークアダプターが必要です。Hyper-Vの統合サービスを導入してレガシーでないネットワークアダプターを追加した後は、レガシーネットワークアダプターは削除しても問題ありません。

  • レガシーネットワークアダプターはインストール時にeth0として認識され、削除された後もeth0が他のネットワークアダプターに割り当てられることはありません。私はそれが気になったので、以下のファイルでMACアドレスが指定されている個所を編集し、eth0の割り当てを変えました。
    /etc/udev/rules.d/70-persistent-net.rules
    /etc/sysconfig/network-scripts/ifcfg-eth0

  • 私の場合、記事通りの設定ではSIPがTCPでListenしませんでした。記事のコメント欄でも報告されていますが、/etc/asterisk/sip_custom.confにtcpenabled=yesを追加してサービスを再起動したところ、TCPでListenされるようになりました。

2012年3月22日木曜日

[Lync] ADでアカウントが無効化されてもLyncクライアントを使用できてしまうケースについて

海外のブログで興味深い記事を見つけたので紹介します。内容は、ADでアカウントを無効化してもLyncクライアントが使用できてしまう仕様の解説と、その対応方法です。
Disabling a User in AD Does Not Disable the User In Lync
記事の要約は以下の通りです。

  • Lync ServerがLyncクライアントを認証する方法には、以下の3つがある。
    • Kerberos
    • NTLM
    • クライアント証明書

  • クライアント証明書は、KerberosやNTLMで認証が成功すると生成されて(有効期間:180日)サーバー側DBとクライアント側証明書ストアに格納され、以降の認証の高速化や可用性向上に寄与する。

  • ADでアカウントを無効化した場合、KerberosとNTLMによる認証はできなくなるが、クライアント証明書は無効化されない。従って、ADでアカウントが無効化されたユーザーであっても、クライアント証明書を使った認証によってLyncクライアントでサインインし、他のユーザーとコミュニケーションすることができてしまう。

  • これを防止するには、ADでアカウントを無効化するだけでなく、Lync Serverでも「Disable-CsUser」コマンドレットを実行し、クライアント証明書の失効とユーザーの無効化を行う必要がある。

なお、元の記事のコメントには、無効化には「Set-CsUser -Enabled $false」の方が属性が削除されず適しているのではないか、というコメントがあります。ただ、以前記事にした通り、「Set-CsUser -Enabled $false」はクライアント証明書を失効させませんので、元の記事にある通り「Disable-CsUser」を実行する必要があります。

[Lync] サービスの識別子を確認するには

Lyncのコマンドレットでは、Identityパラメーターでサービスの識別子を指定することで、プールやサイトよりもさらに限定された範囲で構成を適用することができます。例えば、「New-CsMediaConfiguration」コマンドレットは、Identityパラメーターにサイトの他、音声ビデオ会議、メディエーション、アプリケーションのいずれかのサービスを指定可能です。

Identityパラメーターで指定するサービスの識別子は、「Get-CsService」コマンドレットの実行結果から確認できます。実行例は下記の通り。
> Get-CsService | select Identity

Identity
--------
UserServer:rtc01.contoso.com
Registrar:rtc01.contoso.com
UserDatabase:rtc01.contoso.com
FileStore:rtc01.contoso.com
WebServer:rtc01.contoso.com
ConferencingServer:rtc01.contoso.com ←音声ビデオ会議サービスの識別子
ApplicationServer:rtc01.contoso.com ←アプリケーションサービスの識別子
ApplicationDatabase:rtc01.contoso.com
CentralManagement:rtc01.contoso.com
CentralManagementDatabase:rtc01.contoso.com
FileStore:ARC01.contoso.com
ArchivingServer:ARC01.contoso.com
ArchivingDatabase:ARC01.contoso.com
MonitoringServer:ARC01.contoso.com
MonitoringDatabase:ARC01.contoso.com
EdgeServer:EDGE01.contoso.com
ManagementServer:EDGE01.contoso.com
PstnGateway:GW01.contoso.com
MediationServer:rtc01.contoso.com ←メディエーションサービスの識別子

2012年2月15日水曜日

[Lync] Set-CsUser -Enabled $falseとDisable-CsUserの違い

ユーザーのLyncクライアント利用を停止させたい場合、掲題のコマンドレットのいずれかを実行しますが、これらは下記の通り実行結果が異なります。ユーザーへのSIPアドレスや電話番号の割り当てを維持したい場合はSet-CsUser -Enabled $false、それらをリリースして他のユーザーに割り当てたい場合はDisable-CsUserが適しています。

  • Set-CsUser -Enabled $false
    • Lyncに関するユーザーのAD属性の内、msRTCSIP-UserEnabledをFalseに設定します。その他の属性はそのままです。
    • クライアント証明書を失効させません。

  • Disable-CsUser
    • Lyncに関するユーザーのAD属性(msRTCSIP-*)を全てクリアします。
    • クライアント証明書を失効させます。

[Lync] LyncクライアントがインストールされたPCからLync Web Appで会議に参加するには

Lyncの会議開催通知メールに書かれたURLにアクセスすると、LyncクライアントやLync AttendeeがインストールされたPCでは、それらが優先で起動されます。しかし、URLの末尾に「?sl=」を付加してアクセスすることで、優先での起動を回避して、Lync Web Appで会議に参加することができます。URLの例は下記の通りです。
https://meet.contoso.com/user01/7FSJC8W2?sl=
Lync Web Appは機能が劣るため、LyncクライアントやLync AttendeeがインストールされたPCで積極的に使う機会は少ないと思いますが、テストやトラブルで切り替える必要が生じた場合には、上記方法でアンインストール/再インストールの手間を省けます。

2012年2月3日金曜日

[Lync] ダイヤルインユーザーの名前を録音させる機能を無効にするには

Lync Serverではダイヤルインで会議に参加するユーザーのなりすましを防止するため、PINを使用しないユーザーに対しては、会議参加前に名前を音声で記録させ、それを主催者側で確認する機能が備わっています。デフォルトで有効になっているこの機能を無効にするには、「Set-CsDialInConferencingConfiguration」コマンドレットを下記の通り実行します。
Set-CsDialInConferencingConfiguration -Identity Global -EnableNameRecording $false
このコマンドレットでは他にも、ユーザーが会議に参加/退出した時のアナウンスに関する設定を行うことが可能です。詳細はTechNetを参照。このコマンドレットによる設定は、Lync Server Control Panelから確認・変更することはできない(対応する画面なし)ようなので、設計・展開時に漏れないよう注意が必要です。

2012年2月1日水曜日

[Lync] ユーザーがサインアウトした日時を取得するには

TechNet Forumの投稿より。以前ユーザーのサインイン日時を取得する方法を記事にしましたが、監視サーバーを展開済みであれば、サインイン日時に加えてサインアウト日時も監視用DB(LcsCDR)から取得できます。SQL文のサンプルは下記の通り。
select u.UserUri, r.RegisterTime as "Sign-in time", r.DeRegisterTime as "Sign-out time" from LcsCDR.dbo.Registration r inner join LcsCDR.dbo.Users u on r.UserId = u.UserId
サインイン日時とサインアウト日時が分かれば、ある期間にユーザーが合計何時間サインインしていたかを割り出して、ユーザーの利用度合いを測る、といった応用が考えられます。

2012年1月28日土曜日

[Lync] Lync Serverを構築したノートPC

Lync Serverを構築したノートPCのスペックは以下の通りです。

Model:Dell Latitude E6410
CPU:Core i5 M560 2.67GHz (Dual-core)
Memory:8.0GB
HDD:232GB + 149GB
OS:Windows Server 2008 R2 Enterprise Edition (64-bit)

また、仮想化ソフトウェアはVirtualBoxを使用しました。

[Lync] アーカイブ/監視サーバーの展開

フロントエンドサーバーを展開後、Step-by-Step インストール ガイドの内、「Lync Server 2010 ステップバイステップ ガイド Enterprise Edition アーカイブおよび監視サーバー編」に沿って、Lync Serverのアーカイブ/監視サーバーを展開しました。展開時に気付いた点/ハマった点は以下の通り。

  • 「Enterprise Edition」とありますが、フロントエンドサーバーをStandard Editionで展開していても全く問題なくガイドを流用できます。

  • ガイドではアーカイブサーバーと監視サーバーを別立てする構成になっていますが、1台のサーバーに同居させることも可能です。
    同居させる場合は、Topology Builderでアーカイブサーバーの設定と監視サーバーの設定を一度に行なってからトポロジーを公開すると、その後のLync Serverコンポーネントのセットアップを1度で済ませることができて手間を減らせます。

  • アーカイブ/監視サーバー用DBをホストするSQL Serverでは、ネットワーク構成でTCP/IP接続を有効にしておきます。無効の場合はアーカイブ/監視サーバーのセットアップが失敗します。SQL ServerのDeveloper Editionでは既定で無効になっているので、特に注意が必要です。

  • 監視サーバーレポート用のSQL Server Reporting ServicesおよびそのDBは、監視サーバーや監視サーバー用DBと同じサーバー/インスタンスに配置する必要はありません。

[Lync] バックエンドDBのFQDNをコマンドレットから取得するには

手前味噌ですが、TechNet Forumの投稿より。Lync Server Manageme Shellから「Get-CsService」コマンドレットを下記の通り実行することで、フロントエンドプールが関連付けられているバックエンドDBのFQDNを取得できます。
Get-CsService -PoolFqdn <プールのFQDN> -UserServer | Select-Object UserDatabase

[Lync] アーカイブされたコンテンツを閲覧するには

アーカイブされたIMや会議の入退室記録、およびファイルを閲覧するには、「Export-CsArchivingData」コマンドレットを実行してエクスポートします。必須オプションのみ指定する場合は下記の通り実行します。
Export-CsArchivingData -DBInstance <アーカイブ用DBサーバーのFQDN&インスタンス名> -OutputFolder <出力先フォルダー> -StartDate <開始日>
実行後、P2Pや会議のセッション単位で出力先フォルダーにOutlook Express Electronic Mail (EML) ファイルが生成されるので、Outlookで開きます。

もしOutlookがインストールされていないマシンで閲覧したい場合は、拡張子を.emlから.mhtに変更してIEで開くことで、IMや会議の入退室記録などテキスト部分のみ閲覧することが可能です。

2012年1月26日木曜日

[Lync] アドレス帳が正常にダウンロードできるかを確認するには

Lync Clientはサインイン後、既定で0~60分の間でランダムに待機時間をおいてから、バックグラウンドでアドレス帳のダウンロードを開始します。これは、朝の業務開始時など負荷が集中するタイミングで、アドレス帳のダウンロード処理がLync Serverやネットワークにもたらす負荷を時分割するための仕組みです。

しかし、アドレス帳のダウンロードが失敗してトラブルシュートをしている時には、即時でダウンロードの可否を確認できた方が便利です。即時で確認するには、ブラウザから下記URLにアクセスします。
【アドレス帳ダウンロード確認用のURL】
https://<Web servicesのFQDN>/abs/handler/<アドレス帳のファイル名>
例:https://rtc01.contoso.com/abs/handler/C-0fba-0fbb.lsabs
ダウンロードが可能な場合は、ファイル保存のダイアログが表示されます。ダウンロードが不可能な場合はエラーが返るので、その内容によって、ネットワークの問題なのか証明書の問題なのかといった切り分けを行うことが可能です。アドレス帳のファイル名は、フロントエンドプールの共有フォルダ配下(下記)を参照し、その中から任意の一つを指定します。
【アドレス帳ファイルの格納場所】
\\<共有フォルダ>\1-WebServices-1\ABFiles\00000000-0000-0000-0000-000000000000\00000000-0000-0000-0000-000000000000
なお、クライアント側のレジストリで「GalDownloadInitialDelay」のパラメーターを0に設定することで、サインイン後即座にダウンロードを実行させることも可能です(詳細は下記KBを参照。OCSのKBですが、Lyncにも当てはまります)。ただ、トラブルシュート時は、エラーの切り分けが可能な上記の方法が有用かと思います。
Network performance issues that are caused by Global address list (GAL) file downloads or by GAL delta file downloads in Office Communicator 2007 R2 

2012年1月23日月曜日

[Lync] ユーザーが最後にサインインした日時を取得するには

Lyncでユーザーが最後にサインインした日時は、Lync ServerのDB上に格納されており、簡単なSQL文で取得することができます。詳しい方法は下記サイトを参照。
How to Get the Last Time a User Registered with a Front End
注意すべきは、OCSではバックエンドDBに格納されるが、Lync Serverではフロントエンドのローカル構成ストア(RTCLOCALインスタンス)に格納されるようになったという点です。

ユーザーが最後にサインインした日時を定期的に取得し、過去1週間に1度でもサインインしたユーザーの数を集計する等しておけば、Lyncがどれだけユーザーに普及しているかの概況を把握するのに使えます。

2012年1月22日日曜日

[Lync] フロントエンドサーバーの展開

Lync Serverは製品概要だけでなく、インストール手順も各コンポーネントごとに公開されており、初学者でも簡易に環境を構築することが可能です。
Step-by-Step インストール ガイド
このインストールガイドを元に、ノートPCの仮想環境上にLync Serverを構築してみました。今後しばらくは、構築中に気付いた点やハマった点を記事にしていきたいと思います。

最初に、「Lync Server 2010 ステップバイステップ ガイド Standard Edition 編」に沿って、Lync Serverのフロントエンドサーバーを展開しました。展開時に気付いた点/ハマった点は以下の通り。

  • Lync Serverでは、AD DSと証明書インフラが必須となります(※)。ガイドでは手順が省略されているので、不慣れな人には下記リンク先が参考になるでしょう。

  • Exchange Serverの展開が必要となるのは、フロントエンドサーバー展開後、Lync ClientからExchange Serverとの連携機能を利用したり、Outlook+Lync Add-inで会議の招待メールを送るためです。
    従って、Exchange Serverの展開はフロントエンドサーバーの展開後でも構いませんし、前記機能の確認が不要であれば展開しないという選択肢もありです。
    なお、Exchange Serverの展開手順は下記サイトの「インストール編」を参照。

  • ガイドでは触れられていませんが、Exchange Serverを展開する場合、DNSでAutodiscoverを構成しないと、Lync ClientからEWS(Exchange Web Service)への接続が失敗します。詳細は下記サイトを参照。

  • これもガイドでは触れられていませんが、手順「Lync Server Systemのインストール」前に、DNSに「dialin.contoso.com」と「meet.contoso.com」のAレコード(※)を登録してください(IPアドレスはフロントエンドサーバーのもの)。
    登録しない場合、これらをURLに含むフロントエンドサーバーのWebサービスに対して、 Lync ClientやAdd-inからのアクセスが失敗します。
    一応、Topology Builderでトポロジーを公開後、to-doリストで注意を喚起されますが、ガイド通りに進めていると見落としてしまうと思います。
    ※CNAMEレコードでもいいかと思うのですが、MS公開情報上はAレコードと指定されているので。