といっても新しいネタがあるわけではなく、App-V開発のBlogはちゃんと見ておいたほうがいいな、という自戒と、可能なら訳しておこうかしらという意思表明。
あと、4.6のベータ版が出ていた。試してみるか。
といっても新しいネタがあるわけではなく、App-V開発のBlogはちゃんと見ておいたほうがいいな、という自戒と、可能なら訳しておこうかしらという意思表明。
あと、4.6のベータ版が出ていた。試してみるか。
お仕事で c# からPostgreSQL 上のデータを扱う可能性があるのでちょっと手をつけてみる。
■テスト機にPostgreSQLサーバ導入
/var/lib/pgsql/data/pg_hba.conf を書き換え(暫定)
[bash]
local all all trust
host all all 172.0.0.0/8 trust
[/bash]
/var/lib/pgsql/data/postgresql.conf を書き換え
[bash]
listen_addresses = ‘*’
[/bash]
設定リロード
[bash]
pg_ctl reload
[/bash]
テスト用DBユーザ作成
[bash]
createuser sample
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
[/bash]
テスト用DB作成
[bash]
createdb sampledb
[/bash]
テスト用テーブル作成
[bash]
psql sampledb
CREAT TABLE sampletable (id serial,name text);
GRANT ALL ON sampletable_id_seq TO sample ;
[/bash]
テストユーザにテスト用テーブルへのアクセス権限をフルで与える
[bash]
grant ALL ON sampletable TO sample;
[/bash]
別のLinux機から接続テスト
[bash]
psql -h <ホスト名> -U sample -d sampledb
[/bash]
Linux 側(というかPostgreSQL側)の作業はここで一段落。
ここからは c# 側。
概ね方向は2系統。ODBCを使うか、npgsql を使うか。なんか、pgOLEDB.dll というものもあるらしい。よーわからん。
とりあえずnpgsqlを、
http://www.postgresql.jp/document/NPGSQL/manual/UserManual_J.htm
を参考にしながら試してみる。
http://pgfoundry.org/frs/?group_id=1000140
から Npgsql2.0.5-bin-ms.net3.5sp1.zip を入手。
展開して、適当なところにおいておく。とりあえずC:npgsqlにおいてみた。
C:Program FilesMicrosoft SDKsWindowsv6.0Abin
にある
gacutil.exe
をつかって
gacutil -i C:npgsqlbinNpgsql.dll
しておく。
まずはコンソールアプリケーションで試してみる。
Vc#2008でコンソールアプリケーションを新規作成。
頭の using が並んでいるところに
using System.Data;
using Npgsql;
を追加。
ぐは、ビルドしてみたらうごかねー。
エラー 1 型または名前空間名 'Npgsql' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 C:UsersXXXXXAppDataLocalTemporary ProjectsConsoleApplication1Program.cs 6 7 ConsoleApplication1
なので、プロジェクト→参照の追加→参照で、C:npgsqlbinNpgsql.dll を追加しておく。
これで「デバッグ開始」でエラーは出なくなった。
この時点でのソースはこんな感じ。
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Npgsql;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
[/csharp]
んでもってMainの中に、接続のための処理を書いておく。全体はこんな感じ。
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Npgsql;
namespace ConsoleApplication1
{
class Program
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=<サーバのIPアドレス>;Port=5432;User Id=sample;Database=sampledb;");
conn.Open();
conn.Close();
}
}
}
[/csharp]
■テーブルに行を追加する処理
※デバッグが終了してしまわないように確認画面を入れた。
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Npgsql;
namespace ConsoleApplication1
{
class Program
{
public static Int32 rowsaffected; // Mainの中においておいたらエラーが出たのでサンプルから変更。
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=<サーバのIPアドレス>;Port=5432;User Id=sample;Database=sampledb;");
conn.Open();
Console.WriteLine(conn.State);
NpgsqlCommand command = new NpgsqlCommand("insert into sampletable (name) values(‘TEST OK’)", conn);
try
{
rowsaffected = command.ExecuteNonQuery();
}
catch
{
Console.WriteLine("It was added {0} lines in table table1", rowsaffected);
}
finally
{
conn.Close();
}
# if DEBUG
Console.WriteLine("続行するには何かキーを押してください・・・");
Console.ReadKey();
# endif
}
}
}
[/csharp]
おおおおお、追加されてるよ。ナイスだ。
■単一の結果が返ってくるものを取得する
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Npgsql;
namespace ConsoleApplication1
{
class Program
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=<サーバのIPアドレス>;Port=5432;User Id=sample;Database=sampledb;");
conn.Open();
Console.WriteLine(conn.State);
NpgsqlCommand command = new NpgsqlCommand("select version()", conn);
string serverVersion;
try
{
serverVersion = (String)command.ExecuteScalar();
Console.WriteLine("PostgreSQL server version: {0}", serverVersion); // これはtry の中に入れてやらないとエラーになった
}
finally
{
conn.Close();
}
# if DEBUG
Console.WriteLine("続行するには何かキーを押してください・・・");
Console.ReadKey();
# endif
}
}
}
[/csharp]
■全ての問い合わせ結果を取得する
データ的に多少面白くなるようにテーブルを用意しておく。
<Linux側作業>
[bash]
CREATE TABLE sampletable2 (name text, yomi text, address text);
INSERT INTO sampletable2 VALUES (‘パンツェッタ 幸平’,'ぱんつぇった こうへい’,'panzetta_kouhei@example.com’);
INSERT INTO sampletable2 VALUES (‘村松 沙知絵’,'むらまつ さちえ’,'muramatsu_sachie@example.com’);
INSERT INTO sampletable2 VALUES (‘田代 恵望子’,'たしろ えみこ’,'tashiro_emiko@example.com’);
INSERT INTO sampletable2 VALUES (‘中島 璃子’,'なかしま りこ’,'nakashima_riko@example.com’);
INSERT INTO sampletable2 VALUES (‘畑中 恵梨香’,'はたなか えりか’,'hatanaka_erika@example.com’);
grant ALL ON sampletable2 TO sample ;
[/bash]
この手のサンプルデータを作るのは http://kazina.com/dummy/ の「なんちゃって個人情報」さんが便利。
ソースはこんな感じ。
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Npgsql;
namespace ConsoleApplication1
{
class Program
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=<サーバのIPアドレス>;Port=5432;User Id=sample;Database=sampledb;");
conn.Open();
Console.WriteLine(conn.State);
NpgsqlCommand command = new NpgsqlCommand("select * from sampletable2", conn);
try
{
NpgsqlDataReader dr = command.ExecuteReader();
int i;
while (dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} t", dr[i]);
}
Console.WriteLine();
}
}
finally
{
conn.Close();
}
# if DEBUG
Console.WriteLine("続行するには何かキーを押してください・・・");
Console.ReadKey();
# endif
}
}
}
[/csharp]
でもってこれをGUIの画面にしたときにどうやってDataGridViewに表示するのかがいまいちわかってないけど、それは又今度。とりあえずデータの出し入れはわかったので今日はここまで。
自分とこの環境では、App-Vに数十個のパッケージを突っ込んでいます。で、クライアント側の動きを見ていると、どーもログイン時にApp-Vサーバとなにかしら喋ってるっぽい。これがコソコソ話しているくらいならいいけどどうやらかなり盛大に喋っているっぽいのでパケットキャプチャしてみたところ、端末1台あたりログイン時にApp-Vサーバとの間で数十MBの通信を発生させていることがわかりました。その中身はほとんどがアイコンファイルの取得。
イマドキの環境だと数十MBなんて大したことないような気もするんですが、これが無線環境になるとかなり影響が大きくて、現状、無線経由のドメインログオンにはモーレツに時間がかかっています。
ざっと出てきた解決策は三つ。
A案:ログイン時にアイコンファイルの更新をしないようにする
B案:パッケージの関連付けを減らす
C案:アイコン自体のサイズを小さくする
A案を実現するためには、クライアント側の「公開サーバの設定」で「ユーザのログイン時に更新」のチェックを外すか、同党の設定をしたプロバイダポリシーを作成する必要があります。で、更新が全然されないんじゃ困っちゃうので、一定の時間ごとに更新させる設定にします。
この設定で試してみたところ、確かに通信量は減るのですが、運用上の問題が二点でてきました。
一つは、最終ログオン日時を保存するレジストリキーが
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSoftGrid4.5ClientDC Serversサーバ名LastUpdate
なんですが、自分とこの場合、大学環境のお約束として環境復元のツールが入っていて、この値が保持されません。なので環境復元が有効だと、やっぱり毎ログオン時に更新に行ってしまいます。
もう一つは、仮に上記の値が何らかの方法で保持できたとしても、結局ノート端末なんかの場合には数時間単位でログオンしない状況が普通にあり得るので、やっぱりログオン時に更新がかかっちゃいます。
B案は、内容的には悪くないのですが、特定の関連付けが必要なのか不要なのかの判断は正直センター側で行うのはかなり難しいです。関連付けそのものでなくてもそれに付随するアイコンを削除しちゃえば関連付けは残ったままでアイコンだけ「不明なアプリケーション」のアイコンになるんだとは思うんですが、やっぱり授業で使っている教員でないと、どの辺まで踏み込むかのさじ加減がわからないのでこれも却下。
そうすると消去法的にC案が残る訳で、とりあえず各パッケージのアイコンサイズを確認してみたところ、なんか、異様にでかいアイコンファイルがぞろぞろ出てきました。調べてみると、一つの ico ファイルに複数のサイズ、色数のアイコンが格納されているんですが、いくつかのアプリケーションでは 256×256 とか 128×128 なんかのとんでもなくでかいアイコンが含まれています。こんなサイズでアイコンの表示しないってば。特に大きかったのが Adobe CS4シリーズと一太郎ビューア。MS-Office 2007 はまだ調べていないですがこれもきっと大きいんではないかと思っています。これは明日確認。
しょうがないので、それぞれのアイコンを一つ一つアイコンファイルを編集できるツールで読んでは大きなアイコンを消す作業をやっています。今日のところは半分くらいで挫折。残りは明日だな。
ということで、App-V案件をお持ちの方は、ほっとくと App-V は起動時に結構なサイズの通信を発生させる、ということを知っておいた方がいいように思います。自分とこの場合は、「App-Vは100%のキャッシュがクライアントにあれば、ログオン時やアプリケーションの起動時には『そのアプリケーションを使っていいかどうか』の認証情報しかやり取りされないので大きな通信は発生しない」と理解していたので(…と某社担当者さんが言っていたし)、正直面くらっています。まぁ、有線環境では大した実害ではないのですが。
ちょっとハマったので後々のためにメモ
ActiveDirectoryから csvde なんかで LastLogon を拾ってくると、1601/01/01からの経過ナノ秒が取得できるけど、Excelで扱うにはこの「1601/01/01からの経過ナノ秒」てのがどうにも扱いにくい。
Excelの日付は1900/01/01からの経過日数なので、単純に考えれば LastLogon の値を10,000,000 で割って(秒にする)、60で割って(分にする)、60で割って(時にする)、24で割って(日にする)やったもの(1601/01/01からの経過日数)に、1601/01/01から1900/01/01の経過日数を引いてやればいいはず。
ただ、Excelでは1900年より前の日付を扱えないから、肝心の「1601/01/01から1900/01/01の経過日数」が何日なのかわからない。
で、さんざん唸っていたんですが、http://okwave.jp/qa3239110.html をみて目からウロコが。
基準となる日付を1000年先に進めて、LastLogonの値を「2601/01/01からの経過日数」として計算することはExcelでも可能。ただ、このままだと結果の日付も1000年先になっちゃう。なので、1000年分の日数(2006/1/1から3006/1/1の日数)をこの値から引いてやるとばっちりなのではないかと。
ということで、あらためて Excel をいじってみると、
1900/1/1 から 2006/1/1 までの日数:256037日
2006/1/1 から 3006/1/1 までの10年間の日数:365242日
なので、最終的には、
<LastLogonのシリアル値>/10000000/60/60/24+256037-365242
で計算できそうです。ただ、閏日なんかの計算がこれで本当にあってるのかはわからないのであくまで近似値ということで。最終ログオン日がいつくらいなのかを知りたいだけなので、この程度の精度でいなば的には十分。
時間がないので走り書きだけ。あとでまとめる予定(といってちゃんとまとめたためしはない)。
Windows Server 2008になって、IIS7 になった影響で、IISの管理画面がかなり変わっている。んでもって、前に書いたやり方とは多少状況が変わっている。
特に、IISを有効にする時に「サーバマネージャ」→「役割サービス」で「IIS管理スクリプト及びツール」はインストールされていないと、App-Vのインストール中に「エラー25120 インストールプログラムは必要なIIS仮想ディレクトリを作成できませんでした。」のエラーが出て、インストールが巻き戻ってしまう。また、「セキュリティ」以下の項目は(必要な範囲で)もりもり追加しておかないと、App-Vの管理コンソールが接続できない。
2008での手順はまた今度。下手すると年度明けかも。
メモメモ。
・App-V でシーケンスしたファイルをインポートしてもうまく動かない場合、App-V Management Console 側で、どの名前のパッケージと紐づいているかを確認する必要がある。
・既存の全く別のパッケージと紐づいている場合、当然クライアント側での起動はうまくいかない
・この場合、OSDファイルに記述されている、SFTファイルのGUIDが重複しているのが原因
・重複の原因はわからないが、シーケンサを再起動してから再シーケンスすると新しいOSDが振られる
あけましておめでとうございます。
あと3ヶ月でシステムリプレイス、ということで、「年が明けてしまいましたねぇ」と妙に景気の悪い挨拶を同僚とか業者さんと交わしてました。うわーどきどき。まぁでも、今費やしている労力はきっと4年間の運用の中で返ってくるはず。
えーと、そんな中、Windows7 のパブリックベータが公開ということで、検証作業の合間に落としてきました。うちだけではなく、今年度末にリプレイスするところは結構微妙な思いで見ているんではないでしょうか。とりあえず、Windows7 については検証を進めたり世間の評判を聞いたりしつつ、場合によってはリプレイスとは別のタイミングでの移行もありなのかなぁ。
先のことはさておき、検証作業が少し一段落したのでESXi にインストールしてみたところ、拍子抜けするくらい簡単にインストール終了。詳しくは明日以降ということで。
Microsoft の App-V こと Microsoft Application Virtualization (旧称 SoftGrid)ですが、なかなか面白げ。ただ、先日も書いたように、
http://www.microsoft.com/japan/systemcenter/softgrid/default.mspx
にあるトライアルガイドをそのまま実行してもなかなかうまくいかないこともあったり。
てことで、自分とこの VMware ESXi サーバ上で仮想マシンたてて色々試しています。とりあえず今日のところは検証環境の準備(サーバの構築→各種インストール→動作確認)までをメモっておきます。どなたかのお役に立てば幸甚です。
・Microsoft Connect ( http://connect.microsoft.com/ ) にサインイン。
「会員制プログラム一覧」→「サーバー」に「Microsoft Application Virtualization」があるので追加する。
・「Microsoft Application Virtualization」の「ダウンロード」の中の「2008/06/17 AppVirt Public RC Release」を選択し、
MSAppVirt_sequencer_setup_4.5.0.1305.exe 25.84MB
MSAppVirt_management_server_setup_4.5.0.1308.exe 21.51MB
MSAppVirt_wd_client_setup_4.5.0.1308.exe 23.16MB
をダウンロード。
.NET Framework のサイト ( http://msdn.microsoft.com/ja-jp/netframework/default.aspx )の左側のメニューから「.NET Framework 2.0 Service Pack 1 (x86)」を選択→ダウンロード。
sgdc:ドメインコントローラ。WindowsServer2003。192.168.10.1。
sgsv:App-Vサーバ。WindowsServer2003。192.168.10.2。
sgsql:SQLサーバ。MicrosoftSQLServer2005。192.168.10.3。
sgcl:App-Vクライアント。WindowsXP。192.168.10.10。
sgseq:App-Vシーケンサ。WindowsXP。192.168.10.20。
App-V Administrators:App-V管理グループ。
<要確認>ここに所属していると、APP-Vクライアントの設定とAPP-Vサーバの設定ができる。
App-V Users:App-V 利用者グループ。ここに所属していると、App-Vクライアントが利用可能。
apManager:App-V管理ユーザ
apUser01:App-V利用ユーザ1
apUser02:App-V利用ユーザ2
apUser03:App-V利用ユーザ3 (App-V Users グループに所属しないテスト用)
・すべての仮想マシンのOSはインストール済みで、WindowsUpdateにより最新の状態になっている
・準備が整った状態で、ESXiでスナップショットを取得している(後々テストに使うかもしれないので)
・必要となるファイル群はすべてドメインコントローラ上に保存しておき、Windowsファイル共有で必要なサーバに渡す。
・「サーバの役割管理」で「役割を追加または削除する」をクリック
・「最初のサーバーの標準構成」を選択して「次へ」
・「Active Directoryドメイン名」に「sg.local」を入力して「次へ」
・「NetBIOSドメイン名」が「SG」なのを確認して「次へ」
・DNSクエリはとりあえず「いいえ、クエリを転送しません」を選択して「次へ」
・この後は特に設定するところもなくそのまま進む
・自動的に再起動
・ドメインのAdministratorでログオン
・サーバの構成ウィザードが自動的に進行
・ActiveDirectoryの構成完了
・「ActiveDirectoryユーザとコンピュータ」を起動
・sg.localに「App-V」という名前でOUを作成
・OU「App-V」に、グループ「App-V Administrators」を追加。グループのスコープは「グローバル」、グループの種類は「セキュリティ」。
・OU「App-V」に、グループ「App-V Users」を追加。グループのスコープは「グローバル」、グループの種類は「セキュリティ」。
・OU「App-V」に、ユーザ「apManager」を追加。パスワードは適当に。
・OU「App-V」に、ユーザ「apUser01」を追加。パスワードは適当に。
・OU「App-V」に、ユーザ「apUser02」を追加。パスワードは適当に。
・OU「App-V」に、ユーザ「apUser03」を追加。パスワードは適当に。
・グループ「App-V Administrators」にユーザ「Administrator」及び「apManager」を追加。
・グループ「App-V Users」にユーザ「apUser01」、「apUser02」、「Administrator」、「apManager」を追加。「apUser03」は追加しない。
・管理ツールからDNSを起動する
・「逆引き参照ゾーン」を右クリック→「新しいゾーン」
・デフォルト値のまま「次へ」で進む
・「ネットワークID」に「192.168.10」を入力
・デフォルト値のまま「次へ」で進んで完了
・「前方参照ゾーン」→「sg.local」を右クリック→「新しいホスト」
・「名前」に「sgsv」を入力。IPアドレスは192.168.10.2。「関連づけられたポインタレコードを作成する」にチェックを入れて「ホストの追加」を押す。
・「名前」に「sgsql」を入力。IPアドレスは192.168.10.3。「関連づけられたポインタレコードを作成する」にチェックを入れて「ホストの追加」を押す。
・「名前」に「sgcl」を入力。IPアドレスは192.168.10.10。「関連づけられたポインタレコードを作成する」にチェックを入れて「ホストの追加」を押す。
・「名前」に「sgseq」を入力。IPアドレスは192.168.10.20。「関連づけられたポインタレコードを作成する」にチェックを入れて「ホストの追加」を押す。
・「完了」を押す
・「逆引き参照ゾーン」→「192.168.10.x Subnet」を右クリック→「最新の情報に更新」
・sgdc の逆引きエントリだけできていないので「192.168.10.x Subnet」を右クリック→「新しいポインタ」
・「ホストIP番号」の末尾に「1」を入力し、「ホスト名」に「sgdc.sg.local.」を入力。最後のピリオド必要。
・念のため、「SGDC」を右クリック→「すべてのタスク」→「再起動」でDNSサービスを再起動しておく。
・「マイコンピュータ」を右クリック→「プロパティ」→「コンピュータ名」→「変更」と進む・「ドメイン名」に「sg.local」を入力
・ドメインのAdministratorの認証情報を入力
・再起動
・ドメインのAdministratorでログオン
・NetFx20SP1_x86.exe を実行し、.NET Framework 2.0 をインストール。特に設定する必要項目なし。
・SQLEXPR_ADV_JPN.EXE を実行し、Microsoft SQL Server 2005 Expressをインストール。
・とりあえずしばらくはデフォルト値のまま「次へ」連打。
・認証モードは「混合モード」にしておく。sa ログオンパスワードは適当に。
・インストール終了
・SQL Serverのセキュリティ構成から「サービスと接続のセキュリティ構成」にすすみ、リモート接続を有効にする(TCP/IPとパイプ接続)。その後、「サービス」で再起動する(停止→開始)。
・SQL Server Browser サービスの「スタートアップの種類」を「自動」にして「適用」し、「開始」を押す。
・一応再起動しておく。再起動後、管理ツールから「サービス」を開き、「SQL Server」と「SQL Server Browser」が起動していることを確認する。
・「マイコンピュータ」を右クリック→「プロパティ」→「コンピュータ名」→「変更」と進む
・「ドメイン名」に「sg.local」を入力
・ドメインのAdministratorの認証情報を入力
・再起動
・ドメインのAdministratorでログオン
・「サーバの役割管理」を起動し、「役割を追加または削除する」をクリック
・「サーバの役割」で「アプリケーションサーバ(IIS、ASP.NET)」を選択して「次へ」
・「ASP.NETの有効化」にチェックを入れて「次へ」
・WindowsServer2003 のCD-ROMを要求されるので挿入。
・IISの構成終了
・NetFx20SP1_x86.exe を実行し、.NET Framework 2.0 をインストール。特に設定する必要項目なし。
・MSAppVirt_management_server_setup_4.5.0.1308.exe を実行し、Application Virtualization Management Serverをインストール。
・ここまでのインストールがうまくいっていれば、「Configuration Database」の画面で「Server name」に「SGSQLSQLEXPRESS」が見えるはず。逆に言うと、これが見えていなければ何らかの問題があると考えて良い。
・データベースの設定画面では、「Create a new database」を選ぶ。DB名はデフォルトの「APPVIRT」をそのまま使う
・しばらくデフォルト値のまま「Next」で次へ進む
・Administrator Groupの設定では「App-V Administrators」を指定する
・Default Provider Groupの設定では「App-V Users」を指定する
・Content Pathはデフォルト値のまま先に進む
・インストール開始
・再起動
・ドメインのAdministratorでログオン
・「C:Program FilesMicrosoft System Center App Virt Management ServerApp Virt Management Servercontent」を共有する。
・共有名は規定(content)のまま。
・アクセス許可は、Everyone フルコントロール。(多分実運用はこれじゃまずい。ここでフルコントロールなのはシーケンサからのパッケージ導入を容易にするため。)
・管理ツールから「IISマネージャ」を起動
・「規定のWebサイト」を右クリック→「新規作成」→「仮想ディレクトリ」
・エイリアス名は「softgrid」
・仮想ディレクトリのパスは「C:Program FilesMicrosoft System Center App Virt Management ServerApp Virt Management Servercontent」
・「読み取り」と「ASPなどのスクリプトを実行する」をオンにする。
・「既定のWebサイト」を右クリック→「プロパティ」
・「HTTPヘッダー」→「MIMEの種類」に拡張子「.osd」、MIMEの種類「application/softricity-osd」を登録。
・管理ツールから「Application Virtualization Management Console」を起動
・Application Virtualization Systems を右クリック→「Connect to Application Virtualization Systems」
・Web Service Host Name に「sgsv.sg.local」を入力
・「Use Secure Connection」のチェックを外す
・「Login Credentials」は「Use Current Windows Account」のままでOKを押す
・sgsv.sg.local を展開
・Applications の中のDefault Application を右クリック→「プロパティ」
・OSD Pathに「http://sgsv.sg.local/softgrid/DefaultApp.osd」を入力
・Icon Pathに「http://sgsv.sg.local/softgrid/DefaultApp.ico」を入力
・ShortCutsタブで「Publish to User’s Desktop」にチェックを入れる
・OKを押す
※どうも不安定でたまに管理コンソールが落ちる
・C:Program FilesMicrosoft System Center App Virt Management ServerApp Virt Management ServercontentDefaultApp.osd をメモ帳で開く
・<CODEBASE HREF=”RTSPS:SGSV:332/DefaultApp.sft”… >
と定義されている部分を
<CODEBASE HREF=”RTSP:SGSV:554/DefaultApp.sft” … >
に書き換える。
・「マイコンピュータ」を右クリック→「プロパティ」→「コンピュータ名」→「変更」と進む
・「ドメイン名」に「sg.local」を入力
・ドメインのAdministratorの認証情報を入力
・再起動
・ドメインのAdministratorでログオン
・MSAppVirt_wd_client_setup_4.5.0.1308.exe を実行
・すべてデフォルト値のまま「次へ」で先に進む
・インストール完了
・管理ツールから「Application Virtualization Client」を起動
・Publishing Servers を右クリック→「New Server」
・Display Name に適当な名称を入れる。とりあえず「SGSV」。
・Typeを「Application Virtualization Server」にして「次へ」
・HostName に「sgsv.sg.local」を入力して「完了」
・SGSV のエントリを右クリックして、Refresh タブの中にある「Refresh」ボタンを押してみて「On Login」になれば成功
・デスクトップをみると、DefaultApplication のショートカットができているのでこれをダブルクリック
・正常に起動すればOK
Microsoft Application Virtualization ( App-V )というアプリケーション仮想化ソリューションがあります。なかなかおもしろそうなのでいろいろいじっていたのですが、ここしばらく、ずっと同じところでハマっていました。
今日、ようやく問題が解消したのでとりあえずメモメモ。細かいことは明日まとめるつもり。
とりあえずMSのサイトにあるトライアルガイドは読んでおくべきだし役に立つけど、ここに書いてあるとおりにやっても、きちんとSSL通信できる環境でないとうまく動かない。サーバ側にきちんとした証明書があれば違うのかもしれないけど、テスト環境でそこまで準備できる人はおらんでしょ。そのほかにも微妙に現状と違う部分があるっぽい。
【グループの問題】
トライアルガイドではグループを入れ子にする設定になっているけど、これは、ドメインコントローラが Windows2003 ネイティブモードで動いていないと実現できない。今回うまくいっているパターンでは2003ネイティブにしてみたけど、そうも行かない環境もあるだろうからちょっと別の方法も検討してみる必要アリ。
【検証用アプリのアイコンは見えるのにアプリケーションがロードできない問題】
これにハマりまくった。結果的には、起動確認に使う Default App がSSL通信を前提としているところに問題あり。DefaultApp.osd を直接メモ帳で開くと
<CODEBASE HREF=”RTSPS:xxxxxx:332/DefaultApp.sft” … >
と定義されているところがあるので、ここを
<CODEBASE HREF=”RTSP:xxxxxx:554/DefaultApp.sft” … >
としてやる必要がある。なお、xxxxxx の部分はサーバ名。このサーバ名はホスト名(NetBIOS名?)の部分しか記述されないっぽいので、クライアント側のDNSの設定で適切なプレフィクスをつけてやる必要がある。
ただし、上記の検証用アプリの問題は、自分でシーケンス作業をしてパッケージングするのであれば不要かもしれない。
とりあえず明日か明後日の夜、いろいろ確認してまとめる予定。明日はムスメの幼稚園のバザーで焼きそば担当(お父さんチームが屋台を出す)なので今日は早く寝なくちゃ。
本日のPV。Weezer の1994年のアルバム、”Weezer” から “Buddy Holly“。
なぜか日本語版のWikipedia には載ってないんだけど、この曲のPVはWindows95のCD-ROMに入っていて、みょーに気になっていました。MTVには現時点ではまだないけど、”My Name Is Jonas”も良い曲です。
うわー、ほしいほしいほしいほしいほしいほしいほしいほしいほしいほしいほしいほしいほしいほしいほしい。手から喉が出た(気持ち悪い)。
来月上旬発売予定かー。これはやばいな。なんだかいま一つ騒がれていないのは、新しい iPod と発表時期がかぶっているからか。
とりあえず、今使っている EM-ONEα(S01SHII)との比較。
| S01SH II | S21HT | |
| OS | Microsoft Windows Mobile 6 Classic 日本語版 | Microsoft Windows Mobile 6.1 Prlfessional 日本語版 |
| CPU | Marvell PXA270 520MHz | Qualcomm MSM7201A 528MHz |
| 本体メモリ | フラッシュメモリ 512MB / SDRAM 128MB | ROM 256MB / RAM 192MB |
| 内部ストレージ | - | 約4GB |
| 液晶サイズ | 4.1インチ | 2.8インチ |
| 解像度 | 800 x 480 | 640 x 480 |
| 通信下り速度 | 3.6Mbps | 7.2Mbps |
| 通信上り速度 | 384kbps | 384kbps |
| 無線LAN | IEEE802.11b/g | IEEE802.11b/g |
| Bluetooth | 有(1.2) | 有(2.0) |
| テレビ機能 | ワンセグ対応 | - |
| 内蔵カメラ | 131万画素CMOSカメラ QRコード対応 | メインカメラ:320万画素(CMOS) サブカメラ:30万画素(CMOS) |
| カードスロット | miniSD x 1 EM chip x 1 | - |
| USB端子 | miniUSB端子 (miniAB) | 有 |
| イヤホンマイク端子 | 平型 | 有 |
| クレードル端子 | 有 | 有 |
| RGBアダプタ端子 | 有 | ? |
| ACアダプタ端子 | 有 | ? |
| 電源 | DC3.7V リチウムイオン充電池 | ? |
| 使用時間 | 約4時間 | 連続通話:約252分 連続待受時間:約236時間 |
| サイズ | 140(幅) x 70(高さ) x 18.9(厚さ) | 102(高さ) x 52(幅) x 11.9(厚さ) |
| 質量 | 250g | 98g |
| GPS | - | 有 |
| NAVITIME | 非対応 | 対応 |
[使えるようになった・うれしい部分]
S01SHII の弱点は何と言っても 4時間という使用時間の短さ。なので「使うときだけ電源を入れる」というなんだか非常に微妙な使い方をしていたんですが、連続待受236時間(ほぼ10日)ってーのはとてもとてもうれしい。これなら「ケータイ」として使える。というか、これならぼちぼち二年縛りが終わるアドエスと手を切れる。
それと、個人的に大きいのは NAVITIME 対応とEMnetメール(いわゆる普通の「ケータイのメール」)が使えること。この二つが使えると、かなり「ケータイ」になる。特にメールがPUSHされるのは私の使い方だと非常にありがたい。
無線LANが入っているのもとてもありがたい。EMONSTER lite(S12HT)が出た時一瞬心が揺れたんだけど、WMWifiRouterを使いたい私にとって、S12HT に無線LANが入っていないのは致命的すぎて断念。ちなむとその前にEMONSTER(S11HT)が出た時にも揺れたは揺れたんだけど 320 x 240 という解像度がアウト。この問題は S12HT でも解決しなかったわけだけど、今回のは 640×480。これなら使える。液晶のサイズ自体はやっぱり小さいけど。
[削られた部分]
・キーボードがないのがさびしいと言えばさびしいけど、最近別件で手に入れた BKBU-J77 (Buffaloのコンパクトキーボード)が割と良くて、がっつり入力するときにはこれをつなげばいいからまあいいや。でも本当はさびしい。
・ワンセグがつかないのは全然どーでもいい。見なかったし。ていうかうちの周りは見れないし。車通勤だし。
・解像度はいいんだけど液晶自体は小さい。アドエスより微妙に小さい。けどまぁそれはしょうがないか。諦めきれる範囲。
[総評]
・電池が比較的持つ
・「ケータイ」の使い勝手に近づいた
・無線LAN、WMWifiRouter 利用可能
という条件が満たされてることを考えると、私がこれに乗り換えない理由はほとんどない。
最近のコメント