タグ:ツール ( 35 ) タグの人気記事
UltraVNCをWindows7に入れたらCtrl+Alt+Delが効かない
UltraVNC 1.0.9.6.1 を Windows7 の端末に入れてサービスモードで動かしているんですが、リモートしたときに Ctrl+Alt+Del ボタンが効きません。
再起動後ログオンする時などに相当不便です。

スクリーンキーボード等も試して見ましたがダメでした。

いろいろ調査した結果、グループポリシーの設定変更で対応できることがわかりました。

設定するのは、以下のグループポリシーです。

「コンピュータの構成」→「管理用テンプレート」→「Windowsコンポーネント」→「Windowsログオンオプション」→「ソフトウェアのSecure Attention Sequenceを無効または有効にする」を開き「有効」を選択。さらに「Secure Attention Sequenceの生成が許可されるソフトウェアの設定」で一覧より「サービス」を選択。


どうやらVista以降セキュリティ強化の一環で、ログオン処理が見直されたようです。
上記のグループポリシーを有効にすることで、ログオン処理などを行なうロック画面を描画する「Winlogonデスクトップ」から、通常処理を行なうアプリケーションデスクトップへ移行する際に呼び出す処理であるSAS(Secure Attention Sequence)を、ソフトウェアから行うことができるようになる仕掛けのようですね。

Windowsのログオン処理ちょっと調べたら結構興味深いです。
XP以前はWinlogonを拡張するためのGINA(Graphical Identification aNd Authentication)という機能があって、ここでもいろいろできてたようです。
詳しくは参考リンク参照。。。


参考:
仕事のカタマリ
UltraVNCの小技(4) cad.exe の導入 | Memo About Keisanki
Windows NTのログオンダイアログボックスをカスタマイズする方法
【コラム】Windows XPスマートチューニング (227) パスワードにまつわる設定を行なう | パソコン | マイナビニュース
スマートカードを使ったVistaのセキュリティ強化(1/2) - インターネットコム
[PR]
by jehoshaphat | 2014-02-08 00:38 | ツール | Trackback | Comments(0)
PuTTYの設定データの移行
PCを変更したのでターミナルエミュレータのPuTTYの設定を移行したいと思いました。
設定ファイルっぽいものが見当たらないので、調べてみるとどうやら以下のレジストリに設定データを持っているようです。

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\


設定を一括でエクスポートするには、Puttyの設定のエクスポートするにあるように、以下のコマンドで出来るようです。

reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions "%USERPROFILE%\デスクトップ\putty_settings.reg"

[PR]
by jehoshaphat | 2014-02-02 00:03 | ツール | Trackback | Comments(0)
Symantec Backup Exec System Recovery 7.0でバックアップができなくなった
Symantec Backup Exec System Recovery 7.0(7.0.5.29755) を WindowsServer2003 R2(x86) に入れているんですが、バックアップができていないことに気付きました。
ユーザがログオンするたびに、タスクトレイ付近にバルーンが表示され今すぐバックアップするかみたいなことを聞いてきたので、バックアップをかけたんですが、なぜか94%で止まってしまいます。

Backup Execのイベントログを見ると以下のようになってました。

情報6C8F17E7: 同じジョブの以前のリカバリポイントが処理中のため、自動リカバリポイントは作成されませんでした。
詳細: 操作は中断されました


で、原因と対処法をググったところ、コンピュータ系サラリーマンブログ: BESR エラーEBAB03F1: 操作は中断されました. 0x80004004に解決策がありました。

手順としては参考先そのままですが、以下のとおりです。(バックアップジョブがクリアされるので設定等を別途メモっておくと良いです)

1.タスクマネージャーから、vprotray.exe を Kill。
2.Windowsのサービスから、Backup Exec System Recovery サービスを停止。
3.C:\Documents and Settings\All Users\Application Data\Symantec\Backup Exec System Recovery\Schedule 以下の PQJ ファイルを別のところに退避。
4.C:\Documents and Settings\All Users\Application Data\Symantec\Backup Exec System Recovery\History 以下の PQH ファイルを別のところに退避。
5.Backup Exec System Recovery サービスを再開。
6.コンソールからバックアップジョブを実行し、エラーが出なくなった確認。


上記の手順でやればよーやくまともにバックアップが走るようになりました。
やれやれです。
[PR]
by jehoshaphat | 2014-01-27 23:48 | ツール | Trackback | Comments(0)
AdobeReader Xをグループポリシーで自動展開したいと思ったけど。。
(※AdobeReaderX時代に書いたメモですが、XIでも基本的には同じだと思います。)
最近よく脆弱性をつつかれるようになったAdobeReaderですが、最新版のXを自動的にドメイン参加している端末に展開したいというのが今回の要件です。

これが思いの他ハマリました。

インストーラの入手
まず、最近のAdobeは再頒布できるインストーラファイルをダウンロードさせないようになっています。
再頒布できるインストーラファイルを手に入れようとするには、Adobe Readerの配布から申し込みをしないといけません。

さて、申し込みが終わって、Adobeから送られてくるメールにあるURLをつついて、ダウンロードページに飛びました。
OS,言語、バージョンを選びインストーラファイルをダウンロードしたのですが、このインストーラファイルはexe形式でMSIファイルでないのです。
exe実行時にファイルを解凍してるっぽいのでテンポラリフォルダ覗いたんですが、MSIファイルが見当たりません。

MSIファイルでないとグループポリシーの[ソフトウェア]インストールの機能が使えません。
(グループポリシーの[ソフトウェア]インストールの機能を使わず、バッチでインストールするには、このexeタイプのインストーラでも可能です)


で、途方にくれてぐぐってみたら備忘録 : Adobe Reader X のmsiパッケージのダウンロード方法に情報が。。
ftp://ftp.adobe.com/pub/adobe/reader/win/10.x/10.0.0/ja_JP/ で10.0のMSIとexeが公開されているようです。
また、http://www.adobe.com/support/downloads/product.jsp?product=10&platform=Windowsのページにある、[Adobe Reader MUI 10.1 - Multiple Languages]のリンクからもマルチランゲージ版がダウンロードできるようです。(ZIP内に10.0のMSIと10.1のMSPが入っています)

