Windows TIPS ディレクトリ

Windows Script Host(WSH)

更新日:2006/03/31

 サブディレクトリ
 Windows Script Host(WSH)
Windows標準機能とWSHを使ってメールを送信する
コマンド・プロンプトでメールを送信できれば、さまざまな管理業務などに応用することができる。その場合、Windowsの標準機能だけで送信できるようになっていると、OSプラットフォームを問わずに利用できる。 / Windowsシステムに含まれるCDOコンポーネントを利用することで、WSHスクリプトからメールを送信することができる。
WSHからExcelファイルの設定情報を読み込む
アプリケーションのデータ・ファイルとして、カンマ/タブ区切り形式やXML形式が採用されるケースは多い。しかしこの形式はいずれも視認性に乏しい、編集の手間が煩雑などの要因から、エンド・ユーザーにメンテナンスさせるのは必ずしも容易ではない。 / Excelフォーマットを用いることで、データの中身を人間が視認しやすくなり、メンテナンスを行う際の不用意な誤りも減らすことができる。
テンプレートを元に複数メールを一括配信する
メール送信用コンポーネントBasp21を利用することで、ExcelやAccess上で管理されたメール・アドレスに対して、いっせいにメール送信することが可能になる。 / しかしメール送信用のデータをハードコーディングしてしまうと、本文を変更するためだけにプログラムそのものを変更する必要があり、不便なケースが少なくない。 / そこで、メール送信用のデータをあらかじめテキスト・ファイルとして外部データ化しておくことで、モジュールの再利用が容易になる。
WSHで名前付き引数と名前なし引数を扱う
アプリケーション(コマンド)に対して引き渡すことができる引数は、「名前付き引数」と「名前なし引数」の2つに分類することができる。 / WSHスクリプトでは、WshNamedとWshUnnamedオブジェクトを介することで、これら2種類の引数を取得することができる。
WSHで簡単なバックアップツールを作成する
日々コンピュータ上で更新されるドキュメントやデータは、いずれも重要な資産である。 / これらのデータを不測の事故によって消失させないためには、日々のバックアップ作業が重要である。 / WSHを用いることで、特別なバックアップツールを用いなくても、指定したフォルダの内容を日単位でまとめてバックアップすることが可能になる。
タスク・スケジューラとWSHで定例処理を実現する
タスク・スケジューラを利用することで、任意のアプリケーションを定期的に実行することができる。 / WSHで組んだコードやバッチ・コマンドなどと組み合わせれば、特定の処理をバッチ処理することができる。
WSHでインタラクティブな試験対策ツールを作成する
WSHを利用してインタラクティブな1問1答形式の試験対策ツールを作ってみる。 / 問題文はテキスト・ファイルで与える。このファイルの内容を変更するだけで、問題を差し替えることができる。
WSHスクリプトでヘルプ・メッセージを表示する
WSHで作成したコードをエンド・ユーザーなどに配布する場合、いちいち使用マニュアルを配布するのは面倒である。 / そのような場合、「.wsf」ファイルに要素を加えることで、コード中に簡単にオンライン・ヘルプを含めることができる。
WSHでログオン時に共有フォルダを設定する
複数のユーザーでコンピュータを共有していると、ログオンするユーザーによって異なる共有フォルダに接続したいというケースがある。 / WSHとタスク・スケジューラを組み合わせると、ログオン時に自動的に共有フォルダの設定を行うことができる。
ファイルの文字コードを変換する
指定されたフォルダの下に存在するテキスト・ファイルの文字コードを一括で変換したいことがある。 / このためには、文字コード変換用のコンポーネットをWSHから呼び出せばよい。
複数ファイルの文字列置換をワンクリックで行う
複数のテキスト・ファイル内にある文字列を置き換えるには、一括処理するツールがあると便利である。 / Windowsに標準搭載されているスクリプト実行環境を利用することで、テキスト処理を自動化させることができる。 / 置き換え文字列の指定には、固定文字列だけでなく、正規表現を使用することもできる。
コマンドライン・リファレンスを素早く表示する
バッチ処理的な管理業務にはコマンドプロンプトが便利だが、コマンド名を覚えていないと使えない。 / コマンド一覧のヘルプを参照したくても、簡単に起動することはできない。 / 「ヘルプとサポート」からたどることもできるが、ステップ数が多く、見つけ出すのは困難だ。 / ヘルプ・ファイルのショートカットを作成すれば、素速くアクセスできる。
WSHコードで発生したエラー情報をイベント・ログに記録する
イベント・ログは、ハードウェアやソフトウェア、そのほか、システム全般の問題について情報を収集するための重要な手掛かりだ。 / スクリプト内でエラーが発生した場合にも、エラー情報をイベント・ログに記録しておくことで、システム全体の一元的な監視が容易になる。
スクリプトレット・コンポーネントでリソース情報を定義する
コード内で頻繁に参照するデータを何度も繰り返しハード・コーディングすることは、コード保守の観点からも好ましくない。 / そのようなデータは、リソースとしてスクリプト・ブロックから分離することで、情報を一元化できるのみならず、変更時にもコードそのものに手を加える必要がなくなり、保守性を向上させることができる。
スクリプトレット・コンポーネントでプロパティを定義する
スクリプトレットでは、コンポーネント内共通で利用するパラメータを「プロパティ」として表現することができる。 / プロパティは単なる変数として定義することもできるが、アクセス用の関数を介することで、プロパティ設定時の妥当性チェック、参照時の値加工などを行うことができる。
WSHからXMLファイルの設定情報を読み込む
アプリケーションの設定ファイルとして、カンマやタブ区切り形式が採用されるケースは多い。だがこの形式は視認性/拡張性に乏しいという難点がある。 / XMLを利用することで、データの中身を人間の目が視認しやすく、かつ、データ・レイアウトの変更にも強い設定ファイルを構築することができる。
イベント・ログに任意の文字列を出力する
バッチ・ファイルやWSHを使って作成したタスクから、Windows OS標準のイベント・ログへ出力することにより、タスクの実行結果やエラーなどを統一的に管理することができる。 / WSHでイベント・ログへ出力するためには、WshShellオブジェクトのLogEventメソッドを利用する。 / コマンドラインで出力するにはEventcreateやLogEventコマンドを利用する。
WSHスクリプトの仕様書を生成する
WSHが標準で生成するヘルプ・メッセージは、必ずしも使い勝手がよいものではない。 / WshDocスクリプトを利用することで、より一覧性に富んだHTML形式のヘルプ・ドキュメントを生成することができる。
よく利用するジョブをスクリプトレットでコンポーネント化する
多くのWSHスクリプトを記述していると、同じようなロジックを繰り返し記述するような局面が出てくる。 / しかし部品化をするにもVisual BasicやC++など、本格的なプログラム言語を使用しなければならないのでは、あまりに敷居が高い。 / スクリプトレットを利用することで、使い慣れたVBScriptやJScriptなどのスクリプト言語を利用してCOMコンポーネントを開発することができる。
WSHで環境変数を設定する
組織内では、環境変数を統一して設定しておくことで、コマンド・プロンプトでの作業などで環境の違いによるトラブルを未然に防ぐことができる。 / WSHを利用すれば、環境変数の設定に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連の環境変数を設定できる。
WSHでIEの「お気に入り」一覧を設定する
オフィスで業務用PCを導入する場合、社員が共通して使用するWebサイト/アプリケーションへのURLを一律に設定しておきたいことがある。 / WSHを用いれば、URLの生成に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連のURL情報をお気に入りに登録することができる。
ディスク・デフラグをスケジュール実行する(Windows 2000編)
Windows 2000に付属するディスク・デフラグ・ツールには、スケジュール機能がない/少々無理はあるが、WSHでスクリプトを作れば、スケジュール実行が可能になる。
曜日や日付によって処理を切り替える(BAT File)
曜日や日付によってバッチ・ファイルの処理を切り替えたいと思っても、バッチ・ファイルの機能だけでこれを実現するのは容易ではない。 / しかしWSHを組み合わせれば、簡単に実現できる。 / 曜日や日付に限らず、必要に応じてカスタマイズしたスクリプトを用意することもできる。
WSHでレジストリの読み書きを行う
レジストリに直接アクセスすることで、通常のユーザー・インターフェイスからでは参照/設定できないような情報も取得/操作することができる。 / レジストリをユーザーが直接に操作するのは何かと危険が伴うが、WSHを介することで安全なレジストリ設定が可能になる。
WSHに渡された引数の妥当性を自動検証する
要素で宣言された引数情報は、あくまでオンライン・ヘルプを作成するための情報にすぎず、実行時に仕様とは異なる引数を渡してもWSHはエラーを発生しない。 / だが要素に記述された引数情報と実行時に渡された引数とを動的に照合・検証するスクリプトを作成・利用することで、エラーを検出することができる。
グループ・ポリシーを使って、コンピュータの終了時にコマンドを実行する
コンピュータのシャットダウン時に何らかの処理を行いたい場合は、グループ・ポリシーを使って制御することができる。 / 起動時やシャットダウン時に実行するスクリプトは、[コンピュータの構成]にある[Windowsの設置]−[スクリプト]で指定する。 / バッチ・ファイルだけでなくJScriptやVBScriptなどのWSHスクリプトも実行可能である。
WSHスクリプト・コードを暗号化する
スクリプト言語によるプログラミングには簡易である反面、ソース・コードがエンドユーザに露出してしまう、コードの改変が可能である、などの問題も存在する。 / しかし、フリーで利用可能なScript Encoderを利用することで、スクリプトコードを暗号化し、ユーザーの目から隠ぺいすることができる。
デスクトップ上に必要なショートカットを自動生成する
オフィスで業務用PCを導入する場合、社員が共通して使用する業務アプリケーションやドキュメントなどへのショートカットを一律に設定しておきたいことがある。 / WSHを用いれば、ショートカットの生成に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連のショートカットを作成することができる。


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間
ソリューションFLASH