15
VM ロールで仮想デスクトップ 環境を作ってみよう 小澤 真之 (@Masayuki_Ozawa)

VM ロールで仮想デスクトップ環を作ってみよう

Embed Size (px)

Citation preview

Page 1: VM ロールで仮想デスクトップ環を作ってみよう

VM ロールで仮想デスクトップ環境を作ってみよう

小澤 真之 (@Masayuki_Ozawa)

Page 2: VM ロールで仮想デスクトップ環を作ってみよう

自己紹介

• 名前

– 小澤 真之

• 参加コミュニティ

– JAZUG / SQLTO に参加させていただいています

• お仕事

– 都内の SIer で主に Microsoft 製品の社内支援をしています

2

Page 3: VM ロールで仮想デスクトップ環を作ってみよう

VM ロールをサーバー用途以外でも使えないか?

• この 2 つを組み合わせて、どこからでも利用できる仮想デスクトップ環境 (ぽいもの) を作れないか試してみました

3

VM ロールは OS のイメージを自分で準備 できるためカスタマイズ可能な範囲が広い

Azure はインターネットにつながれば どこからでも利用することが可能

Page 4: VM ロールで仮想デスクトップ環を作ってみよう

今回試したのはこの 2 つ

• デスクトップ全体ではなく VM ロール上にインス

トールした特定のアプリケーションだけをクライア

ントに表示

特定のアプリケーションだけをクライアントで使用

• インスタンスの初期化が発生しても消えない

My documents や お気に入り

ユーザープロファイルを永続化

4

Page 5: VM ロールで仮想デスクトップ環を作ってみよう

このような環境になっています

5

Azure

VM ロール

インターネット接続環境

Azureドライブ

①インスタンス起動時に Azure ドライブをマウント

②リモートデスクトップ用 ユーザーのプロファイルのパスを

Azure ドライブに指定 (ユーザープロファイルの永続化)

③VM ロールで起動した IE だけをリダイレクト

リモート デスクトップ

接続用ユーザー

Page 6: VM ロールで仮想デスクトップ環を作ってみよう

①インスタンス起動時に Azure Drive をマウント

• インスタンス起動時に実行したい処理は VM ロールアダプターで

実装

VM ロールではスタートアップタスクがない

• Windows Azure API を使用してWindows Azure のランタイム

情報を使用する Windows サービス

• と書きましたが作成方法は通常の Windows サービスと同じ

• PowerShell + タスクスケジューラーで代替することも

VM ロールアダプターってなにもの??

6

Page 7: VM ロールで仮想デスクトップ環を作ってみよう

①インスタンス起動時に Azure Drive をマウント

7

VM ロールアダプターとして作成したサービス インスタンス起動時に自動実行される

マウントされた Azure Drive

Page 8: VM ロールで仮想デスクトップ環を作ってみよう

②プロファイルのパスに Azure ドライブ を指定

• リモートデスクトップのユーザーの移動ユーザープロファイルのパスにAzure ドライブを設定 – VM ロールアダプター内に処理を組み込めると思いますが、

今回はイメージアップロード前に手動でプロファイルのパスを設定しています

8

プロファイルのパスに Azure Drive を指定

Azure ドライブ上に保存された 移動ユーザープロファイル

(ログオン/ログオフ時に同期される)

Page 9: VM ロールで仮想デスクトップ環を作ってみよう

③VM ロールで起動した IE をリダイレクト

• Remote Desktop で Remote App の機能を使用 – 以下のレジストリを変更することでリモートデスクトップ

接続先の特定のアプリケーションだけをリダイレクト可能 • HKLM¥SOFTWARE¥Microsoft¥Windows

NT¥CurrentVersion¥Terminal Server¥TsAppAllowList • fDisabledAllowList (REG_DWORD) : 1

– 特定のアプリケーションに限定してリダイレクトを許可することも可能

• 管理ポータルからダウンロードした RDP ファイルを修正し、起動したいアプリケーションの情報を設定することでアプリケーションの画面だけ表示可能

9

- 以下の記述を追加 - remoteapplicationmode:i:1 remoteapplicationname:s:Internet Explorer remoteapplicationprogram:s:C:¥Program Files¥Internet Explorer¥iexplore.exe

Page 10: VM ロールで仮想デスクトップ環を作ってみよう

他にもこんなことができます

• リモート オーディオでインスタンス上で再生した音声をクライアントにリダイレクト

– 動画の再生は厳しいですが音声だけであれば聞くことが可能なレベル

10

VM ロールはカスタマイズ可能な範囲が 広いので可能性がいろいろ。

なにか面白い使い方がありましたら、 ぜひぜひ教えてください!!

Page 11: VM ロールで仮想デスクトップ環を作ってみよう

参考

11

Page 12: VM ロールで仮想デスクトップ環を作ってみよう

参考)VM ロール アダプターの作り方

• MSDN ≫ Windows Azure の VM ロールのアダプターの開発方法 – http://msdn.microsoft.com/ja-jp/library/gg466226.aspx

※ [アダプターのインストーラーを作成するには] の [Account プロパティ] は [Local System] を設定しないとうまく動きませんでした

• 64 Blog ≫ VMロール アダプターでドライブレター固定のWindows Azureドライブをマウントする – http://blogs.gine.jp/kusa/archives/1575

12

Page 13: VM ロールで仮想デスクトップ環を作ってみよう

参考)sysprep 時の注意事項

• SID は要注意 – Generalize (一般化) したイメージだとローカルに作成したリ

モートデスクトップ用ユーザーの SID (セキュリティ識別子) が初期化のたびに変更され、初期化後は Azure Drive 上のユーザープロファイルが読めなくなります (同姓同名の他人となってしまうため)

– 今回は Generalize しないイメージを使用していますがサポート対象外になるかもしれないので自己責任で…

• Azure Connect でドメイン参加させ、リモートデスクトップの接続にはドメインユーザーを使用するのが良いかもしれません – ドメインユーザーは初期化後も SID 変更の影響なしなので

Generalize 可能 • ユーザー情報は Active Directory に保存されているため

– 参考) ロールがドメインに結合されている場合の Windows Azure Connect の概要 • http://msdn.microsoft.com/ja-jp/library/gg454720.aspx

13

Page 14: VM ロールで仮想デスクトップ環を作ってみよう

参考)アプリケーションだけをリダイレクトする

- レジストリをコマンドで変更 -

reg add "HKLM¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥Terminal Server¥TsAppAllowList" /v fDisabledAllowList /t REG_DWORD /d 1 /f

- RDP ファイルの修正例 -

full address:s:xxxxxxx.cloudapp.net

username:s:xxxxxx

LoadBalanceInfo:s:Cookie: mstshash=xxxxx#xxxxx_IN_0

remoteapplicationmode:i:1

remoteapplicationname:s:Internet Explorer

remoteapplicationprogram:s:C:¥Program Files¥Internet Explorer¥iexplore.exe

14

Page 15: VM ロールで仮想デスクトップ環を作ってみよう

参考)オーディオをリダイレクト

• [Start] → [Administrative Tools] → [Remote Desktop Services] → [Remote Desktop Session Host Configuration] を実行して、[RDP-Tcp] のプロパティを開く

• [Audio and video playback][Audio recording] のチェックを外す

15

チェックを外す