ただ、AdobeはMSIファイルはメジャーバージョン毎にしか出さない方針のようです。
それ以降のアップデート(10.1とか、10.1.1とか)はMSPファイルで提供しています。残念なことにこのMSPファイルは、グループポリシーの[ソフトウェア]インストールの機能では配布できないんですよね。
ですので、結局アップデートをかけようとするとバッチに頼るしか無いんですよね。
MSPファイルのダウンロードですが、上記にも書いたhttp://www.adobe.com/support/downloads/product.jsp?product=10&platform=Windowsの[Updates/Programs]以下からダウンロード可能です。


インストール(MSI,MSPは断念)
さて、インストールですが、MSIファイルはグループポリシーの[ソフトウェア]インストールで簡単に配布できます。

面倒なのが、MSPファイルによるアップデートですね。
これは既に書いたように、グループポリシーの[ソフトウェア]インストールで展開できません。
なので、ログオンスクリプトでバッチから実行するしか無いでしょう。
先ほどダウンロードサイトの参考先として取り上げたブログの備忘録 : AdobeReader9.4.1をグループポリシーでインストールを参考にしてバッチファイルを作って見ました。
しかし、どうもうまく行きません。1642のエラーコードが返ります。1642エラーはWindows インストーラ プロセスのエラー コードおよびエラー メッセージ一覧によると、アップグレード修正プログラムをインストールできません。アップグレードするプログラムがないか、またはバージョンが異なる可能性があります。アップグレードするプログラムがこのコンピュータにあり、アップグレード修正プログラムが正しいかどうかを確認してください。という意味のようです。

Adobe Readerをサイレント・インストールする - @ITの[Adobe Readerのパッチの自動インストール]の部分を参考にし、start /wait msiexec.exe /passive /norestart /update "\\sv\share\AdbeRdrUpd1011.msp" /log "%windir%\AdbeRdrUpd1011.msp.log" としてみましたが、これもダメでした。


インストール(exe編)
結局、再頒布版のexeをバッチでインストールすることにしました。
再頒布のexeに以下のように /? スイッチを入れると使える引数が表示されます。
AdbeRdr1011_ja_JP.exe /?
e0091163_21433756.jpg



結局、バッチファイルで以下のコマンドを実行させるようにしました。

AdbeRdr1011_ja_JP.exe /sAll /rs /rps /l

グループポリシーのログオンスクリプトに設定するのであれば、ログファイルをチェックし、それが無ければ実行、あればスキップみたいな形にする必要があるかと思います。
これに関しては機会があれば書きたいと思います。。

また、サイレントインストールオプションにしても、exeから解凍中の画面は表示されてしまいます。



参考:
Adobe Readerをサイレント・インストールする - @IT
Adobe Readerの再配布版(スタンドアロン・インストール版)を入手する - @IT
MSIファイルをActive Directoryのグループ・ポリシーでインストールする - @IT
アップデートと配布に関する情報(Acrobat/Adobe Reader X)
Adobe Reader 9の無人インストール - ThanksgivingSoftの日記
ttp://get.adobe.com/jp/reader/enterprise/


追記:
カスタマイズツールを使うと、いろいろカスタマイズの設定したAdobeReaderインストールパッケージが作れるようです。
詳しくは、カスタマイズしたAdobe Reader Xのインストーラの作り方 - 自動アップデートなどを無効にしたり、インストール後のEULAを非表示にしたり。カスタマイズしたAdobe Readerのインストールパッケージの作り方 - 自動アップデートなどを無効にしたり、インストール後のEULAを非表示にしたり。を参考に。

Adobe Acrobat 9/Adobe Reader 9(Windows 版)インストーラのカスタマイズも参考になると思います。



さらに追記:
上述でMSPでのアップロードができないと書いてましたが、できました。
その後いろいろ調査していたら、http://kb2.adobe.com/jp/cps/839/cpsid_83982/attachments/Acrobat_Enterprise_Administration_J.pdfに詳しい情報が載っていました。

コマンドでインストールする方法を以下にまとめてみました。

まず、MSI,MSPファイルの用意ですが、get.adobe.com/jp/reader/enterprise/からダウンロードできる exe からMSI,MSPファイルを抽出することができます。(もちろん既出のサイトから個別にダウンロードしても構いません)

msi,mspを抽出するにはコマンドで以下のように指定します。

AdobeReader10の場合
AdbeRdr1013_ja_JP.exe -sfx_ne -sfx_o"C:\adobereadertmp"

AdobeReader9の場合
AdbeRdr950_ja_JP.exe -nos_o"C:\adobereadertmp" -nos_ne

9と10では解凍に使うオプションが違います。
以下のオプションが使用可能です。

9.x用  10.x用
-nos_ne -sfx_ne :解凍後にファイルを実行しない。 このスイッチは、ユーザーがインストーラーのコンテンツのみを抽出し、インストーラーを実行したくない場合に使用。
-nos_nd -sfx_nd :解凍後後にファイルを削除しない。(-r スイッチを上書き)。-r スイッチは、既存フォルダーを使用し、追加の抽出フォルダーを作成せずに同一のフォルダーに抽出ファイルを上書。
-nos_o  -sfx_o : 展開されたパッケージのコンテンツが置かれるフォルダー名を指定。フォルダー名は引用符で囲む必要がある。既存のフォルダーを使用しないことをお勧めします。また、「-nos_o」の後にスペースがないようにします
     -sfx_va : 成果物の解凍を検証します。

AdbeRdr1013_ja_JP.exe を解凍した場合、"AcroRead.msi"がベースとなるインストーラで、"AdbeRdrUpd1013.msp"がアップデート用の差分MSPパッケージになるようです。


次に、MSIファイルからインストールを行います。以下のような感じで指定します。

start /wait msiexec /i AcroRead.msi /passive /norestart /l "%windir%\AdbeRdr.log" ALLUSERS=TRUE EULA_ACCEPT=YES SUPPRESS_APP_LAUNCH=YES

そして /update オプションでパッチのmspファイルをインストールします。
AdobeReader10の場合は AcroRead.msi がインストールされていれば、パッチは最新の分だけ適用したので構いません。
(9の場合は試してないのでわかりませんが、もしかすると9.4.1 , 9.4.2 というふうに順々にアップデートしないといけないかもしれません)

