Windows TIPS ディレクトリ

Scripting

更新日:2006/03/31

 サブディレクトリ
 Scripting
Windows標準機能とWSHを使ってメールを送信する
コマンド・プロンプトでメールを送信できれば、さまざまな管理業務などに応用することができる。その場合、Windowsの標準機能だけで送信できるようになっていると、OSプラットフォームを問わずに利用できる。 / Windowsシステムに含まれるCDOコンポーネントを利用することで、WSHスクリプトからメールを送信することができる。
バッチ・ファイル中で日付をファイル名に使用する
バッチ・ファイル中で日付や時間をベースにしたファイル名を利用したい場合がある。/このような用途では、環境変数の%date%や%time%を利用して、ファイル名を合成すればよい。
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スクリプトの仕様書を生成する
WSHが標準で生成するヘルプ・メッセージは、必ずしも使い勝手がよいものではない。 / WshDocスクリプトを利用することで、より一覧性に富んだHTML形式のヘルプ・ドキュメントを生成することができる。
よく利用するジョブをスクリプトレットでコンポーネント化する
多くのWSHスクリプトを記述していると、同じようなロジックを繰り返し記述するような局面が出てくる。 / しかし部品化をするにもVisual BasicやC++など、本格的なプログラム言語を使用しなければならないのでは、あまりに敷居が高い。 / スクリプトレットを利用することで、使い慣れたVBScriptやJScriptなどのスクリプト言語を利用してCOMコンポーネントを開発することができる。
whichコマンドを作る
forコマンドの制御変数の参照方法にはさまざまな拡張表記が用意されている。 / 「%~$PATH:I」という表記方法を使うと、PATH変数の指すフォルダからファイルを検索させることができる。これを使ってwhichコマンドを実現してみる。
WSHで環境変数を設定する
組織内では、環境変数を統一して設定しておくことで、コマンド・プロンプトでの作業などで環境の違いによるトラブルを未然に防ぐことができる。 / WSHを利用すれば、環境変数の設定に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連の環境変数を設定できる。
WSHでIEの「お気に入り」一覧を設定する
オフィスで業務用PCを導入する場合、社員が共通して使用するWebサイト/アプリケーションへのURLを一律に設定しておきたいことがある。 / WSHを用いれば、URLの生成に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連のURL情報をお気に入りに登録することができる。
曜日や日付によって処理を切り替える(BAT File)
曜日や日付によってバッチ・ファイルの処理を切り替えたいと思っても、バッチ・ファイルの機能だけでこれを実現するのは容易ではない。 / しかしWSHを組み合わせれば、簡単に実現できる。 / 曜日や日付に限らず、必要に応じてカスタマイズしたスクリプトを用意することもできる。
一定時間以上離席したら強制的にログオフさせる
離席中に端末を別人に操作されるという危険がある。これを回避するには、スクリーン・セーバを有効にし、パスワード保護を有効にすればよい。 / この方法では、コンピュータがロックされてしまうので、複数のユーザーで端末を共有している場合には使えない。 / このような場合は、ロックではなく、強制ログオフできると便利だ。今回はこれを可能にする簡単なスクリーン・セーバ・プログラムを編集部で作成した。
WSHでレジストリの読み書きを行う
レジストリに直接アクセスすることで、通常のユーザー・インターフェイスからでは参照/設定できないような情報も取得/操作することができる。 / レジストリをユーザーが直接に操作するのは何かと危険が伴うが、WSHを介することで安全なレジストリ設定が可能になる。
ログオンの失敗をメールで通知する
重要なサーバなどでは、ログオンの失敗が発生したことを検知したい場合がある。 / WMIを利用して、ログオン失敗時に発生するイベントを監視することができる。さらにCDOを組み合わせれば、ログオン失敗の発生をメールで通知させることが可能である。
WSHに渡された引数の妥当性を自動検証する
要素で宣言された引数情報は、あくまでオンライン・ヘルプを作成するための情報にすぎず、実行時に仕様とは異なる引数を渡してもWSHはエラーを発生しない。 / だが要素に記述された引数情報と実行時に渡された引数とを動的に照合・検証するスクリプトを作成・利用することで、エラーを検出することができる。
グループ・ポリシーを使って、コンピュータの終了時にコマンドを実行する
コンピュータのシャットダウン時に何らかの処理を行いたい場合は、グループ・ポリシーを使って制御することができる。 / 起動時やシャットダウン時に実行するスクリプトは、[コンピュータの構成]にある[Windowsの設置]−[スクリプト]で指定する。 / バッチ・ファイルだけでなくJScriptやVBScriptなどのWSHスクリプトも実行可能である。
WSHスクリプト・コードを暗号化する
スクリプト言語によるプログラミングには簡易である反面、ソース・コードがエンドユーザに露出してしまう、コードの改変が可能である、などの問題も存在する。 / しかし、フリーで利用可能なScript Encoderを利用することで、スクリプトコードを暗号化し、ユーザーの目から隠ぺいすることができる。
デスクトップ上に必要なショートカットを自動生成する
オフィスで業務用PCを導入する場合、社員が共通して使用する業務アプリケーションやドキュメントなどへのショートカットを一律に設定しておきたいことがある。 / WSHを用いれば、ショートカットの生成に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連のショートカットを作成することができる。


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間