2011年10月20日木曜日

App-V オフライン利用について




App-V オフライン利用について

App-V を利用しているクライアントPCでは、サーバーに接続できなくても。仮想アプリの利用が可能になっています。

NotePCを使っていて出張中でも App-V は利用できるのです。

この機能をオフライン利用と呼びます。

このオフライン時の利用を考えたときに、どの様に設定するかは大きく分けると以下の3パターンがあります。




  1. 完全オフライン利用(スタンドアロン)
    初めからサーバーを利用しない( App-V サーバーなし)
    スタンドアロンモード
  2. 一時的なオフライン利用を許可する
    社内ネットワークなどの App-V サーバーと接続できる環境を前提に
    出張などの一時的なオフライン状態でもアプリが利用できるモード
  3. オフライン利用を許可しない
悩ましい事に、3パターンのうち1つしか設定できません。
この仮想アプリは、1にしたい、別のアプリは2にしたい
とかできません。
なので、デスクトップ系のPCは3にする。持ち出し利用があるNotePCは
2にする等の設定になってしまいます。


-----------------------------------------------------------------------
【完全オフライン利用(スタンドアロン)】
SCCM2007 などの配布システムと組み合わせて、App-V サーバーから配信せずに
直接クライアントPCに仮想アプリケーションを配備する場合に利用するモードです。
または、シーケンサーで作成したMSIファイルを直接クライアントPCに導入することも
できます。
・メリット
既存の電子ソフトウェア配布システム(SCCM2007等)基盤を利用できる。
App-V サーバーを新たに導入する必要がない。
・デメリット
App-V サーバーがないために App-V サーバーでできる事が
できません。(当たり前ですが)
アプリの管理や配信するユーザーグループ、
バージョンアップ、ショートカットの作成先の変更、
ファイルの関連付けの変更、App-V 独自のライセンス管理、
レポート機能等

設定方法:
インストール時のオプションである程度可能だったり、
グループポリシーで管理できるようですが
結果的にはレジストリに設定されるので、レジストリを中心に設定例を書きます。

HKLM¥SOFTWARE¥Microsoft¥Softgrid¥4.5¥Client
Configuration¥AllowIndependentFileStreaming = 1
Configuration\ApplicationSourceRoot = 値なし
Configuration¥RequireAuthorizationIfCached = 0
Permissions¥ToggleOfflineMode = 0  ※この値は推奨値です
Network¥AllowDisconnectedOperation = 1
Network¥LimitDisconnectedOperation = 0  ※この値は推奨値です
Network¥Online = 0

1つめのポイントは、RequireAuthorizationIfCached =0です。
スタンドアロンの場合は100%キャッシュされている前提となります。
この設定の意味は、「100%キャッシュされている場合にApp-Vサーバーへの認証どうする?」です。
0は認証しない
1は認証する

したがって、完全オフラインモードの場合は、0にしないとダメです。

2つめのポイントは、AllowIndependentFileStreaming = 1です。
スタンドアロンの場合は、仮想アプリケーションストリーミングファイル(*.SFT)から
アプリケーションを100%キャッシュすることになります。
この設定の意味は、「ディスクにあるSFTファイルから100%キャッシュすることを許可する?」です。

0は許可しない:
App-Vサーバー等からのストリーミングのみを許可することになります。

1は許可する:
ファイル共有やHDD等にあるSFTファイルをキャッシュできるようになります。
もちろんApp-VサーバーからもOKです。


3つめのポイントは、AllowDisconnectedOperation = 1です。
スタンドアロンの場合は必ずオフラインモードになるので
1を設定します。(非接続操作と呼ばれます。)

0はオフラインを許可しない(サーバーとの接続必須)
1はオフラインを許可する

-----------------------------------------------------------------------
【一時的なオフライン利用】
出張時や App-V サーバーに障害が発生してしまった場合等のサーバーと接続できない
場合の利用が可能です。
既定で有効になっています。
 アプリ起動時に認証を受けた日時から90日間 ”そのアプリ”の起動が
 許可されます。
※たくさん仮想アプリがあると、有効期間はバラバラになります。
また、1回も認証を受けていないアプリはオフラインで起動できません。
必ず、1回 App-V サーバーから認証を受けないとダメです。

・メリット
App-V サーバーが必須になるので、App-V サーバーで管理できる機能が利用できます。
出張時や App-V サーバーに障害が発生してしまっても仮想アプリの利用が可能です

・デメリット
App-V 独自のライセンス管理機能にある、同時利用数の制限が厳密になりません。
例)同時1に制限している状態
1台目のPCがアプリを起動します。(オンライン状態)
1台目のPCでネットワークケーブルを切断します。(オフライン状態)
そしてこの人は、そのまま出張に出かけます。
しばらく待ちます。1分30秒くらい。
App-V サーバーが切断されたことを感知して貸し出し中になっているライセンス1を
回収します。
2台目のPCでアプリを起動します。(オンライン状態)→起動します。
出張に行った人がPCをシャットダウンし、次の日にPCを起動します。
アプリを起動します。(オフライン状態)→起動します。(90日はOK)
このように厳密性を求める場合は、問題になることが考えられます。

設定方法:
既定で有効になっているので特別な設定をしなくてもOKです。
90日間有効なのは App-V クライアントの以下の設定によるものです。

レジストリは以下です。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Network
DOTimeoutMinutes
DWORDで129600が設定されています。
129600=90d x 24h x 60min
GUIでは日数を設定しますが、レジストリを直接編集すれば分単位でも可能です。

その他: App-V サーバーはアプリの起動履歴をレポートできます。
オフライン時での利用アプリのログもレポートできる仕組みがあります。
具体的には、オフライン時には、端末に起動履歴が貯まり
オンラインになったタイミングで、「サーバーの更新」が正常に行われると
溜め込んだログをサーバーに送信しているからです。


-----------------------------------------------------------------------
【オフライン利用を許可しない】
App-V サーバーとの接続を必須にする機能です。
あまり使うことはないですが、厳密に App-V 独自の同時利用数制限を行いたい場合に
使うかもしれません。

・メリット
App-V 独自のライセンス管理の同時利用数制限が厳密になる。
オフライン=持ち出されたPCでは利用を制限できる。

・デメリット
App-V サーバーに接続できない環境で利用できない。
App-V サーバーに障害が発生すると即アウト
オフラインモードが有効であれば90日間のうちにサーバーを復旧させれば
被害を小さくできるかもしれないってことです。

設定方法:
GUIで行う場合は、「非接続操作を許可する」のチェックを外します。(OFFにする)
レジストリは以下です。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Network
AllowDisconnectedOperation = 0

------------------------------------------------------------------------
環境: App-V 4.6SP1(4.6.1.20870)にて確認しています。
参考:
にあるMicrosoft Application Virtualization 4.5 ADM テンプレートが詳しいです。
直リン
http://download.microsoft.com/download/2/f/9/2f91f2b2-8cad-4ac4-9290-12e6d080f86b/App-V_ADM_Template.docx





簡単に書こうと思ったら長くなってしまった。。。
謝辞:「仮想化でプリセールスしてるSEの一日」さんのレイアウトに感銘を受けてます。パクリです。すいません。
http://d.hatena.ne.jp/ogawad/