start /wait msiexec /update "AdbeRdrUpd1013.msp" /passive /norestart /l "%windir%\AdbeRdrUpd.log" ALLUSERS=TRUE EULA_ACCEPT=YES SUPPRESS_APP_LAUNCH=YES

start /wait はインストールが終わるまでコマンドの実行を待つ意味なので、バッチファイルで実行するときはこのオプションを付けたほうが良いですね。
WindowsInstaller各オプションは以下のような意味になるようです。

/i : ベースとなるパッケージインストーラ(msi)を指定します。
/update : アップデート用のパッケージファイル(msp)を指定します。
/passive : インストールを自動実行。対話は不要だが進行状況が表示される。
/quiet : インストールを自動実行。対話は不要だが進行状況が表示されない(完全サイレントインストール)。
/norestart : 再起動が必要であっても最起動しない。
/l : ログを指定したパスに保存。
ALLUSERS=TRUE : すべてのユーザにインストール。
EULA_ACCEPT=YES : EULAに同意。(これにより初回起動時に使用許諾の同意画面が非表示になる)
SUPPRESS_APP_LAUNCH=YES : インストール後にAdobe Readerがすぐ起動されるのを防ぐ。


なお、アップデートパッチですが、get.adobe.com/jp/reader/enterprise/ からダウンロードしてインストールしたものは MUI 版じゃないとアップデートできませんでした。
多分ベースのインストールパッケージがMUI版だったためと思われます。
[PR]
by Jehoshaphat | 2013-03-19 21:41 | 豆知識 | Trackback | Comments(0)
(ツール)簡易SMTPサーバ Radish3
Windows環境でPHPでメール送信を行うWEBアプリを作っていて、なかなか難しいのがメール送信部分のテストです。

ということで、メール送信のテストが用意の行えるよう簡易SMTPサーバである Radish3 を使ってみました。

http://radish.brothersoft.jp/からダウンロードします。
ダウンロードしたファイルを実行すると、Radishの本体の "radish_3_0_0_b041.lzh" がダウンロードされます。

後は解凍して実行するだけです。

今回はテスト目的で使い、実際に配送はしないので、メニューバーの "設定" → "SMTP/POP3サーバ" で "キュー常時処理" のチェックを外すようにします。(そうしないとキューに入ったメールをそのまま外に配送してしまいます)

php.iniの設定も関係してきますが、デフォルトだと下記のように自身の25ポートにメールを投げるので、そのままで構わないと思いいます。


