WSF ファイル形式とは?
拡張子が .wsf のファイルは、Microsoft Windows Script Host (WSH) 用のスクリプトです。これらは XML 形式に準拠したテキストファイルです。任意のテキストエディタで編集用に開くことができますが、Visual Studio Code などの専用ツールの使用をお勧めします。単一の .wsf ファイルには、複数のスクリプトジョブを含めることができ、1つのドキュメント内でさまざまなスクリプト言語をサポートできます。
.wsf ファイルでサポートされているデフォルトのスクリプト言語には、JScript と VBScript が含まれます。ただし、この形式はスクリプト言語に依存しないように設計されており、WSH に互換性のあるエンジンをインストールした後は、次のような言語もサポートできます:
- PerlScript
- Python
- BASIC
- Ruby
- PHP
- Object REXX
異なるスクリプト言語を統合することで、宣言されたオブジェクトの定数とともに、ある言語で定義された関数を使用することが可能になります。これにより、.wsf スクリプトの作成は従来のプログラミング手法に近づきます。
.wsf スクリプトファイルは、ログ記録やシステム管理に使用され、さまざまなシステムタスクの自動化に一般的に使用されます。スクリプトは、WScript.exe を介して GUI モードで実行したり、CScript.exe を介してコンソールモードで実行したり、WShom.ocx を介して COM オブジェクトとしてプログラムからアクセスしたりできます。デバッグツールも利用可能です。
PowerShell スクリプトは、Windows 7 以降の最新の Windows 自動化において .wsf に取って代わりましたが、WSH は現在のすべての Windows バージョンに引き続き存在しています。重要なセキュリティ上の注意: .wsf ファイルは既知のマルウェア配信メカニズムです。ランサムウェアやダウンローダーが .wsf メールの添付ファイルを広く悪用しています。未承諾の .wsf ファイルは、細心の注意を払って取り扱ってください。
セキュリティと安全性
リスク: HIGHWSF ファイルは、Windows における主要なマルウェア配信ベクターです。Windows Script Host は特別なインストールなしで .wsf をネイティブに実行し、XML コンテナにより、初期のメールフィルタはそれらをプレーンテキストとして見逃していました。ランサムウェアキャンペーン (2016年の Locky、Cerber、2017年の Sage、Nemucod ダウンローダー) は、悪意のある .wsf メールの添付ファイルを広範囲に使用しました。リスク要因:(1) .wsf は WScript.Shell および XMLHTTP オブジェクトを介してさらなるペイロードをダウンロードして実行できる。(2) レジストリの変更、ファイルの作成、システムコマンドの呼び出しができる。(3) 多くの破壊的なアクションに UAC 昇格が不要。(4) wscript.exe のダブルクリックによりサイレントに実行される。対策:メールゲートウェイで .wsf をブロックする。グループポリシーを介して WSH を無効にする (HKLM\Software\Microsoft\Windows Script Host\Settings → Enabled = 0)。予期しない .wsf は決して実行しない。実行前にテキストエディタを使用して検査してください。
形式の詳細
概要WSF ファイルを開くプログラム
技術的詳細
詳細仕様| ファイル形式 | 整形式の XML ドキュメント。<package> ルート要素 (オプション) には、1つ以上の <script> ブロックをグループ化する1つ以上の <job id="..."> 要素が含まれます。 |
| エンコーディング | テキスト。UTF-8 または Windows-1252 (ANSI)。文字エンコーディングはファイル先頭の XML 宣言で指定されます。 |
| XML ジョブ要素 | 各 <job> には、<script language="VBScript|JScript">、<reference> (タイプライブラリ定数)、<object> (COM インスタンス化)、<include> (外部 .vbs/.js ファイル)、および <runtime> (引数ドキュメント) を含めることができます。 |
| 組み込みスクリプトエンジン | JScript と VBScript は、すべての Windows バージョンの WSH に組み込まれています。追加のエンジン (PerlScript、Python、Object REXX) は、個別のインストールとレジストリ登録が必要です。 |
| ジョブごとのマルチ言語 | 単一の <job> ブロック内で JScript と VBScript の <script> セクションを混在させることができ、言語の境界を越えて COM オブジェクトや定数を共有できます。 |
| 実行モード | GUI モード:wscript.exe (ダイアログ許可、コンソールなし)。コンソールモード:cscript.exe (stdout/stderr 利用可能)。COM オブジェクトアクセス:WShom.ocx。 |
| WSH ホストバージョン | WSH 5.8 は Windows 7 から Windows 11 に搭載されており、現在のすべてのシステム上のバージョンです。WSH 5.6 は Windows XP で動作していました。 |
| 典型的なファイルサイズ | 1 KB - 200 KB。ほとんどのスクリプトはコンパクトな単一目的のファイルです。 |
| セキュリティ分類 | 高リスクの実行ファイル。WSH はユーザーの確認なしにダブルクリックで .wsf ファイルをネイティブに実行します。ランサムウェア (Locky、Cerber、Sage) やメール添付ファイルを介したマルウェアドロッパーの配信に広く悪用されています。 |
| プラットフォーム | Windows のみ。Windows Script Host は macOS や Linux では利用できません。 |
| デフォルトの実行ハンドラ | Windows はデフォルトで .wsf を wscript.exe に関連付けます。この関連付けは cscript.exe に変更するか、セキュリティ強化のためにグループポリシーを介して完全に無効にすることができます。 |
| 現代の後継 | PowerShell (.ps1) は、Windows 7 以降、Windows システム管理において .wsf にほぼ取って代わりました。WSH は現在のすべての Windows に残っていますが、Microsoft による積極的な開発は行われていません。 |
| リリース日 | 1999 with Windows Script Host 2.0 (shipped with Windows 2000; downloadable for Windows 98/NT) |
| 最新バージョン | WSH 5.8 (Windows 7 / Server 2008 R2; version in all later Windows editions) |
| 仕様書 | learn.microsoft.com |
WSF の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。WSF ファイルについて最初の質問をしてみましょう。