以前書いた「Outlook Expressのメッセージルールをいじる」の中でやっている文字列の変換作業の部分をCGIにして公開してくれているページを発見したのでリンクしました。そうだよな・・CGIという手が合ったんだよ・・。何にしてもありがたい。
※CGIじゃなくてJavaでした。急用が出来て慌ただしく更新したからちゃんと確認しなかった。。。見直して発見した次第。
一昨日からPCの調子が悪く、調べていったらInternetExplorerが破損していることが判った。
破損といっても、ActiveX関連のインストーラがうまく機能してくれなかったり、SSL管理部分が死んでいたりと様々。「これはIE6の再インストールだな」と素直にIE6インストーラーをダウンロードし実行したのだが、「すでにインストールされて・・・」云々。しょうがないのでMicrosoftの技術情報に書いてあったインストール済みと記録されているレジストリを書き換えて上書きインストールする方法でやってみたが同じメッセージ。よくよくその情報を見るとSP1での再インストール方法と書いてる。ということでこの方法もダメ。しょうがないのでSP2を再インストールしようとしたが、Setupを実行すると「が見つかりません」という訳の分からないエラーで実行できず。本当に「が見つかりません」と出るのだ。
この状況はもうどうしようもないよな・・と諦め、XPSP1のSetupCDから修復インストールを実行してSP1状態に戻し、IE6のインストールしてみたらコレはうまく行った。が、その後にSP2をインストールすると又同じ症状に。。。もっと根の深いところに問題があるらしい。
そういえばこのPCはあれやこれやでアプリ入れっぱなし、しかもスタート>全てのプログラムで見ると3列になってしまうほどのアプリがインストールされている状態。こんな状態じゃぁ壊れても当然かもな。というかこれはそろそろ何とかしないとな、とうすうす思っていたところ。いっそのこと全部入れ直してしまえとBart'sPEでXpを起動し、例によってC:にBackupというフォルダを作り、全ての内容をBackupフォルダに移動。Setupでハードディスクをフォーマットしないでインストールした。
ということで今アプリのインストール中。これが又めんどくさい。
先日、OutlookExpress内のフォルダが勝手に消えていた!というどう考えてもウソな訴えに答えて復活させたので、その復活手順を紹介する。
まず、OutlookExpressはフォルダを削除しても実際のデータは削除していない。ので簡単に復活が可能だ。例によって1・2〜と順番に説明する。今回の設定の場合、「フォルダ」という言葉の意味する場所が「OutlookExpress内」なのか、普通のフォルダの中なのか混乱してしまいそうなので、OutlookExpress内のフォルダの場合だけ「OutlookExpress内の」と表記する。
1.まず、マイコンピュータで隠しファイル属性を表示するように設定する。マイコンピュータを開き、ツール>オプション、表示タブ、「すべてのファイル、フォルダを表示する」を選択。
2.マイコンピュータ>システムHDD(通常C:と表示されている)>Documents and Settings>自分のユーザー名と同じフォルダ名(スタートボタンで開いて一番上に表示されている名前)>Local Settings>Application Data>Identities>{英数字}>Microsoft>Outlook Expressを開く。OutlookExpress内のフォルダと同じ名前のファイルがずらっと並んでいると思う。
3.消してしまって復活させたいフォルダ名が「ABC」とすると、「ABC.dbx」というファイルがあると思うが、それをお約束でバックアップ。CTRL+ドラッグでコピーできる。「ABC.dbx」が無かった場合は終了、素直に諦めて下さい。
※以下、消してしまって復活させたいフォルダを「ABC」と仮定します。ABCを消してしまったフォルダ名に置き換えて作業してください。
4.次に「ABC.dbx」ファイルを「ABC2.dbx」にリネーム。右クリックで「名前の変更」で変更できる。
5.OutlookExpressを起動し、ローカルフォルダを右クリックしフォルダの作成を選択、「ABC」というフォルダを新規作成する。
6.OutlookExpressを終了する。さっきのLocalSettings云々のフォルダを見ると、さっきリネームした「ABC2.dbx」とは別に、新たに「ABC.dbx」というファイルが出来ていると思う。無かったらもう一度OutlookExpressを起動して、新たに作った「ABC」フォルダの中に削除済みのいらないメールでもなんでもいいので移動し、OutlookExpressを終了してみてくれ。
7.フォルダの中の「ABC.dbx」というファイルを消し、「ABC2.dbx」とリネームしたファイルを「ABC.dbx」にリネームする。
8.OutlookExpressを起動。
これでOutlookExpress内のフォルダを見ると復活していると思う。意外と簡単だろう。これって間違って消してしまった場合を想定してこういう仕様なのだろうか。まぁ、間違って消してしまった人には重宝する仕組みだ。
※ちょっと酔っているので文章読み返していない。明日もう文章と手順を確認します・・。
※一部修正しました(05/06/14)
会社のPCのHDDがご臨終間近、「なんか調子が悪いなぁ・・・」と思っていたらHDDが逝きそうだっただけらしい、音を聞くと何度もSpinupする音が聞こえる。HDDの診断にはHDD Healthを使用していたのだが、画面には故障する日が今日と表示されている。こいつはヤバイ、と思い代替えHDDを仕入れ早速データを移動することにした。
とにかく新しいHDDに全コピー、とHDDをコピーするソフトを用意してコピーし始めるのだが、途中でCRCエラーとなって停止してしまう。どうせCRCエラー部分なんてディスクの修復をしてもデータは戻ってこないのだから無視してスキップしてくれればいいのだが、律儀にもエラーを発見すると停止して終了してくれる。
気が進まないが先にHDDを修復しようかとWindowsを再度起動してChkdsk /rを予約し、再起動した。なぜ気が進まないかと言うと、こういう壊れ始めたHDDは一旦ガタガタ言い出すと使えば使うほど連鎖反応的にエラー箇所が増えていく。なので出来ればあまり何度もさわらず、コピー時の読み込み1回だけにしておきたい。しかしエラーがあるとコピー出来ないっぽいのでしょうがなくChkdsk /r(全セクタ検査)をスケジュールして再起動した。
Chkdskが始まる・・・・・が、やっぱ予想したとおり全然進行状況の%が進ま無いので待ちきれなくてリセット。とりあえず別の方法でやろうと思ってChkdskをキャンセルしようとしたが全くキャンセルが出来ない。アレコレ試したけどダメ。Googleで検索したが、どこのページを見てもキャンセルする方法は無いと書いてあるが「んなわきゃねーだろ」と作業し、めでたくChkdskをキャンセル出来たのでここで紹介する。
Microsoftの訳の分からない機械翻訳技術資料を見ると、レジストリ内でChkdskを実行する指示を出してる文字列は「autocheck autochk * / r\DosDevice\C :」らしいので、これをBart's PEで起動したWindowsからバイナリエディタで消す。説明はXP環境だが、2000の場合は下で説明しているSystemrootフォルダの「windows」を「winnt」にすればOKのはず。確認していないので確認した方はコメントに書き込んでもらえるとありがたい。
さて、実際の作業だが、
1.まず Bart's PE と バイナリエディタを用意。バイナリエディタはFDやCDRに入れてBart's PEから利用できる状態にしておく。俺の場合は対象のHDDにBzが既に入っているので、そのままそのHDDから利用した。
2.Bart's PEでWindowsを起動。
3.Bzでレジストリファイルを開く。場所は直したいシステムが入っているHDDの\WINDOWS\system32\config\ の中のsystemというファイル、拡張子は無し。ファイルを書き換えるのでBzの場合は起動してから「編集」>「読み込み時リードオンリ」を選択してチェックを外してからファイルを開くこと。壊すといけないので一応systemのバックアップを取っておこう、systemをCTRL+ドラッグでコピ〜systemを作っておけばOK。
4.対象の文字列を検索する。検索するバイナリは
61 00 75 00 74 00 6F 00 63 00 68 00 6B
Bzの右画面で見ると「a.u.t.o.c.h.k」。Bzの場合はツールバーの窓に「#61 00 75 00 74 00 6F 00 63 00 68 00 6B」と入れて隣の双眼鏡ボタンをクリックすれば検索される。
「a.u.t.o.c.h.k.*」が何回か出てくると思うが、検索を続けていると「a.u.t.o.c.h.k./.r」が見つかると思う。こいつが消す対象だ。
5.「a.u.t.o.c.h.k./.r.(省略).c.:」となっていると思うので、これを 「a.u.t.o.c.h.k.*」に変更。左のバイナリ画面で 2F を 2A に変更、そこから 3A までを00で埋める。
6.再起動
これでChkdskをしなくなったはずだ。俺は結局丸ごとコピーはあきらめ、Bart'sPEから wincpy.exeを使ってファイルコピーし、起動パーティションが違うのでboot.ini内の起動パーティション指定を変更、回復コンソールから fixboot c:(必要無いかもしれない)と fixmbr を実行してHDDの交換に成功した。このソフトはCRCエラーを無視してくれるので便利だが、どのファイルが壊れているか判らなくなってしまうがまぁそれどころではないので無視。
尚、レジストリを直接どころかバイナリエディタで変更する為、この作業によって発生したいかなるトラブルも私は責任を持たないのであしからず。起動したらレジストリエディタで作業した箇所が正常かどうか確認してほしい。
最近、やはり俺がCubePCを買うべきじゃぁ無かったなと後悔・・・。俺はパーツがあると全部つっこみたくなるタイプなのだが、SoundCardとVGAを刺しただけで熱暴走するCubePCには我慢出来ん。今までのPCでは詰め込むだけ詰め込んで熱くなったら騒音無視でFANを増設しまくっていたからな。
引っ越してくる前まで使っていたPCはフルタワーだったのだが、あれはほんとデカかった。なにしろマザーボードから5インチベイの一番上までケーブルが届かなくて苦労したりしたし。でも5インチベイが5〜6個あったり幾らでもFAN増設出来たりしたのでかなり重宝していた。
さて、次に買うとしたらやっぱミニタワーかミドルタワーだろう。例によって使えるパーツはすべて流用し、足りないパーツだけ購入する。といっても足りないのはマザーボードだけなので、安い筐体とマザーボードを3万位で仕入れればOKだと思う。それに Audigy4 入れて、今外付けになってるHDDとDVD内蔵して・・・、金が入ったらそうしたい・・・。
あとは今使っているすでに年代物になりかけているCambridge Soundworksの4.1スピーカースピーカーもそろそろ最新のデジタル対応5.1あたりに代えたい。しかし5.1や7.1にしようとしても後ろに置くスピーカーの処理に困るんだよね・・・、普通の人はどうやって使ってるんだろうか、いつも不思議に思う。
Audigy2NXが死亡。と思いきやXPの復元ポイントへ戻したら復活。この間、再インストールしたりデバイスいじくったり数時間費やしてしまった。
結局、電源を切って長時間放っておいたから冷えて復活したんじゃないのかなぁ・・・、と熱暴走でうまく動かなくなったのではないかというところに落ち着いた。Diagnosticで検査すると検出はOKなんだけどWaveやらMidiやらその他の機能が全てNGになるんだよね、どうにも訳の分からない故障だった。
そもそもこのUSBの音源を入れたのには訳があって、うちのちっちゃいCUBE PCにはAGPとPCIがそれぞれ1個しかなく、ぴったり隣接しているためにGeforce6600GTとSoundBlaster Liveを刺すと隙間が無くなり、吸気が出来なくなって廃熱が追いつかず6600GTが熱暴走してしまう、という問題を解決するために導入したのだが、Audigy2NX自体が熱暴走するんだったら結局熱で死んでしまうことになる・・・まったく意味がない・・・。まぁNXも廃熱しやすい所に置くように努めるしかないな。
故障に関しての情報を収集しようとしたが、同じような状況の不具合情報は2〜3件しかなく、両方とも結局は相性問題ではないかとして片付けられていたのだが、直前までなんの問題も無く使っていたのだから相性問題とは考えにくい。同じような状況の人は結局修理に出したようだが問題無いという事で返送されてきたそうだ。ということでやっぱり熱暴走かなぁと考えたが、返送されて来た時は冷えてるはずだから熱暴走関係ないと考えられる、しかしその人のその後の投稿がないから結局直ったのか直らなかったのか判らない。
ということで熱暴走>ドライバ、又は設定を壊す>故障したように見える。ということにでもしておく。
トラックバックテストしてみたらうちのトラックバックが機能しておりませんでした(ガッカリ)。
ということで原因を調べようととりあえずトラックバックURLをブラウザに放り込んでチェック。
http://www.rsi.gr.jp/MT/mt-tb.cgi/276
404エラーが出る。まぁ確かに/がついてたらmt-tb.cgiフォルダーの中の276というファイルを指定って解釈する事になるもんなぁ・・、この辺の設定IISにあったかなぁ〜とIISの設定を眺めていたら発見しました。
設定部分はここ、管理ツールのIISのサイトのプロパティ、又はMTフォルダのプロパティ内の「ディレクトリ」→「構成」ボタン→「.cgi」を選んで「編集」ボタン。これで開いた画面の「ファイルの存在を確認する」というチェックをはずす。これでOK。IISでActivePerlをインストールしたときにCGIやPLファイルを関連付けした時の事を覚えているだろうか、その時に開いた画面だ。「ファイルの存在を確認する」がサイト全体で無効になるのが嫌な場合はMTフォルダのプロパティで設定してください。MTフォルダ以下だけで適用されるようになります。
このチェックをはずしたことによって/以降がパラメーターとしてcgiファイルに引き渡されるようになったのでトラックバック受信は正常に成功した。
ということで今までトラックバックを送信してた方、申し訳ない。と思ったが掲示板にも書き込みないしそんな奴誰もいねーんだろうな。
数ヶ月に1度の割合なのだがこのBlogへコメントスパムが来るので mt-blacklist を導入しようと思ったのだが mt-blacklist.cgi を起動しようとしても起動せず。Path関係の問題かなとしばらく弄りながら悩んでいたのだが結局動かなかった。
起動しようとしてもサーバーから返事がこない感じ。cgi内部でわざとおかしいPathを設定するとちゃんとエラーが表示される。でも正常なPathを設定するとエラーの表示すらこない。Webサーバーのログを見ると302エラーと記録されていて、この302エラーはMoved Temporarilyという意味なんだが何も表示されないんだよなぁ。。とりあえず現時点では諦めました。