[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25



これで実際にPHPからメールを送ってみると、Radishメイン画面の "mail" タブの "QUEUE" にメールが溜まります。
プロパティを表示すると、関連付けられたメーラーでメール内容を確認することができます。


参考:
[どうでもよいこと]Webアプリでのメール送信テストにはRadish使うといいよ | Ryuzee.com
ローカル開発用メールサーバー「Radish」 の紹介とその導入方法 | うつしよ
[PR]
by Jehoshaphat | 2012-11-08 22:45 | ツール | Trackback | Comments(0)
(Linux)CentOS6.0にSmokePingを入れようとしてハマッた
(ツール)ネットワーク遅延グラフツールSmokePingを入れてみたで、CentOS5.6にSmokePingを入れました。
今回、CentOS6.0にSmokePing2.4.2を入れようとしたんですが、結構ハマりました。


以前の記事で書いたように、rpmパッケージで入れたんですが、起動しようとすると以下のようなエラーになります。

# service smokeping start
smokeping を起動中: Can't locate RRDs.pm in @INC (@INC contains: /usr/share/smokeping/lib /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at /usr/share/smokeping/lib/Smokeping.pm line 13.
BEGIN failed--compilation aborted at /usr/share/smokeping/lib/Smokeping.pm line 13.
Compilation failed in require at /usr/sbin/smokeping line 7.
BEGIN failed--compilation aborted at /usr/sbin/smokeping line 7.

どうやら、rrdtoolへのパスが通っていないようだったので /usr/share/smokeping/lib/Smokeping.pm に use lib '/usr/lib/perl5/vendor_perl/5.8.8'; とパスを追加してみましたが、今度はシンボルが読めないとかでやはり動きません。

CentOS6.0が Perl5.10 がインストールされており、rrdtoolやsmokepingが Perl5.8 ベースというのが原因かもしれません。

それで、RRDTool と SmokePing はソースからインストールすることにしました。
RRDTool と SmokePing 以外の依存パッケージは yum でインストールします。


RRDToolをコンパイルするには下記のライブラリが必要です。
zlib
libpng
freetype-2
gd-2
libart_lgpl-2

ライブラリをCentOSのRPMからインストールする際は必ず各-develパッケージも入れておきましょう。

yum install zlib libpng freetype gd libart_lgpl
yum install zlib-devel libpng-devel freetype-devel gd-devel libart_lgpl-devel



次にRRDToolをダウンロードし、ビルドします。
ダウンロードは、http://oss.oetiker.ch/rrdtool/pub/から可能です。

# tar xzvf rrdtool-1.4.5.tar.gz
# cd rrdtool-1.4.5
# ./configure --enable-perl-site-install --disable-python --disable-tcl


configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no cairo-png.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of cairo-png. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libcairo and its header files. If
you have not installed cairo-png, you can get it either from its original home on

http://cairographics.org/releases/

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of cairo-png is 1.4.6.

LIBS=-lm
LDFLAGS=
CPPFLAGS=

......(省略).......

configure: error: Please fix the library issues listed above and try again.

何やら、エラーが出まくりです。
依存パッケージが足りないようなので、以下パッケージをインストールします。

# yum install pango-devel cairo-devel glibc-devel libxslt-devel



configure がうまくいくと、こうなります。

config.status: creating bindings/Makefile
config.status: creating bindings/tcl/Makefile
config.status: creating bindings/tcl/ifOctets.tcl
config.status: creating Makefile
config.status: creating bindings/lua/Makefile
config.status: creating rrd_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing default commands
checking in... and out again
ordering CD from http://tobi.oetiker.ch/wish .... just kidding ;-)

----------------------------------------------------------------
Config is DONE!

With MMAP IO: yes
Build rrd_getopt: no
Static programs: no
Perl Modules: perl_piped perl_shared
Perl Binary: /usr/bin/perl
Perl Version: 5.10.1
Perl Options:
Ruby Modules:
Ruby Binary: /usr/bin/ruby
Ruby Options: sitedir=/opt/rrdtool-1.4.5/lib/ruby
Build Lua Bindings: no
Build Tcl Bindings: no
Build Python Bindings: no
Build rrdcgi: yes
Build librrd MT: yes
Use gettext: yes
With libDBI: no
With libwrap: no

Libraries: -lxml2 -lcairo -lcairo -lcairo -lm -lcairo -lpng12 -lglib-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0

Type 'make' to compile the software and use 'make install' to
install everything to: /opt/rrdtool-1.4.5.

... that wishlist is NO JOKE. If you find RRDtool useful
make me happy. Go to http://tobi.oetiker.ch/wish and
place an order.

-- Tobi Oetiker
----------------------------------------------------------------


makeします。

# make
# make install

デフォルトでは、/opt/rrdtool-1.4.5/ 配下にインストールされるようです。

次に、RRDToolの、perlモジュールを作成します。
解凍したフォルダに移動し、以下コマンドを実行します。

# cd rrdtool-1.4.5/bindings/perl-shared/
# perl Makefile.PL
# make
# make install
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib/perl5/auto/RRDs/RRDs.so
Appending installation info to /usr/lib/perl5/perllocal.pod

どうやら、/usr/local/lib/perl5/auto/RRDs/RRDs.so にインストールされたようです。



さて、よーやくSmokePingのダウンロードと配置です。
SmokePingを、http://oss.oetiker.ch/smokeping/pub/からダウンロードします。
/usr/local/src/ に移動して、解凍します。

# cd /usr/local/src/
# tar zxvf smokeping-2.4.2.tar.gz
# ln -s smokeping-2.4.2/ smokeping


スクリプトのファイル名を変更、スクリプトの設定も変更します。

# cd /usr/local/src/smokeping/bin
# cp smokeping.dist smokeping
# cp tSmoke.dist tSmoke
# vi smokeping

先頭を以下のように変更。
--------------
#!/usr/bin/perl -w
# -*-perl-*-

#use lib qw(/usr/pack/rrdtool-1.3.0-rp/lib/perl); ←コメントアウト
use lib qw(lib);
use lib qw(/usr/local/src/smokeping/lib); ←追加
use strict;
use warnings;
use Smokeping 2.004002;

#Smokeping::main("etc/config.dist");
Smokeping::main("/usr/local/src/smokeping/etc/config"); ←コンフィグファイルの場所変更
--------------


CGI用のスクリプトもコピーし、変更します。

# cd /usr/local/src/smokeping/htdocs/
# cp smokemail.cgi.dist smokemail.cgi


vi /usr/local/src/smokeping/htdocs/smokeping.cgi
-------------------------------
#!/usr/bin/perl ←speedy を perl 変更
# -*-perl-*-

use strict;
use warnings;

#use lib qw(/usr/pack/rrdtool-1.3.0-rp/lib/perl); ←コメントアウト
#use lib qw(/home/oetiker/checkouts/smokeping/trunk/software/lib); ←コメントアウト

use lib qw(/usr/lib);
use lib qw(/usr/local/src/smokeping/lib);

use CGI::Carp qw(fatalsToBrowser);

use Smokeping 2.004002;

#Smokeping::cgi("/home/oetiker/checkouts/smokeping/trunk/software/etc/config.dist");
Smokeping::cgi("/usr/local/src/smokeping/etc/config"); ←コンフィグファイルの場所変更
-------------------------------

先頭の speedy を perl に変更しないと、ブラウザからアクセスしたときに下記エラーになりました。(Apacheのerrorログ)

[Tue Sep 06 17:03:55 2011] [error] [client 192.168.1.8] (2)No such file or directory: exec of '/usr/local/src/smokeping/htdocs/smokeping.cgi' failed
[Tue Sep 06 17:03:55 2011] [error] [client 192.168.1.8] Premature end of script headers: smokeping.cgi



また、各ファイルもコピーしておきます。

# cd /usr/local/src/smokeping/etc

# cp tmail.dist tmail
# cp basepage.html.dist basepage.html
# cp smokeping_secrets.dist smokeping_secrets
# chmod 777 smokeping_secrets
# cp config.dist config



データ置き場ディレクトリ作成します。ここがRRDToolのデータ(pingの結果)が置かれます。

# mkdir /var/lib/smokeping
# mkdir /var/lib/smokeping/images
# mkdir /var/lib/smokeping/rrd
# mkdir /var/run/smokeping
# chown -R apache:apache /var/lib/smokeping/images
# mkdir /var/run/smokeping




configファイルを修正します。

# vi /usr/local/src/smokeping/etc/config

configファイルは以下のように設定しました。
---------------------
*** General ***

owner = Super User
contact = root@localhost
mailhost = smtp.hoge.jp
sendmail = /usr/sbin/sendmail
# NOTE: do not put the Image Cache below cgi-bin
# since all files under cgi-bin will be executed ... this is not
# good for images.
imgcache = /var/lib/smokeping/images
imgurl = /smokeping/images
datadir = /var/lib/smokeping/rrd
piddir = /var/run/smokeping
cgiurl = http://smokeping/smokeping/sm.cgi
smokemail = /usr/local/src/smokeping/etc/smokemail
tmail = /usr/local/src/smokeping/etc/tmail
# specify this to get syslog logging
syslogfacility = local0
# each probe is now run in its own process
# disable this to revert to the old behaviour
# concurrentprobes = no

....(省略)....

*** Presentation ***
charset = UTF-8
template = /usr/local/src/smokeping/etc/basepage.html

....(省略)....
*** Slaves ***
secrets=/usr/local/src/smokeping/etc/smokeping_secrets
---------------------



起動スクリプトを作成します。

# vi /etc/init.d/smokeping

---------------------
#!/bin/sh

case "$1" in
'start')
/usr/local/src/smokeping/bin/smokeping
;;
'stop')
kill -9 `cat /var/run/smokeping/smokeping.pid`
;;
*)
/usr/local/src/smokeping/bin/smokeping
;;
esac
---------------------

