今週は、これまでにスクリプト関連の記事で取り上げてきていなかったものを中心に、紹介していくことにしよう。手持ちのスクリプトに関して基本的な動作はできているが、さらにブラッシュアップしたい、機能を高めていきたい、といった場面で役立ちそうな記事や、システム管理者の仕事に役立ちそうなスクリプトを対象にしてみたい。
スクリプトに磨きをかける
ソフトウェアの開発というのはおしなべてそうだが、意図している機能をそのまま実現するだけであれば、比較的、すんなりと実現できる場合が多い(といっても、やろうとしている作業の内容によるが)。
ところが、エラーが発生したときの処理、予期しない事態が発生したときの処理などを組み込もうとしたり、セキュリティなどの観点から改善を図ろうとしたりすると、かかる手間が増えてくる。これはスクリプトでも同じだ。
そこで、TechNet Onlineのスクリプトセンターでは、さまざまなヒントやコツについてのサンプルをまとめた記事が用意されている。
スクリプト一覧 : スクリプト テクニック
http://www.microsoft.com/japan/technet/scriptcenter/scripts/misc/default.mspx
たとえば、ユーザーIDやパスワードを入力する場面で、入力した内容がそのまま画面に現れてしまうのは好ましくない。「○○○」などといった形でマスクする方が、セキュリティの観点から見て具合がいい。それを実現するためのサンプルスクリプトが、以下の記事中に用意されている。
パスワードのマスク
http://www.microsoft.com/japan/technet/scriptcenter/scripts/misc/password/default.mspx
読んで字のごとく、パスワードのマスク方法を示したサンプルスクリプトだ。対象としては、コマンドラインでの入力と、Internet Explorerを使ったHTMLフォーム入力の2種類を用意している。後者についてはHTML文書ファイル名の指定が必要なので、サンプル中にあるものと同じファイル名を持つフォーム付きのHTML文書を作成するか、既存のHTML文書に合わせてスクリプトのファイル名指定を修正する必要がある。
また、時間がかかる処理を行うときには、作業の進捗度合を視覚的に示す方が、ユーザーにとって親切だろう。数字で、たとえばパーセント単位で表示しても良いが、プログレスバーを表示する方がもっと分かりやすい。
その、プログレスバーを表示する方法について取り上げたサンプルスクリプトも用意されている。こちらも、コマンドラインとInternet Explorerを対象にしている。
プログレス バー
http://www.microsoft.com/japan/technet/scriptcenter/scripts/misc/progress/default.mspx
ただし、記事中にもあるが、ここにあるサンプルスクリプトで実現できるのは、あくまで"擬似的な"プログレスバーだ。それでも、数字で示すのとは大きな違いがあるといえるだろう。
システムの設定変更やログの保存をスクリプトで
このほか、WebページのHTMLソースを取得するスクリプトや、RSSフィードをXML文書ファイルとしてローカルディスクに保存するサンプルもある。たとえば、特定サイトのWebコンテンツ、あるいはRSSフィードを定期的にローカルに保存しておきたいときに、こうしたスクリプトを利用できる。
インターネット リソースの取得
http://www.microsoft.com/japan/technet/scriptcenter/scripts/misc/intnet/default.mspx
面白いところでは、「ネットワーク」がある。TCP/IP設定に関する情報の取得や変更をスクリプトから行うサンプルが掲載されているが、これならipconfigコマンドを使うよりもユーザーフレンドリーなので(?)、ユーザーに「設定情報の確認用」として使ってもらう手が考えられそうだ。
スクリプト一覧 : ネットワーク
http://www.microsoft.com/japan/technet/scriptcenter/scripts/network/default.mspx
有用性が高いものといえば、イベントログもそうだ。既定の設定では、サイズ上限を超えると古いログから上書きしてしまうため、肝心なときに情報がなくなっている可能性がある。定期的にイベントログをエクスポートさせておけば、そんな心配もなくなる。
イベント ログ
http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/default.mspx
変わったところでは、スクリプトからデータベースを呼び出して利用することもできる。ADO (ActiveX Database Objects)を用いてデータベースに接続すると、データを書き込んだり、取り出したり、あるいは更新したりといった処理ができる。ADOでデータベースにアクセスするには、OLE DBプロバイダに対応しているデータベースが必要だが、これはMicrosoft SQL ServerでもMicrosoft Accessでもよい
ただし、データベースの種類に関係なく、クエリはSQLで記述しなければならないので、そこがちょっとハードルを高くしているかも知れない。
データベースの利用
http://www.microsoft.com/japan/technet/scriptcenter/scripts/misc/database/default.mspx
余談だが、ADOはスクリプトだけでなく、VBAから呼び出して利用することもできる。実際、筆者はある仕事で利用するため、WordのVBAマクロからADOを使ってAccessデータベースにアクセスするマクロを記述したことがある。データベースに入っているデータを使って、文書を自動的に作成するのが目的だ。

『TechNet Plus Direct サブスクリプション』を5名様にプレゼント!
2010年4月30日までに応募された読者の中から、抽選で5名様に「TechNet Plus Direct サブスクリプション」をプレゼントします。
TechNet Plus サブスクリプションは、情報システムの評価、導入、運用、管理を支援する IT プロフェッショナルのための年間購読サービスで、マイクロソフトの最新技術リソースや、製品評価版のソフトウェアやベータ版をダウンロードして評価目的で利用できます。
TechNet Plus サブスクリプションの詳細はこちら
ご提供: マイクロソフトマイコミジャーナル1クリックプレゼントは、各企業様のご協力をいただいて、読者の皆様に先着&抽選で素敵な賞品がもらえるプレゼント企画です。マイコミジャーナル会員であれば誰でも申し込み可能です。奮ってご応募ください。
応募方法 : マイコミコミジャーナル会員でない方は、「プレゼントに応募する」ボタンをクリックして案内に従って会員登録を済ませてからご応募ください。※会員登録されていても追加情報の登録が必要な場合があります。
賞品名 :TechNet Plus Direct サブスクリプション(抽選・5名様)
応募締切 : 2010年4月30日(日)
発表方法 : 当選者に当選を知らせるメールをお送りしますので、これをもって発表に代えさせていただきます。