Windows Scripting Hostのオブジェクト構成図

バッチ ファイルのもつ意味

Microsoft Windows Scripting Host(WSH)は、32ビットWindowsプラットフォーム上で動作するActiveXスクリプティング エンジン用の、言語に依存しないホストです。このツールにより、Windows 9xやWindows NT基本オペレーティング システムにおいて、Visual Basic Scripting Edition(VBScript)とJScriptェ をネイティブで実行できます。ActiveXでサポートされているスクリプティング言語は、VBScript、Jscript、PERL、Pythonなどいくつかあります。自分の使い慣れているスクリプティング言語を使用して、日常的な作業や自動化するスクリプトを書いたり、強力なマクロやログイン スクリプトを作成したりできます。

この構成図は、Windows Scripting Hostに含まれている個々のオブジェクトのメソッドやプロパティを示します。WSHの詳細と使用方法についてはhttps://www.microsoft.com/scripting/を参照してください。

Windows Scripting Hostのオブジェクト モデルの概要

Windows Scripting Hostのオブジェクト モデルは、ActiveXインターフェイスの2つの主要なカテゴリを提供します。

  • スクリプト実行とトラブルシューティング:スクリプト実行に直接関係のあるプロパティとメソッド。このインターフェイス セットにより、スクリプトからWindows Scripting Hostの操作、画面上のメッセージ表示、およびCreateObjectとGetObjectなどの基本的な機能を実行できます。
  • 支援機能:ネットワーク ドライブの割り当て、プリンタへの接続、環境変数の取得と変更、およびレジストリ キーの操作をするプロパティとメソッド。これらの機能は、管理者がWindows Scripting Hostを使用して簡単なログイン スクリプトを作成できるように提供されています。

管理者は、Windows Scripting Hostによって提供されるオブジェクト インターフェイスの他に、オートメーション インターフェイスを公開している任意のActiveXコントロールを使って、Windowsプラットフォーム上で様々な作業を実行できます。たとえば、管理者はActive Directoryを使用してWindows NT Directory Serviceを管理するスクリプトを書けます。右のサンプル スクリプトを参照してください。

WSHは、Microsoft Internet Explorerと同じようにActiveXスクリプティング エンジンのコントローラとして機能します。Scripting Hostは完全なインターネット ブラウザではないので、Microsoft Internet Explorerよりメモリの消費量が少なくてすみます。そのため、Windows Scripting Hostは短く簡単な作業の実行に適しています。

スクリプティング エンジンは、(HTMLで使用される)SCRIPTタグやLANGUAGE属性を使用しない代わりに、ファイルの拡張子に依存します。そのため、スクリプトを書く人は各種のスクリプト エンジンの正確なProgIDを知っている必要がありません。Scripting Hostは、スクリプト ファイルの拡張子とProgIDの対応関係を管理し、Windowsの関連付けモデルを通じて正しいエンジンを起動します。

詳細については、https://www.microsoft.com/scripting/にある“Windows Scripting Host”という題名の記事を参照してください。Windows NT Serverの最新情報については、https://www.microsoft.com/ntserver/またはMicrosoft NetworkのWindowsNT Server Forum(GO WORD: MSNTS)をご覧ください。

Windows Scripting Hostのためのサンプル スクリプト

このサンプルは、レジストリのエントリを書き込んだり削除したりする方法を示します。

L_Welcome_MsgBox_Message_Text   = "This script demonstrates how to create and delete registry keys."
L_Welcome_MsgBox_Title_Text     = "Windows Scripting Host Sample"
Call Welcome()

' **********************************************************************
' *
' * Registry related methods.
' *
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Popup "Create key HKCU\MyRegKey with value 'Top level key'"
WSHShell.RegWrite "HKCU\MyRegKey\", "Top level key"
WSHShell.Popup "Create key HKCU\MyRegKey\Entry with value 'Second level key'"
WSHShell.RegWrite "HKCU\MyRegKey\Entry\", "Second level key"
WSHShell.Popup "Set value HKCU\MyRegKey\Value to REG_SZ 1"
WSHShell.RegWrite "HKCU\MyRegKey\Value", 1
WSHShell.Popup "Set value HKCU\MyRegKey\Entry to REG_DWORD 2"
WSHShell.RegWrite "HKCU\MyRegKey\Entry", 2, "REG_DWORD"
WSHShell.Popup "Set value HKCU\MyRegKey\Entry\Value1 to REG_BINARY 3"
WSHShell.RegWrite "HKCU\MyRegKey\Entry\Value1", 3, "REG_BINARY"
WSHShell.Popup "Delete value HKCU\MyRegKey\Entry\Value1"
WSHShell.RegDelete "HKCU\MyRegKey\Entry\Value1"
WSHShell.Popup "Delete key HKCU\MyRegKey\Entry"
WSHShell.RegDelete "HKCU\MyRegKey\Entry\"
WSHShell.Popup "Delete key HKCU\MyRegKey"
WSHShell.RegDelete "HKCU\MyRegKey\"
' ***********************************************************************
' *
' * Welcome
' *
Sub Welcome()
    Dim intDoIt
    intDoIt =  MsgBox(L_Welcome_MsgBox_Message_Text,    _
                      vbOKCancel + vbInformation,       _
                      L_Welcome_MsgBox_Title_Text )
    If intDoIt = vbCancel Then
        WScript.Quit
    End If
End Sub