# chmod 755 /etc/rc.d/init.d/smokeping
# cd /etc/rc.d/rc3.d/
# ln -s ../init.d/smokeping S99smokeping
# cd /etc/rc.d/rc0.d/
# ln -s ../init.d/smokeping K01smokeping
# cd /etc/rc.d/rc6.d/
# ln -s ../init.d/smokeping K01smokeping





Apache側の設定を行います。

# vi /etc/httpd/conf/httpd.conf

---------------------
AddHandler cgi-script .cgi(コメントアウトを外す)

最下行に以下追加

Order allow,deny
# Deny from all
Allow from all



Order allow,deny
#Deny from all
Allow from all


ScriptAlias /smokeping/sm.cgi /usr/local/src/smokeping/htdocs/smokeping.cgi
Alias /smokeping/images /var/lib/smokeping/images
Alias /smokeping /usr/local/src/smokeping/htdocs
Options +ExecCGI
---------------------


# /etc/init.d/smokeping start
Can't load '/usr/local/lib/perl5/auto/RRDs/RRDs.so' for module RRDs: librrd.so.4: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません at /usr/lib/perl5/DynaLoader.pm line 200.
at /usr/local/src/smokeping/lib/Smokeping.pm line 13
Compilation failed in require at /usr/local/src/smokeping/lib/Smokeping.pm line 13.
BEGIN failed--compilation aborted at /usr/local/src/smokeping/lib/Smokeping.pm line 13.
Compilation failed in require at /usr/local/src/smokeping/bin/smokeping line 9.
BEGIN failed--compilation aborted at /usr/local/src/smokeping/bin/smokeping line 9.


ん? rrttoolのモジュールが読めいないようです。
以下のようにパスを通してやったら解決しました。

# ln -s /opt/rrdtool-1.4.5/lib/librrd.so.4.1.4 /usr/lib/librrd.so.4

# /etc/init.d/smokeping start
Note: logging to syslog as local0/info.
Daemonizing /usr/local/src/smokeping/bin/smokeping ...

上記のようにでれば起動完了です。

ブラウザから、http://ホスト名/smokeping/sm.cgi でアクセスができれば、CGI,Apache側の設定もOKです。


RRDToolのインストール - satospo
smokeping(その1):はいはい、備忘録ですよ。:So-netブログ
smokeping(その2):はいはい、備忘録ですよ。:So-netブログ
smokeping(その3):はいはい、備忘録ですよ。:So-netブログ
smokeping(その4):はいはい、備忘録ですよ。:So-netブログ
smokeping(その5):はいはい、備忘録ですよ。:So-netブログ
CloudForecastを入れてみた - メメメモモ RRDToolのPerlモジュールのインストール方法。
へっぽこエンジニア@日記 Muninのインストールと設定・その3
cgi界にはびこる民間療法 Premature end of script headers - それはそれ。これはこれ。 ブラウザでアクセスしたときにエラーになった時の解決策。先頭のパス違い。
【防備録】■Linuxネットワーク監視ツール構築 | NANDEMO徒然日記
[PR]
by Jehoshaphat | 2012-05-11 21:08 | Linux | Trackback | Comments(0)
(ツール)SmokePingでアラートメールの設定をする
(ツール)ネットワーク遅延グラフツールSmokePingを入れてみたで、SmokePingというツールをLinuxに導入しました。
このツールはPingの遅延時間の統計を視覚化するものですが、アラートメールの機能も付いているようです。
アラート機能を使うと、任意の監視対象が閾値以上パケットロスもしくは遅延時間が大きすぎるなら、メールを飛ばして管理者に伝えることができます。

しかし、この設定はハマりました。
なにせSmokePingの日本語が少なすぎです。

なんとか設定できたので、手順をメモっておきます。

まず、コンフィグファイルの設定です。
/etc/smokeping/config を開き、以下の設定をします。


..(省略)..
mailhost = smtp.hoge.jp ←送信するSMTPサーバ
..(省略)..

*** Alerts ***
to = admin_ml@hoge.jp,thid.rate.pg@gmail.com ←送信先。カンマで複数指定可能。
from = smokeping@hoge.jp ←送信元メールアドレス

#アラートメール送信する条件を指定

+loss1    ←条件名
type = loss   ←条件タイプ。よく使うのは loss(パケットロス) か rtt(遅延時間)。
# in percent
pattern = >10%,*10* ←最後の10サンプル中にパケットロスが10%超が1回あればメール送信
comment = 直近10サンプルで10%超のパケットロスがあります。 ←コメント


pattern は右側が再直近で、そこから左側に過去の条件を書くようです。
例えば、==0%,==0%,>20%,>20% なら、パケットロス無しが2回続き、その後20%超えのパケットロスが2回あれば という条件になります。

以下、幾つかの条件のサンプルです。
詳しくは、公式サイトのヘルプページが参考になります。(英語ですが。。)

+loss2
type = loss
pattern = >10%,*2*,>10% ←最後の10サンプル中にパケットロスが10超のが2回あればメール送信。(たぶん)

+loss3
type = loss
pattern = ==0%,==0%,==0%,>50%,>50%% ←パケットロス無しが3回続き、その後50%超えのパケットロスが2回あればメール送信。


+loss_start
type = loss
pattern = ==S,>20%,>20% ←SmokePingスタート直後に20%超のパケットロスが2回あればメール送信。
(上記loss3の様に安定稼働しててパケットロスが発生したという条件ではSmokePing起動時にパケットロスが始まっていた場合に検出できません。
そのために、==Sが用意されていると思われす。)


+someloss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0% ←デフォルトのパターンです。たぶん、直近12回で1%以上のパケットロスが3回あればメール送信。
comment = loss 3 times in a row

+rtt1
type = rtt
pattern = <10,<10,>10,>100,>100 ←遅延時間が10ms未満が2回続き、その後10ms超え、そして100ms超えが2回続けばメール送信。

+rtt2
type = rtt
pattern = ==S,==U,==U ←SmokePingスタート直後に、遅延時間不明(==U)が、2回続けばメール送信。


上記に書いたように、アラートの条件を作成したら、以下のように各ターゲットにどのアラートを適用するか定義します。

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of <b>Insert Company Name Here</b>. \
Here you will learn all about the latency of our network.

