シリーズ RDS : ユーザーごとのインストール (Windows Installer 5.0)

環境 :
Windows Server 2008 R2 (または Windows 7)
Visual Studio 2008 

こんにちは。 (N スぺのようなタイトルですみません、、、)

エバンジェリスト高添 もセミナーなどでご紹介していますが、Windows Server 2008 R2 / Windows 7 におけるさまざまな連携シナリオの中の RDS (Remote Desktop Services) について、ここでは “開発者視点” でご紹介したいと思います。(セミナーの仕込み中ですが、時間が足りるか不安なのでブログに書いておくことにしました、、、)

Windows Server 2008 R2 / Windows 7 では、マシンの仮想化 (Hyper-V)、シンクライアント的な VDI シナリオに加え、”第 3″ のシナリオとして RDS (従来のターミナルサービス) による複数クライアントからの利用シナリオがあり、この点でも大幅な機能強化がおこなわれています。
今回は、そうした数多くの RDS 関連の改善ポイント (例えば、RemoteApp において、Server Manager の起動など、タスクスケジューラのタスクが実行されないように抑制する仕組みなどもあります) の中で、開発者にとっても興味深い 2 つのシナリオをご紹介します。

シリーズ RDS (Windows Server 2008 R2 の RDS) :

なお、ここで述べるテクノロジー (次回ご紹介する内容も含め) は、下記の互換性セミナーなどでも講師の方もご紹介してくれている内容ですので、今後もこうした機会を活用し、新しい OS を有効利用してください。(セミナーなどでは広く紹介されてきた新機能です)

Windows 7 & Windows Server 2008 R2 互換性セミナー :
http://www.microsoft.com/japan/powerpro/ftd/windows7/default.mspx

Windows Installer 5.0 : Per User Installation の概要 

Windows 7 / Windows Server 2008 R2 から導入されている Windows Installer 5.0 では、実はいくつかの新機能がありますが、中でも、ここでご紹介するユーザーごと (Per-User) のインストールサポートは、特に上記の RDS のシナリオで有効活用できます。

新しい msi (Windows Installer) では、MSIINSTALLPERUSER という新しいプロパティを使用することができ、下記の説明の通り、MSIINSTALLPERUSER プロパティを 1 に設定することで、”いままでとは違った” ユーザー単位のインストール方法を提供することができます。(この場合、下記の説明にもありますが、ALLUSERS プロパティを 2 に設定しておく必要があります。)

What’s New in Windows Installer 5.0 :
http://msdn.microsoft.com/en-us/library/dd408114(VS.85).aspx

MSIINSTALLPERUSER プロパティ :
http://msdn.microsoft.com/en-us/library/dd408007(VS.85).aspx

簡単な動作確認 

例えば、特別な設定やカスタムアクションをおこなわない簡単な .msi パッケージ (インストーラパッケージ) を Visual Studio などで作成してみましょう。

そして、Windows 7 または Windows Server 2008 R2 上で、以下の通りコマンドを入力して、インストーラを実行してください。

msiexec /i MatsuSetup1.msi ALLUSERS=2 MSIINSTALLPERUSER=1

すると、 下図の通り、インストール開始の画面が表示されます。

ここで、インストール先のパス名に注目してください。ユーザーフォルダがデフォルトで選択されているのがわかります。

この状態で [次へ] ボタンを押してインストールを続けると、インストールがはじまっても、いままでのようにインストール時に昇格ダイアログは表示されず、インストールのすべてを完了させることができます。(まるで ClickOnce インストールのようです、、、)

このように、単一のインストーラパッケージで、マシンへのインストールと、ユーザー単位のインストールの複数のインストール方法が可能であり、RDS のように 1 台のマシンに複数の目的の異なるユーザーがログインして使用するケースでは有効です。(もちろん、それ以外の目的でも活用できます。)

ただし、もちろん、依存コンポーネント (.NET Framework など) があって、それがインストールされていないケースでは、
あらかじめ管理者権限で依存コンポーネントのインストールが必要になるなど、作り方によって、さまざまなポイントが存在しますので注意してください。(ここでは、あくまでも簡単なサンプルを示したのみです。)

次回は、クライアント レンダリングです。

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s