| その他の名前 | Windows スクリプティング ホスト |
|---|---|
| 開発者 | マイクロソフト |
| 安定版リリース | 5.812
|
| オペレーティング·システム | マイクロソフトウィンドウズ |
| タイプ | 自動化技術 |
| ライセンス | 独自の 商用ソフトウェア |
| Webサイト | Windows スクリプト ホストの概要 |
Microsoft Windows Script Host ( WSH ) (旧称Windows Scripting Host ) は、バッチ ファイルに匹敵するスクリプト機能を提供するMicrosoft Windowsオペレーティング システムの自動化テクノロジですが、サポートされる機能の 範囲はより広くなっています。このツールは、Windows 95 Build 950a 以降のインストール ディスクで、コントロール パネルから構成およびインストール可能なオプションのインストールとして最初に提供され、その後、Windows 98 (Build 1111) 以降および Windows NT 4.0 Build 1381 および Service Pack 4 の標準コンポーネントになりました。WSH は、IE バージョン 3.0 以降にインストールされた WSH エンジンを介してInternet Explorerを自動化する手段でもあります。この時点で、VBScript はMicrosoft Outlook 97の自動化手段になりました。 [1] WSH は、 Windows CE 3.0 以降 用の VBScript および JScript エンジンとともに提供されるオプションのインストールでもあり、 Rexxやその他の形式の Basicを含むいくつかのサード パーティ エンジンも利用できます。[2] [3] [4]
さまざまなActive Scripting言語エンジンを利用できるという点で、言語に依存しません。デフォルトでは、プレーンテキストのJScript (.JS および .JSE ファイル) とVBScript (.VBS および .VBE ファイル) を解釈して実行します。
ユーザーは、さまざまなスクリプト エンジンをインストールして、たとえばPerlScriptなどの他の言語でスクリプトを作成できるようにすることができます。言語に依存しないファイル名拡張子WSF も使用できます。Windowsスクリプト ファイル(.WSF) の利点は、1 つのファイル内で複数のスクリプト (「ジョブ」) と複数のスクリプト言語の組み合わせを使用できることです。
WSH エンジンには、Rexx、ooRexx、BASIC、Perl、Ruby、Tcl、PHP、JavaScript、Delphi、Python、XSLTなどの言語のさまざまな実装が含まれています。
Windows Script Host は、 Windows 98以降のバージョンの Windowsにデフォルトで配布され、インストールされます。また、 Internet Explorer 5 (またはそれ以降のバージョン) がインストールされている場合もインストールされます。Windows 2000以降では、Windows Script Host はユーザー ログイン スクリプトで使用できるようになりました。
使用法
Windows Script Host は、ログオン スクリプト、管理、一般的な自動化など、さまざまな目的に使用できます。Microsoft はこれを管理ツールと説明しています。[5] WSH はスクリプトを実行する環境を提供します。適切なスクリプト エンジンを呼び出し、スクリプトが操作する一連のサービスとオブジェクトを提供します。[5]これらのスクリプトは、 GUIモード ( WScript .exe) またはコマンド ライン モード ( CScript .exe)、または COM オブジェクト ( wshom .ocx)から実行できるため、対話型または非対話型のスクリプトを柔軟に実行できます。[6] Windows Management Instrumentationもこの方法でスクリプト化できます。
WSH、エンジン、および関連機能も、VBAおよび Visual Studio オブジェクト エクスプローラー、およびさまざまなスクリプト デバッガー(Microsoft Script Debuggerなど) やエディターなどの同様のツールによってアクセス、スクリプト化、およびクエリできるオブジェクトとしてリストされています。
WSH は、一連のコンポーネント オブジェクト モデル(COM) インターフェイスを公開するオブジェクト モデルを実装します。[7]そのため、ASP、IIS、Internet Explorer、CScript、WScript に加えて、WSH を使用して、COM やその他の公開オブジェクトを持つ任意の Windows アプリケーションを自動化し、通信することができます。たとえば、PerlScript を使用してさまざまなODBCエンジンやSQLなどのさまざまな手段でMicrosoft Accessにクエリを実行したり、ooRexxScript を使用してMicrosoft Excel、Quattro Pro、Microsoft Word、Lotus Notesなどで Rexx マクロを作成したり、XLNTスクリプトを使用して環境変数を取得して新しいTextPadドキュメントに印刷したりすることができます。
Microsoft Office、Open Office(およびPythonやその他のインストール可能なマクロ言語)、Corel WordPerfect OfficeのVBA機能はWSHエンジンとは別ですが、Outlook 97はマクロ言語としてVBAではなくVBScriptを使用しています。 [8]
ActiveState PythonScript形式のPython は、 PerlScript、 ooRexxScript、 PHPScript、 RubyScript、 LuaScript、XLNTなどのエンジンがインストールされている他の言語と同様に、SecureCRT内のデータの自動化とクエリに使用できます。 注目すべき例外の 1 つはPaint Shop Proで、これは PythonScript WSH エンジンや、 Unix エミュレーションおよび統合ソフトウェア スイートに付属する Python インタープリタやその他のスタンドアロン Python 実装など、外部の Python 実装を中間として使用するのではなく、 PSP プログラム自体のマクロインタープリタを使用してPython で自動化できます。[9] [10]サードパーティの Python がインストールされていない場合でも、実際にこのようにプログラムできます。 Rexx でプログラム可能な端末エミュレータ Passport についても同様です。[11] Van Dyke の SecureCRT端末エミュレータ、 SecureFX FTP クライアント、および関連するクライアントおよびサーバー プログラムは、現在のバージョンでは WSH によって自動化されているため、エンジンがインストールされている任意の言語を使用できます。このソフトウェアには、VBScript、JScript、および PerlScript の例が付属しています。
最近のリリースから数バージョン前まで遡ると、最新の実装における4NT / Take Commandのプログラミング機能(Perl、Python、Tcl、Ruby、Lua、VBScript、JScript などの「@REXX」や同様のものを使用) は、通常 WSH エンジンを使用しています。[ 12] ZOC端末エミュレーターは、外部インタープリターを使用して Rexx でプログラミングできます。そのうちの 1 つはプログラムに付属しており、代替の Rexx インタープリターはプログラムの構成で指定できます。[13] [14] MKS Toolkit は、パッケージに付属する標準 Perl インタープリター perl.exe に加えて、WSH エンジンである PScript を提供します。
VBScript、JScript、および一部のサードパーティ エンジンには、テキスト エディターで編集できないエンコードされた形式でスクリプトを作成および実行する機能があります。これらのエンコードされたスクリプトのファイル拡張子は、.vbe や .jse などです。
特に指定がない限り、任意の WSH スクリプト エンジンをさまざまな Windows サーバー ソフトウェア パッケージで使用して、CGI スクリプトを提供できます。現在のバージョンのデフォルトの WSH エンジンと、すべてまたはほとんどのサード パーティ エンジンには、ソケット機能もあります。CGI スクリプトとして、またはそれ以外の場合、この目的には多くのプログラマーが PerlScript を選択し、VBScript とさまざまな Rexx ベースのエンジンも、接続性とテキスト処理能力が十分に強力であるため、有用であると評価されています。これはファイル アクセスと処理にも当てはまります。VBScript と JScript 用の最も初期の WSH エンジンには、ベース言語がなかったため、この機能はありません。[15]一方、PerlScript、ooRexxScript、およびその他のエンジンには、最初からこの機能があります。
WinWrap Basic、SaxBasicなどはVisual Basic for Applicationsに似ています。これらのツールは開発中のソフトウェアにスクリプト機能やマクロ機能を追加するために使用され、たとえばHost Explorerの以前のバージョンに含まれています。他の多くの言語もこの方法で使用できます。プログラムのスクリプトに使用される他の言語には、Rexx、Tcl、Perl、Python、Rubyなどがあり、オペレーティングシステムやスプレッドシートおよびデータベースプログラム内のオブジェクトを制御するメソッドが付属しています。[16] 1つの例外は、Zoc端末エミュレーターがパッケージに付属のRexxインタープリターまたはユーザーが指定した別のインタープリターによって制御されることです。これはPassportエミュレーターの場合も同様です。
VBScript はMicrosoft Outlook 97のマクロ言語であり、WordBasicは Word 6 まで、PowerPoint、およびその他のツールで使用されています。Excel 5.0 までは Visual Basic 5.0 を使用しています。Office 2000 以降では、すべてのコンポーネントに真の Visual Basic for Applications 6.0 が使用されています。その他のコンポーネントはVisual Basic for Applications を使用しています。OpenOfficeはマクロ言語として Visual Basic、Python、およびその他のいくつかを使用しており、他の言語を追加することもできます。LotusScriptはVBA と非常に密接に関連しており、Lotus NotesおよびLotus SmartSuiteで使用されています。Lotus SmartSuite には、 Lotus Word Pro ( Ami Proの現在の後継)、Lotus Approach、Lotus FastSite、Lotus 1-2-3などが含まれており、Microsoft からライセンス供与された純粋な VBA は、 WordPerfect、Paradox、Quattro Proなどの Corel 製品で使用されています。
Windows にインストールされているスクリプト言語は、PerlScript、PythonScript、VBScript などの外部手段でアクセスできます。また、利用可能な他のエンジンを使用して、データベース (Lotus Notes、Microsoft Access、Oracle Database、Paradox) やスプレッドシート (Microsoft Excel、Lotus 1-2-3、Quattro Pro)、ワード プロセッサ、ターミナル エミュレーター、コマンド シェルなどの他のツールにアクセスできます。これは WSH によって実行できるため、エンジンがインストールされていればどの言語でも使用できます。
Take Commandの強化されたコマンドプロンプトとツールの最新バージョンでは、シェルプロンプトで「script」コマンドを入力すると、現在インストールされているエンジンのリストが1行に1つずつ、つまりCR-LFで区切られて生成されます。[17] [18] [19]
例
最初の例は非常に単純で、ルート WSH COM オブジェクト「WScript」を使用して「OK」ボタン付きのメッセージを表示するVBScriptを示しています。このスクリプトを起動すると、CScript または WScript エンジンが呼び出され、ランタイム環境が提供されます。
ファイルの内容hello0.vbs
WScript . Echo "Hello world" WScript . Quit
WSH プログラミングではJScript言語も使用できます。
ファイルの内容hello1.js
WSH . Echo ( "Hello world" );
WSH . Quit ();
または、 VBScriptやJScriptなどのコードを 1 つのWSFファイルに混在させることもできます。
ファイルの内容hello2.wsf
<job>
<script language= "VBScript" > MsgBox "hello world (from vb)"
</script> <script language= "JScript" > WSH.echo("hello world (from js)");
</script> </job>
セキュリティ上の懸念
Windows アプリケーションとプロセスは、Windows Script Host のスクリプトを使用して自動化できます。ウイルスやマルウェアは、この機能を悪用して作成される可能性があります。そのため、セキュリティ上の理由からこの機能を無効にすることを提案する人もいます。 [20]また、ウイルス対策プログラムには、WSH 環境で実行される .vbs やその他のスクリプトを制御する機能が用意されている場合があります。
WSH バージョン 5.6 以降では、有効な証明書がシステム上に存在する場合、スクリプト自体のScripting.Signerオブジェクトを使用してスクリプトにプログラム的にデジタル署名することができます。あるいは、WSH ファイルタイプをサポートするように拡張された Platform SDK の signcode ツールをコマンド ラインで使用することもできます。[21]
Windows XPで導入されたソフトウェア制限ポリシーを使用すると、信頼できる場所に保存されているスクリプト、既知のMD5ハッシュを持つスクリプト、または信頼できる発行元によってデジタル署名されたスクリプトのみを実行するようにシステムを構成できるため、信頼できないスクリプトの実行を防ぐことができます。[22]
利用可能なスクリプトエンジン
注: 定義上、これらすべてのスクリプト エンジンは、任意の数のプログラムとセットアップを使用して Windows のCGIプログラミングで使用できます。つまり、サーバー上で CGI 目的で使用されるスクリプトのソース コード ファイルは、.cgi などの他のファイル拡張子を持つことができます。Windows Script Host の前述の機能は、.wsh 拡張子のファイルで複数の言語を含むスクリプトを実行します。拡張 HTML とXMLも、ネットワーク使用のスクリプトを操作するときに、 Active Server Pagesなどと同様に、追加の可能性を追加します。さらに、Windowsシェル スクリプト、 TCC、4NTなどの拡張機能を備えたシェルで作成されたスクリプト、およびMKS Toolkitなどの相互運用性ソフトウェアの下にある Unix シェルにも、スクリプトを埋め込むことができます。
LotusScript、SaxBasic、BasicScript、KiXtart、awk、bash、cshなどのUnixシェル、4NT、cmd.exe(Windows NTシェル)、Windows PowerShell、DCL、C、C++、Fortranなどの他の言語用のエンジンを作成する提案もありました。[24] XLNT言語[25]はDCLに基づいており、追加のコマンドとステートメントとともに言語の非常に大きなサブセットを提供し、ソフトウェアはWSHエンジン(*.xcs)、コンソールインタープリタ(*.xlnt)、サーバー側およびクライアント側CGIエンジン(*.xgi)の3つの方法で使用できます。[26]
Windows Internet Information Server、Apache のポートなど、CGI を実装するサーバーの場合、すべてまたはほとんどのエンジンを使用できます。最も一般的に使用されるのは、VBScript、JScript、PythonScript、PerlScript、ActivePHPScript、および ooRexxScript です。MKS Toolkit PScript プログラムも Perl を実行します。cmd.exe、4NT、ksh などのコマンド シェル、および文字列処理とソケット機能を備えたスクリプト言語も、CGI スクリプトに使用できます。C++、Visual Basic、Java などのコンパイル言語も、同様に使用できます。すべての Perl インタープリタ、ooRexx、PHP、および VBScript と JScript の最新バージョンは、TCP/IP 用のソケット、通常は UDP およびその他のプロトコルを使用できます。
バージョン履歴
WSH バージョン 5.6 の再配布可能バージョンは、Windows 95/98/Me および Windows NT 4.0/2000 にインストールできます。WSH 5.7 は、Windows 2000、Windows XP、および Windows Server 2003 用にダウンロードできます。最近[いつ? ]、古いオペレーティング システム (Windows 9x および Windows NT 4.0) 用の再配布可能バージョンは、Microsoft ダウンロード センターから入手できなくなりました。
Windows XP Service Pack 3 以降、リリース 5.7 が Microsoft から入手できる唯一のバージョンであり、それ以降の新しいバージョンの Windows には新しいリビジョンが含まれています。
参照
参考文献
- ^ ?MSDN、「Windows Scripting Host」および「VBScript」
- ^ MSDN 2000 年 4 月版、「Windows Scripting Host」
- ^ VBScript バイブル (1999)
- ^ Windows 2000 Server リソースキット (ドキュメント
- ^ ab 「What Is WSH?」msdn.microsoft.com。2011年10月24日。2018年1月7日時点のオリジナルよりアーカイブ。2018年4月30日閲覧。
- ^ 「Windows Script Host の基礎」。msdn.microsoft.com。2011年 10 月 24 日。2017 年 8 月 8 日時点のオリジナルよりアーカイブ。2018 年4 月 30 日閲覧。
- ^ 「Windows Script Host オブジェクト モデル」。msdn.microsoft.com。2011年 10 月 24 日。2017 年 8 月 8 日時点のオリジナルよりアーカイブ。2018 年4 月 30 日閲覧。
- ^ MSDN「VBA」
- ^ ユーザーズマニュアル、Paint Shop Pro 8
- ^ Paint Shop Pro 8 ヘルプ、「自動化」
- ^ メインヘルプファイル、Passport for Windows
- ^ Take Command ドキュメント 18.00 ドキュメントのハードコピーとヘルプ ファイル
- ^ Zoc v 6.0 ヘルプ
- ^ Zoc 5.0 印刷マニュアル
- ^ MSDNドキュメント
- ^ Windows Office 97 & 2000 聖書 (Wiley)
- ^ Take Command バージョン 18.00 ドキュメント
- ^ JP Software Take Command-4NT-4Dos-4OS/2 サイト、掲示板
- ^ Take Command 18.00 ヘルプ
- ^ 「Norman - 家庭およびビジネス向けのウイルス対策およびセキュリティ ソフトウェア」。AVG.com。2006年 2 月 21 日時点のオリジナルよりアーカイブ。2018年4 月 30 日閲覧。
- ^ LLC), Tara Meyer (Aquent (2006 年 6 月 30 日). 「安全なエクスペリエンスの提供」. msdn.microsoft.com . 2017 年 11 月 10 日時点のオリジナルよりアーカイブ。2018 年4 月 30 日閲覧。
- ^ Windows Script Host 5.6 は Windows XP との統合、セキュリティ、新しいオブジェクト モデルを備えています。2008 年 2 月 18 日にWayback Machineにアーカイブされました。
- ^ CasioCalc.com、2016 年 9 月 15 日のメッセージ
- ^ 「Notes/Domino 4 および 5 フォーラム : RE: 提案: LotusScript を Windows Scripting Host のスクリプト エンジンにする」。2015 年 3 月 21 日時点のオリジナルよりアーカイブ。2015年 3 月 12 日閲覧。
- ^ ASCI HTML ヘルプファイル
- ^ ASCIサイト
リンク
- ホスト