#ここから↓が各監視ホストの設定です。
+dc             ←監視グループ名(なんでも良い)
menu = domain controller  ←ブラウザで見たときの左側のメニュー名
title = ドメインコントローラ ←ブラウザで見たときのタイトル名

++dc01      ←ホストの識別名(なんでも良い)
menu =dc01    ←ブラウザで見たときの左側のメニュー名
title=ドメコン01 ←ブラウザで見たときのタイトル名
host = 10.0.1.10 ←対象のIPアドレス
alerts = loss1,rtt1  ←ここでアラート条件指定。カンマで複数条件指定可能。

++dc02
menu = dc02
title = ドメコン02
host = 10.0.1.11
alerts = loss2  ←ここでアラート条件指定

++dc03
menu = dc03
title = ドメコン03
host = 10.0.98.11
↑アラート指定なし。



SmokePingデフォルトのメールは以下のようなフォーマットで届きます。

件名:
[SmokeAlert] testloss is active on tmp.letsnote
本文:
Tue Aug 30 13:53:38 2011

Alert "loss2" is active for http://hoge.jp/smokeping/smokeping.cgi?target=dc.dc02

Pattern
-------
>10%,*2*,>10%

Data (old --> now)
------------------
loss: 100%, 100%, 100%, 100%
rtt: U, U, U, U

Comment
-------
loss Test


このメールの内容もメールテンプレートを使うことで変更することができます。
メールテンプレートを使うには、以下のようにAlerts項目内の、mailtemplate でテンプレートファイルを指定します。

*** Alerts ***
..(省略)..
mailtemplate = /etc/smokeping/mailtemplate


/etc/smokeping/mailtemplate は以下のような感じとなります。


Subject: [SmokeAlert] ServerNetworkERR:<##ALERT##> <##WHAT##> on <##LINE##>

<##STAMP##>

ServerNetworkError.
AlertName: <##ALERT##>
AlertStatus: <##WHAT##>
SmokePingURL: <##URL##>

AlertPattern
-------
<##PAT##>

Data (old --> now)
------------------
PacketLoss: <##LOSS##>
RTT: <##RTT##>

Comment
-------
<##COMMENT##>



各キーワードは以下の意味があるようです。

<##ALERT##> - アラート条件名
<##WHAT##> - ステータス (is active, was raised, was celared)
<##LINE##> - どのターゲットか(コンフィグファイル内のパスで表される)
<##URL##> - 対象ターゲットのSmokePingのページ
<##STAMP##> - 日時
<##PAT##> - アラート条件のパターン
<##LOSS##> - パケットロス履歴。
<##RTT##> - 遅延時間履歴。
<##COMMENT##> - アラート条件に書いているコメント。


上記のコンフィグは日本語にもすることができます。
ただし、文字コードと改行コードに気を付けないと文字化けしたり、エラーとなったりします。

日本語にする場合、/etc/smokeping/mailtemplate ファイルは ISO-2022-JP (JIS) コードとして保存する必要があります。
また、改行コードはLFで保存する必要があります。

設定が間違っていると以下のようなエラーになったりします。

"ERROR: /etc/smokeping/config, line 40: mailtemplate '/etc/smokeping/mailtemplate' should start with mail header lines"

そのような場合、は改行コードがLFになっているか、や件名の行がおかしくないか("Subject: "となっておりコロンの後スペースがあるか)確認してみましょう。

コンフィグを変更したら SmopkePing はサービスを再起動しないと反映されないようです。

参考:
SmokePing - smokeping_config 公式のヘルプドキュメントです。
Smokeping mailtemplate format | stompro.org: 英語ですが参考になりました。mailtemplateエラー時の対処法が載っています。
http://jasonyong.blog.51cto.com/47753/186887
[PR]
by Jehoshaphat | 2012-04-25 23:14 | ツール | Trackback | Comments(1)
(ツール)ネットワーク遅延グラフツールSmokePingを入れてみた
まだある!便利ツール - プロが愛用するネット管理のフリー・ツール:ITproを見てて、SmokePing というツールがあることを知りました。
Pingを飛ばしてRTT(遅延時間)をグラフ化するツールだそうです。
グラフ化するので遅延が一目でわかるのが利点のようですね。しきい値を超えるとメール通知する仕組みもあるようです。

こりゃ便利と思い、すぐに導入できると思ったのですが、案外手間取りました。

インストール対象はRedHatのクローンである CentOS5.6 です。
SmokePingはPerlアプリケーションなので、PerlとApacheが入っている必要があります。

インストール
SmokePingのソースは公式サイトからダウンロード出来るのですが、ソースインストールは今回したくなかったので、RPMパッケージからインストールできないか調査してみました。

するとFedoraのプロジェクトにSRPMパッケージとして公開されていました。

今回は iij のFedora15ミラーサイトより SomokePing のSRPMパッケージをダウンロードしてみます。


# cd /home/hoge
※↓のURLはFedoraの最新開発バージョンによって異なるようです。http://ftp.iij.ad.jp/pub/linux/fedora/ にアクセスしてから確認したほうが無難かもしれません。
# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/smokeping-2.4.2-12.fc15.src.rpm
# rpmbuild --rebuild smokeping-2.4.2-12.fc15.src.rpm
smokeping-2.4.2-12.fc15.src.rpm をインストール中です。
警告: InstallSourcePackage: ヘッダ V3 RSA/SHA256 signature: NOKEY, key ID 069c8460
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
エラー: アーカイブの伸長に失敗: ファイル /usr/src/redhat/SOURCES/README.fedora;4e03e645: cpio: MD5 チェックサムが適合しません。
エラー: smokeping-2.4.2-12.fc15.src.rpm をインストールできません。

ん?MD5のエラーになります。
その場合、rpmbuildすると cpio: MD5 sum mismatch が出るにあるように下記のようにしてやるといいようです。

