まるでトラップ

またまた出ました「緊急」レベルのセキュリティ・ホール、もういい加減にして欲しいものです。

Windowsにとても危険なセキュリティ・ホール,仕事前にまずは対策を
http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20040211/139698/

会社のアドミン君が早朝出勤してサーバに「Windows Update」をしてくれた。いやはやご苦労様です。

と、ここで終わってしまっては日記ネタになりません。

とりあえずクライアント側も一通り「Windows Update」を掛けヤレヤレ…。あーれー?日付が変!

イントラの日付が変!!。日付処理をしているページが全滅です。なんじゃこりゃー!

「2000年対応」でバダバタしていた当時、日付処理を簡単にするために何か方法はないかと探して発見した方法。

「日付の短い形式を“yyyy/MM/dd”にする」

これはコントロールバネルの地域のオプションで指定できます。これにするとDate関数で“2004/02/12”のように“年”を4桁で取得することができるのです。

そこで日付の設定を確認してみると「和暦」になっていたり、“yyMMdd”になっていたりバラバラ。とりあえずイントラのサーバの設定を元に戻して解決…。

のハズでしたが全然解決しません。今まではこれで解決でしたが、今回はなぜ?

なんでだなんでだ〜。と騒いでいても仕方が無いので日付処理をしているイントラのページを全て修正。うーん、腹が立つ。

ネットで検索しても今回の「Windows Update」で変になったという情報はどこにも無いようだ。A君に今回の件を連絡して、A君の部署が使っている「業者が作ったシステム」を調べてもらったところ、「どんな日付形式が来ても強制的に自分が使いたい形式に変換する」というサブルーチンが組み込まれていた。さすがにやるな。

私もVisualBasicで作る分には自分で形式変換させていたが、イントラの方はやっていなかった。なぜかというとVisualBasicには日付形式を変換してくれる関数が用意されているのでそれをかますだけで済んでしまうが、イントラのスクリプト(ASP)にはそれが存在しないので自分でゴリゴリ記述する必要があり面倒。手抜きしたツケが今日来るとは…。

それにしてもコントロールバネルの地域のオプションが有効にならないというのは腑に落ちない。そこでマイクロソフトのサイトを検索してみると「変更後は再起動する」と書かれている。なんじゃこりゃ〜。サーバをそんな理由で再起動できるか〜。

と怒れてきましたが、怒りに任せて再起動。苦情が来ないことを祈りつつ…