WSH はめんどくさい

WSHを始めよう @IT

連載開始記念。

WSH は面倒だ。それは WSH 自身は自動化するための道具じゃないから。WSH は単にスクリプト言語と OS を多少仲良くさせるための土台でしかない。

WSH は面倒だ。tips ばかりで体系的な資料が少ない。まるで Web 上に散見される Linux セットアップ情報と同じだ。

WSH は面倒だ。スクリプト言語は結構いろんなものが選べるはずなのに、ほとんどのサンプルは VBScript で、Un*x 系の人間にとって悪夢みたいなものだから。1

WSH は面倒だ。実は WSH のインターフェイスだけではできないことが多い。例えばファイルアクセス。これは WSH では提供されていない。WSH とはまた異なるライブラリである FileSystemObject を使うんだ。びっくりだろう?

WSH は面倒だ。実は WSH のインターフェイスだけではできないことが多い。WMI とか ADSI とか CDO とか知らないと結局外部コマンド頼みだ。しかも標準で用意されている外部コマンドではできないこともまた多いんだ。

WSH は面倒だ。WMI や ADSI に関しては WSH よりぐっと情報が少ない。オブジェクトの定義を示した英語のリファレンスは存在するので、それを読んで「こうかな?」とコードを組み立てていく必要がある。

WSH は面倒だ。ってゆーか WMI で出てくる奇妙なおまじないや WQL?ってゆーの? あれがキモイ。<> とか BASIC 風なのはゲイツの呪いかとか思っちゃう。Windows に触る限り BASIC 文化からは逃れられないってか。

WSH は面倒だ。CDO に至ってはもはや現行の資料があるんだかどうだかあやしいレベルだ。WSH と CDO を使ってメールを送信するサンプルスクリプトはいくつか見つかるが、じゃあ CDO では他に何ができるのか、教えてくれるサイトは Microsoft を含めてないに等しい。2

WSH は面倒だ。なぜなら提供されるライブラリが「機能するコマンド」ではないから。これらはあくまでプログラマが扱うオブジェクトなんだ。OS が持ってる情報を、多少スクリプトからも利用しやすいようにラップしただけなんだもの。プログラミングが得意な人ならともかく、管理コストを下げたいだけの人に対してはハードルが高いと言わざるを得ない。たぶん Visual WSH Studio なんつー製品が出る日も近い。


連載への期待と自身が WSH へ感じた落胆をミックスしてネタにしてみた。

基本的に Windows の管理の自動化は Unix の管理の自動化より面倒だと思う。標準で揃ってる道具に違いがありすぎる。log の rotate 一つサクっとできないだけで十分にいやな思いを満喫できるってもんだ。スクリプトに関しては MSH3 ベースになったら多少面白いかなとは思うんだけど4、そうするとまたイチからノウハウの溜め直し。この「以前のノウハウが死んでしまうことがやたら多い」のも管理する側からすると Windows の決定的にダメなところ。新機能が嬉しいなんて思うのは営業と広告記事書く人と何も分からずにお金だす人だけ。管理する人間にとっては同じノウハウが長い間通用して安定して動くことの方が何倍も嬉しい。

あと MSH/Windows PowerShell が .NET Framework 前提なのは旧世代の人間からすると嬉しくないですな。そんな追加追加でやっていいなら ActivePerl 入れてゴリゴリやっちゃうよと思ってしまう。だってその方が Windows 独自の話に悩まなくてよくなる部分が増えてハッピーだもの。

ちゅーことでスクリプトについては Vista に期待ってことで(え

※ おめーはこんな情報も押さえてねーのか、ってツッコミは大歓迎です。

参考

アサマシも含めて手元の資料を吐き出しておく。

WSH

microsoft のサイトはできるだけ英語の方を探した方がよい。日本語版は訳が追いついてなくて結構な数のページが存在しない。あと、CHM ファイルに関するグチはこの資料を見てて感じたものです。絶対使いにくいって!

WMI & ADSI

Scriptomatic っていうツールがあるんですが、要するにただのサンプル閲覧環境ってだけで別に嬉しくなかった。なんかすげー絶賛されてたりするんだけど、なんでか分からん。まぁオフラインでも WMI とか ADSI 使ったスクリプトの開発ができますよってことか?

CDO つか Messaging

自由度を求めるなら CDO は使わずに Command Line SMTP Mailer for WindowsXMail Home Page (日本語) や BSENDM EXE などなどの SMTP クライアント(サーバ)を自前で用意した方がたぶん確実で早い。余計なものを入れたくない気持ちは分かるが、標準状態の Windows はつらすぎる。

※ しまった。タイトルは「あなたが WSH を使うべきでない10の理由」にするんだった!

  1. てゆーか Windows 自身はオブジェクトの固まりなのに VB がオブジェクト指向じゃなくて超キモイんですけど?(ストレスの位置に注意) 

  2. 言い過ぎかも。でも見つけられなかったんだよぉ。例えば POP before SMTP を使って警告を携帯に投げるとかできたら面白いのにさ。 

  3. 正式名称は Windows PowerShell になったそうだ。 

  4. ほんとは MOM スクリプトと言いたいところだけど、まだそこまで分かりません。 

More