# rpm -ivh --nomd5 smokeping-2.4.2-12.fc15.src.rpm
警告: smokeping-2.4.2-12.fc15.src.rpm: ヘッダ V3 RSA/SHA256 signature: NOKEY, key ID 069c8460
1:smokeping 警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
# rpmbuild -ba /usr/src/redhat/SPECS/smokeping.spec
# rpm -Uvh /usr/src/redhat/RPMS/noarch/smokeping-2.4.2-12.noarch.rpm (←CentOS6.0の場合、 /root/rpmbuild/RPMS/noarch/ に出力されていました(rootユーザ))
エラー: 依存性の欠如:
rrdtool >= 1.0.33 は smokeping-2.4.2-12.noarch に必要とされています
fping >= 2.4b2 は smokeping-2.4.2-12.noarch に必要とされています
perl(Config::Grammar) は smokeping-2.4.2-12.noarch に必要とされています
perl(BER) は smokeping-2.4.2-12.noarch に必要とされています
perl(CGI::Session) は smokeping-2.4.2-12.noarch に必要とされています
perl(Net::LDAP) は smokeping-2.4.2-12.noarch に必要とされています
perl(Net::Telnet) は smokeping-2.4.2-12.noarch に必要とされています
perl(Qooxdoo::JSONRPC) は smokeping-2.4.2-12.noarch に必要とされています
perl(RRDs) は smokeping-2.4.2-12.noarch に必要とされています
perl(SNMP_Session) は smokeping-2.4.2-12.noarch に必要とされています
perl(SNMP_util) は smokeping-2.4.2-12.noarch に必要とされています


うーむ、、かなり依存パッケージが足りないようです。

ということで、RPMforgeリポジトリ導入を参考にし、RPMforgeでインストールできるものはインストールしちゃいます。

# yum -y install yum-priorities
# vi /etc/yum.repos.d/CentOS-Base.repo
各セクションの末尾に、priority=1 を追加し上書き保存。
# wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm --import RPM-GPG-KEY.dag.txt
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# yum -y update rpmforge-release

依存パッケージをRPMforgeよりインストール
# yum install rrdtool
# yum install fping
# yum install perl-CGI-Session.noarch
# yum install perl-LDAP.noarch
# yum install perl-Net-Telnet.noarch
# yum install perl-JSON.noarch



残りの依存パッケージはRPMforgeになかったので、SmokePingと同じく、Fedora15のSRPMパッケージを使いました。

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-Config-Grammar-1.10-7.fc15.src.rpm
# rpm -ihv --nomd5 perl-Config-Grammar-1.10-7.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-Config-Grammar.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-Config-Grammar-1.10-7.noarch.rpm

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-Convert-BER-1.3101-8.fc15.src.rpm
# rpm -ihv --nomd5 perl-Convert-BER-1.3101-8.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-Convert-BER.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-Convert-BER-1.3101-8.noarch.rpm

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-qooxdoo-compat-0.7.3-9.fc15.src.rpm
# rpm -ihv --nomd5 perl-qooxdoo-compat-0.7.3-9.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-qooxdoo-compat.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-qooxdoo-compat-0.7.3-9.noarch.rpm

# wget http://ftp.iij.ad.jp/pub/linux/fedora/development/15/source/SRPMS/perl-SNMP_Session-1.12-7.fc15.src.rpm
# rpm -ihv --nomd5 perl-SNMP_Session-1.12-7.fc15.src.rpm
# rpmbuild -ba /usr/src/redhat/SPECS/perl-SNMP_Session.spec
# rpm -ihv /usr/src/redhat/RPMS/noarch/perl-SNMP_Session-1.12-7.noarch.rpm


これで依存パッケージはが入ったので、SmokePingにインストールに再チャレンジ。
# rpm -Uvh /usr/src/redhat/RPMS/noarch/smokeping-2.4.2-12.noarch.rpm


設定
無事にインストールできたら設定を行います。
当初、httpd.confを触る必要があるのかと思ってましたが、その必要はないようです。
RPMパッケージが自動的に、/etc/httpd/conf.d/smokeping.conf という設定ファイルを作ってくれてました。

しかし、アクセス権がデフォルトでは自分自身しか無いので smokeping.conf を設定してやります。

# vi /etc/httpd/conf.d/smokeping.conf

#デフォルトでは自分自身しかアクセス出来ない
<Directory "/usr/share/smokeping" >
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

<Directory "/var/lib/smokeping" >
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
  ↓
#とりあえず誰でもアクセスできるようにしてみた。
<Directory "/usr/share/smokeping" >
Order allow,deny
# Deny from all
Allow from all
</Directory>

<Directory "/var/lib/smokeping" >
Order allow,deny
#Deny from all
Allow from all
</Directory>


次に、smokepingの設定をし、どのホストを監視するか設定します。
smokeping自体の設定ファイルは /etc/smokeping/config になるようです。

# vi /etc/smokeping/config

#cgiutlのホスト名を変更してやります。
cgiurl = http://localhost/smokeping/smokeping.cgi
 ↓
cgiurl = http://サーバホスト名/smokeping/sm.cgi


#日本語のホスト名の文字化けを解消するために文字コードを指定します。
# *** Presentation *** の後に、charset = UTF-8 を追加します。(configファイル自体もUTF-8である必要があります)
*** Presentation ***
charset = UTF-8

#各監視ホストの設定ですが、下記probe=Fping セクション内に書いてやります。
probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of Insert Company Name Here. \
Here you will learn all about the latency of our network.

#ここから↓が各監視ホストの設定です。
+dc             ←監視グループ名(なんでも良い)
menu = domain controller  ←ブラウザで見たときの左側のメニュー名
title = ドメインコントローラ ←ブラウザで見たときのタイトル名

++dc01      ←ホストの識別名(なんでも良い)
menu =dc01    ←ブラウザで見たときの左側のメニュー名
title=ドメコン01 ←ブラウザで見たときのタイトル名
host = 10.0.1.10 ←対象のIPアドレス

++dc02
menu = dc02
title = ドメコン02
host = 10.0.1.11

++dc03
menu = dc03
title = ドメコン03
host = 10.0.98.11


+terminal
menu = terminal
title = terminal server

++ts1
menu = ts1
title = terminal server1
host = 10.0.1.20

++ts2
menu = ts2
title = terminal server2
host = 10.0.1.21

デフォルトだと +Ping にFedoraサイトへの設定があるので、これはのけてしまっていいと思います。

なお、設定例は公式サイトにもあるので参考にできるかもしれません。

これでApacheの再起動と、SmokePingの起動を行います。
OS起動時にも立ち上がるようにchkconfigで設定もしておきましょう。

# service httpd restart
# service smokeping start
# chkconfig smokeping on




後は、ブラウザからアクセスします。
URLは /etc/httpd/conf.d/smokeping.conf に定義してあるエイリアスになります。
デフォルトだと下記です。
http://hogehost/smokeping/sm.cgi

上記アドレスにアクセスして、下記のように表示されていればOKです。
e0091163_2362354.jpg


左側のメニューから各ホストへの結果ページにアクセスできます。
Chartsメニューはサマリーのような感じで、パケットロスが多い順や、遅延が多い順に表示できるので、ここから問題がないか確認できるかもしれません。

メニューでグループを選択すると、そのグループ内の一覧が参照できます。
e0091163_23908.jpg


また、ホストを選択すると、選択したホストの期間毎の結果がわかります。

e0091163_2391762.jpg

しきい値を超えた場合のメール設定とかも出来るらしいですが、今回は時間がなかったのでそこまでできませんでした。


参考:
ず's - smokeping
第1回 状態監視ツール(smokeping)構築ガイド
smokeping(その1):はいはい、備忘録ですよ。
smokepingの日本語、文字化け対策
[PR]
by Jehoshaphat | 2012-04-25 23:12 | ツール | Trackback | Comments(0)
EVT形式のイベントログをEVTX形式に変換
(Windows)ログオン・ログアウトをイベントログから解析する でイベントログを解析するLog Parser というツールを紹介しました。

WindowVistaやServer2008以降はイベントログの形式が evtx に変わっています。

WindowVistaやServer2008以降で、LogParserをインストールして解析したところ、うまくいきました。
インポートのフォーマットも -i:EVT でOKです。

しかし、XPやServer2003以前では LogParser で evtx のログは解析できません。
(解析かけると「<from-entity> を開けません。: イベントログ "C:\hoge.evt" を開く際にエラーが発生しました。: イベント ログ ファイルが壊れています。」と怒られます)


WindowVistaやServer2008以降でも LogParser で EVT ファイルは解析できないようです。
なので、WindowVistaやServer2008以降で EVT ファイルを解析する場合は、一端 EVT を EVTX に変換してやる必要があります。

EVT から EVTX への変換は wevtutil というコマンドを使うと可能なようです。

wevtutil epl e:\hoge_old.evt e:\hoge_new.evtx /lf:true


すると、hoge_new.evtx というevtx形式ののイベントログが出来上がります。

あとはこれをLogParserにかけてやればいいわけですね。


参考:
イベントログを SQL Server に入れて分析する
Tip o' the Week: WEVTUTIL for EVTX/EVT file conversion
[PR]
by Jehoshaphat | 2012-04-19 00:13 | 豆知識 | Trackback | Comments(0)
DirectShowフィルタを確認方法 と Windowws7でのデコーダの罠
Windows Media Playerでメディアファイルを再生するときに、一体どのデコーダ(フィルタ)で再生してるのか調べる必要が出てきました。

そこで役に立つのが、GraphEdit というMicrosoftからデベロッパ向けに提供されているツールです。

本来はDirectShowフィルタを操作するためのツールですが、どのフィルタを使っているのかを簡単に調べることも出来ます。

GraphEditはDirectShow SDKに入ってたり、 Platform SDK に入ってたり、 Windows SDK に入ってたりと世代で含むSDKが異なっています。
SDKは大きいから、GraphEdit単体だけ入手したいというのであれば、GraphEdit Build 090704 | Software - Digital DigestからBuild 090704版がダウンロードできるようです。

後は、GraphEditを起動し、メディアファイルをドラッグするだけです。

例えば、AVIファイルで、映像コンテナにDivx,音声コンテナにMP3の場合は3流PGの環境の場合、以下のようになっていました。
e0091163_13532350.jpg


映像コンテナにx264を使った場合は以下のようでした。
e0091163_13533089.jpg


Windows7環境なので、どちらもOS同梱のビデオ/オーディオコーデックを使ってデコードしているようです。

さて、ffdshowを入れたので、ffdshowで再生してやろうかと思いました。
しかし、WindowsMediaPlayerで再生しようとしたところ、ffdshowを使ってる気配がありません。
GraphEditで見ても、MSのデコーダが使われているようです。

メリット値の問題かなと思い、オーディオコーデックの優先順位変更にあるように、Direct Show Filterを使ってメリット値を確認して見ましたが、ffdshowはかなり優先にしてるので、メリット値の問題ではないようです。

で、ググったところ Windows7 からメリット値に関係なくMS純正デコーダが使われるようです。

Vista以降のWindowsには、マルチメディア再生としてMedia FoundationというAPIが用意されたようです。今までのDirectShowを置き換えるAPIのようです。(不覚ながらこのあたりの情報は殆ど知りませんでした)

どうやらWMPはMedia Foundationを使ったデコーダを優先して使うっぽいです。(憶測ですが。。)


さらに調べると、Win7DSFilterTweakerというツールを使うとWindows7のデコーダを設定できることがわかりました。

Win7DSFilterTweakerの、"Media Foundation"で、無効にする拡張子を選択するか "Tweaks" で "Disable Media Foundation" にチェックを入れるとMedia Foundationを無効にできるようです。(64-bitもありますが、これはなぜか無効化出来ませんでした。ただ、WMPの標準のショートカットはx86版を指しているので64bitを無効にしなくても良いようです)

もし、再生プレーヤーで64bit版を使うなら、それ用のドライバを入れておく必要があるようです。

DivXを入れておくとMedia Foundationを無効化にしたときになぜかDivX H264デコーダが優先されてしまいました。


情シスにいると、結構マルチメディア方面には疎くなるもんですが、ここまで時代に置き去りにされているとは思わずちょとショック気味の3流PGでした。。


参考:
GraphEdit 非公式ガイド
GraphEditを利用したATI DirectShowフィルターの使用で、エンコード設定のカスタマイズ
GraphEdit の使い方
Windowsの動画解析ツール
Windows7固有問題
Win7DSFilterTweaker
Windows 7 RC インストール初期状態のコーデック&デコーダー
[PR]
by Jehoshaphat | 2011-11-05 13:54 | ツール | Trackback | Comments(2)