【速報】ある日突然WSHでChakraエンジンが使えなくなった

:::note
この記事を書いている2025年2月2日時点での話です。
なお筆者の Windows のバージョンは Windows10 Pro 22H2 19045.5371 です。
:::

# 初報 2025年2月2日(日)

**Windows** では **WSH**（Windows Script Host）と呼ばれるスクリプト実行環境が **Windows98** の頃から用意されており，標準では **JavaScript** と **VBScript** を使用できます[^1]。ただし，**VBScript** は2027年にデフォルトで無効になるとのこと[^2]。幸いなことに **JavaScript** のほうはもうしばらく使えそうですが，そもそもエンジンが **IE6** 時代のものなので言語仕様が相当古いのです。幸いなことに **IE9** 以降の **JavaScript** エンジン（**JScript9**）や **Edge** の **JavaScript** エンジン（**Chakra**）に置き換える方法も知られています[^3]。

具体的には下記のように **CLSID** を直接指定することにより，**JavaScript** エンジンを置き換えることができます。

```:JScript9 を使う方法
cscript //E:{16d51579-a30b-4c8b-a276-0ff4dc41e755} script.js
```

```:Chakraエンジンを使う方法
cscript //E:{1B7CD997-E5FF-4932-A7A6-2A9E636DA385} script.js
```

ところが，このうち **Chakra** エンジンを使用しようとすると下記のエラーメッセージが表示されるようになったのです。

```
CScript エラー: Chakra スクリプト エンジンの実行は、Windows Script Host に対してブロックされています。
```

管理者権限で実行してもダメでした。

なお，**JScript9** エンジンのほうは引き続き使用することができます。

本件に関して，マイクロソフトの月例セキュリティ更新情報[^4]などを見てみましたが，それらしい情報は得られませんでした。

# 次報 2025年2月3日(月)

あれれ？何故か会社の **PC** だと **Chakra** エンジンが使えます。これは貴重な情報です。タイムスタンプを確認してみましょう。

```:会社の PC（Windows10 22H2 19045.5247）の場合
c:\>dir c:\windows\system32\chakra.* c:\windows\system32\?script.exe
～中略～
2024/08/21  11:26         7,770,112 Chakra.dll
2024/11/15  10:06           173,056 cscript.exe
2024/11/15  10:06           180,736 wscript.exe
```

一方，自宅の **PC** は以下のようになっています。おそらく `Chakra.dll` のほうはバイナリが同じで，**2025年1月16日**に更新された `cscript.exe` および  `wscript.exe` が怪しいように思います。

```:自宅の PC（Windows10 22H2 19045.5371）の場合
c:\>dir c:\windows\system32\chakra.* c:\windows\system32\?script.exe
～中略～
2024/08/11  04:34         7,770,112 Chakra.dll
2025/01/16  18:26           188,928 cscript.exe
2025/01/16  18:26           197,120 wscript.exe
```

**Windows  Update** の履歴も調べてみましょう[^5]。会社の **PC** は2025年になって当たったアップデートはありません。

```:会社の PC（Windows10 22H2 19045.5247）の場合
PS C:\> get-hotfix | sort-object -property InstalledOn | format-table -autosize
Source   Description     HotFixID  InstalledBy          InstalledOn
------   -----------     --------  -----------          -----------
～中略～
xxxxxx   Update          KB5043130 NT AUTHORITY\SYSTEM  2024/10/11 0:00:00
xxxxxx   Update          KB5044020 NT AUTHORITY\SYSTEM  2024/10/11 0:00:00
xxxxxx   Update          KB5046823 NT AUTHORITY\SYSTEM  2024/11/15 0:00:00
xxxxxx   Security Update KB5048652 NT AUTHORITY\SYSTEM  2024/12/16 0:00:00
```

一方，自宅の **PC** はちょうど**2025年1月16日**にセキュリティアップデートが行われています。

```:自宅の PC（Windows10 22H2 19045.5371）の場合
PS C:\> get-hotfix | sort-object -property InstalledOn | format-table -autosize
Source   Description     HotFixID  InstalledBy         InstalledOn
------   -----------     --------  -----------         -----------
～中略～
yyyyyy   Update          KB5043130 NT AUTHORITY\SYSTEM 2024/10/11 0:00:00
yyyyyy   Update          KB5046823 NT AUTHORITY\SYSTEM 2024/11/15 0:00:00
yyyyyy   Security Update KB5049981 NT AUTHORITY\SYSTEM 2025/01/16 0:00:00
yyyyyy   Security Update KB5050388 NT AUTHORITY\SYSTEM 2025/01/16 0:00:00
yyyyyy   Update          KB5049621 NT AUTHORITY\SYSTEM 2025/01/18 0:00:00
```

しかしながら，サポート情報[^6][^7]を見ても何が変更されたのかさっぱり分かりません。

# 第三報 2025年2月4日(火)

**Windows** には `C:\Windows\WinSxS` というフォルダがありますが，そこはコンポーネントストアとも呼ばれ，**Windows** の機能や更新プログラムのインストール／アンインストール等に関係するファイルの格納場所となっています。

ここを調べると**2025年1月16日**に **Windows Scripting Host** 関連とみられる更新が行われています。

```:自宅の PC（Windows10 22H2 19045.5371）の場合
c:\>dir /od c:\windows\WinSxS | findstr microsoft-windows-scripting
～中略～
2024/11/15 20:03  <DIR>  amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731
2024/11/15 20:03  <DIR>  wow64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_c799d3c7e9da792c
2025/01/16 18:26  <DIR>  amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5369_none_bd2319efb593a514
2025/01/16 18:26  <DIR>  wow64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5369_none_c777c441e9f4670f
2025/01/16 18:26  <DIR>  amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.5369_en-us_ffe767e90cad5a35
2025/01/16 18:26  <DIR>  amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.5369_ja-jp_2eb7b01fc9f35995
```

# 第四報 2025年2月5日(水)

参考文献[^8]によると，システムフォルダ `C:\Windows\System32` に置いてある **EXE** ファイルや **DLL** ファイルは必ずしもそこに実体があるとは限らないようです。本体はコンポーネントストアに格納されており，システムフォルダからハードリンクが貼られているようなのです。それでは実際に調べてみましょう。

```:自宅の PC（Windows10 22H2 19045.5371）の場合
c:\>fsutil hardlink list c:\windows\system32\cscript.exe
\Windows\WinSxS\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5369_none_bd2319efb593a514\cscript.exe
\Windows\System32\cscript.exe
```

確かにコンポーネントストアに最新の **Windows Script Host** の実行ファイルが置いてあります。

```:自宅の PC（Windows10 22H2 19045.5371）の場合
c:\>dir c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5369_none_bd2319efb593a514
～中略～
2025/01/16  18:26           188,928 cscript.exe
2025/01/16  18:26           197,120 wscript.exe
```

コンポーネントストアの別のフォルダにはアップデートされる前の実行ファイルも無事保管されていることが分かりました。ファイルサイズが会社の **PC** の実行ファイルと同じです。

```:自宅の PC（Windows10 22H2 19045.5371）の場合
c:\>dir c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731
～中略～
2024/11/15  20:02           173,056 cscript.exe
2024/11/15  20:02           180,736 wscript.exe
```

ということで，この前バージョンの実行ファイルを直接実行させたらどうなるでしょう？実際に確かめてみると，無事動きました。ヘルプメッセージが英語なのは，リソースファイルか何かのリンクが切れているからではないかと思います。

```:自宅の PC（Windows10 22H2 19045.5371）の場合
c:\>c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\cscript.exe
Usage: CScript scriptname.extension [option...] [arguments...]

Options:
 //B         Batch mode: Suppresses script errors and prompts from displaying
 //D         Enable Active Debugging
 //E:engine  Use engine for executing script
 //H:CScript Changes the default script host to CScript.exe
 //H:WScript Changes the default script host to WScript.exe (default)
 //I         Interactive mode (default, opposite of //B)
 //Job:xxxx  Execute a WSF job
 //Logo      Display logo (default)
 //Nologo    Prevent logo display: No banner will be shown at execution time
 //S         Save current command line options for this user
 //T:nn      Time out in seconds:  Maximum time a script is permitted to run
 //X         Execute script in debugger
 //U         Use Unicode for redirected I/O from the console
```

`//E:engine` オプションで **Chakra** エンジンを指定しても無事動きました。

```
C:\Qiita>c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\cscript.exe
 //E:{1B7CD997-E5FF-4932-A7A6-2A9E636DA385} CHECKPRIME.JS
素数のチェック，合成数の場合は素因数分解を行います。

CHECKPRIME(.JS) [整数]

素数なら 0，合成数なら 1 を返します。
```

ちなみにサンプルの **JavaScript** プログラムを以下に示します。

```javascript:CHECKPRIME.JS
//------------------------------------------------------------------------------
// 素数チェックおよび素因数分解を行います。
//------------------------------------------------------------------------------
function main(args) {
	if(args.Count == 0) {
		WScript.Echo("素数のチェック，合成数の場合は素因数分解を行います。");
		WScript.Echo("");
		WScript.Echo("CHECKPRIME(.JS) [整数]");
		WScript.Echo("");
		WScript.Echo("素数なら 0，合成数なら 1 を返します。");
		return -1;
	}
	var	n = parseInt(args(0));
	if(n < 2) {
		WScript.Echo("2 以上の整数を入力して下さい!!");
		return -1;
	}
	var	a = [];
	for(var p = n, q = 2; q * q <= p; q++) {
		while(p % q == 0) {
			p /= q;
			a.push(q);
		}
	}
	if(p > 1) a.push(p);
	if(a.length == 1) {
		WScript.Echo("整数 " + n + " は素数です。");
		return 0;
	} else {
		WScript.Echo("整数 " + n + " は合成数です。");
		WScript.Echo(a.join(",") + " を素因数に持ちます。");
		return 1;
	}
}
var	ret = main(WScript.Arguments.Unnamed);
try {
	WScript.Quit(ret);
} catch(e) {
	/* 何もしない */
}
```

# 第五報 2025年2月6日(木)

ヘルプメッセージが英文になってしまう問題について，ちょっとした実験をしてみました。通常，システムフォルダ `c:\windows\system32` にはパスが通っているので，下記のコマンドはシステムフォルダの `cscript.exe` を実行していることになりますが，ヘルプメッセージは日本語で表示されます。

```
c:\Qiita>cscript
使い方 : CScript scriptname.extension [オプション...] [引数...]

オプション :
 //B         バッチ モード : スクリプトのエラーおよびプロンプトを非表示にする
 //D         アクティブ デバッグを使用可能にする
 //E:engine  スクリプト実行時にエンジンを使用する
 //H:CScript 既定のスクリプト ホストを CScript.exe に変更する
 //H:WScript 既定のスクリプト ホストを WScript.exe に変更する (既定値)
 //I         対話モード (既定値、//B と逆の動作)
 //Job:xxxx  WSF ジョブを実行する
 //Logo      ロゴを表示する (既定値)
 //Nologo    ロゴを表示しない : 実行時に見出しを表示しない
 //S         このユーザーの現在のコマンド ライン オプションを保存する
 //T:nn      秒単位のタイムアウト時間 :  スクリプトを実行できる時間の最大値
 //X         デバッガでスクリプトを実行する
 //U         コンソールからリダイレクトされた I/O に Unicode を使用する
 ```

次に作業ディレクトリ `c:\Qiita>` に `cscript.exe` をコピーして実行してみると，ヘルプメッセージが英文になってしまうのです。

```
c:\Qiita>copy c:\windows\system32\cscript.exe .
        1 個のファイルをコピーしました。

c:\Qiita>cscript
Usage: CScript scriptname.extension [option...] [arguments...]

Options:
 //B         Batch mode: Suppresses script errors and prompts from displaying
 //D         Enable Active Debugging
 //E:engine  Use engine for executing script
 //H:CScript Changes the default script host to CScript.exe
 //H:WScript Changes the default script host to WScript.exe (default)
 //I         Interactive mode (default, opposite of //B)
 //Job:xxxx  Execute a WSF job
 //Logo      Display logo (default)
 //Nologo    Prevent logo display: No banner will be shown at execution time
 //S         Save current command line options for this user
 //T:nn      Time out in seconds:  Maximum time a script is permitted to run
 //X         Execute script in debugger
 //U         Use Unicode for redirected I/O from the console
 ```

ちなみにシステムフォルダ `c:\windows\system32` にある `cscript.exe` のプロパティを見てみると言語は「日本語」になっています。

```plantuml
@startuml
<style>
root {
  margin 0
  padding 0
}
title {
  fontStyle normal
  fontSize 16
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/ca6c0128-ced8-c110-3346-5a8d4b748570.png>

図１　システムフォルダの cscript.exe のプロパティ
end title
@enduml
```

ところが上記のファイルをコピーしたほうは「英語」になっているのです。なぜ？？？

```plantuml
@startuml
<style>
root {
  margin 0
  padding 0
}
title {
  fontStyle normal
  fontSize 16
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490655/d490338a-7d0c-af5a-5967-815b6a2f1357.png>

図２　コピーした cscript.exe のプロパティ
end title
@enduml
```

# 第六報 2025年2月7日(金)

マイクロソフトのサイト情報[^9]を読んでリソースについて勉強しました。**Windows Vista** 以降に公開された **MUI** リソーステクノロジの特徴を以下に示します。※自分なりに翻訳したものです。

- 言語共通の実行ファイルと言語別のリソースファイルは分離される。
- **MUI** リソースのファイル名は実行ファイル名の末尾に `.mui` が追加されたものになる。たとえば実行ファイル名 `Myfile.dll` とすると，**MUI** リソースファイル名は `Myfile.dll.mui` となる。
- **MUI** リソースファイルは実行ファイルの置かれたフォルダのサブフォルダに置かれる。サブフォルダ名は言語に応じた名前となる。※日本語の場合は `ja-jp` となる。
- リソースファイルの読み込み時にバージョン（チェックサム）を確認し，適切でない場合は読み込まれない。

ということでシステムフォルダ `c:\windows\system32` のサブフォルダには確かにリソースファイルが置いてあり，コンポーネントストアへのハードリンクも貼られています。

```
c:\Qiita>dir /s /b c:\windows\system32 | findstr cscript
c:\windows\system32\cscript.exe
c:\windows\system32\en-US\cscript.exe.mui
c:\windows\system32\ja-jp\cscript.exe.mui

c:\Qiita>fsutil hardlink list c:\windows\system32\cscript.exe
\Windows\System32\cscript.exe
\Windows\WinSxS\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5369_none_bd2319efb593a514\cscript.exe

c:\Qiita>fsutil hardlink list c:\windows\system32\en-US\cscript.exe.mui
\Windows\WinSxS\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.5369_en-us_ffe767e90cad5a35\cscript.exe.mui
\Windows\System32\en-US\cscript.exe.mui

c:\Qiita>fsutil hardlink list c:\windows\system32\ja-jp\cscript.exe.mui
\Windows\WinSxS\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.5369_ja-jp_2eb7b01fc9f35995\cscript.exe.mui
\Windows\System32\ja-jp\cscript.exe.mui
```

ここで注意すべきなのは，先ほどの特徴の最後の項目です。すなわちリソースファイルにもバージョンがあるのです。

> - リソースファイルの読み込み時にバージョン（チェックサム）を確認し，適切でない場合は読み込まれない。

ということでコンポーネントストア `C:\Windows\WinSxS` 以下のフォルダを探すと，やはり複数のリソースファイルが存在しました。**Chakra** エンジンが動かなくなったセキュリティアップデートが行われたのは **2025年1月16日** ですから，日付が古いほうのフォルダのリソースファイルを使う必要があるでしょう。

```
c:\Windows\WinSxS>dir | findstr microsoft-windows-scripting.resources
2023/03/17 17:17  <DIR>  amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_en-us_411dae92f6d12d17
2023/03/17 17:17  <DIR>  amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77
2025/01/16 18:26  <DIR>  amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.5369_en-us_ffe767e90cad5a35
2025/01/16 18:26  <DIR>  amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.5369_ja-jp_2eb7b01fc9f35995
```

ということでようやく対処方法が分かりました。

# 結論

~~コンポーネントストア `C:\Windows\WinSxS` 以下のどこかのフォルダにアップデートされる前の実行ファイル `cscript.exe` および `wscript.exe` が保管されているので，絶対パス指定で呼び出せば **Chakra** エンジンが使えます。ただし，ヘルプメッセージが英文になってしまう問題は解決できていません。~~

セキュリティアップデートが行われる前のスクリプトエンジンはコンポーネントストア `c:\Windows\WinSxS` 以下のフォルダに保管されているので，適当なフォルダ ` c:\Salvage` を作成してそこにコピーします。

```
c:\>mkdir Salvage

c:\>cd Salvage

c:\Salvage>copy c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\* .
c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\cscript.exe
c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\dispex.dll
c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\scrobj.dll
c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\scrrun.dll
c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\wscript.exe
c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\wshcon.dll
c:\windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_10.0.19041.5072_none_bd452975b579b731\wshom.ocx
        7 個のファイルをコピーしました。
```

セキュリティアップデートが行われる前のスクリプトエンジンが使用していたリソースファイルもコンポーネントストア `c:\Windows\WinSxS` 以下のフォルダに保管されているので，サブフォルダ `ja_jp` を作成してをコピーします。

```
c:\Salvage>mkdir ja-jp

c:\Salvage>copy c:\windows\winsxs\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77\* ja-jp
c:\windows\winsxs\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77\cscript.exe.mui
c:\windows\winsxs\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77\scrobj.dll.mui
c:\windows\winsxs\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77\scrrun.dll.mui
c:\windows\winsxs\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77\wscript.exe.mui
c:\windows\winsxs\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77\wshom.ocx.mui
        5 個のファイルをコピーしました。
```

実際に `cscript.exe` を実行してみると，ヘルプメッセージが日本語で表示されるようになりました。

```
c:\Salvage>cscript
使い方 : CScript scriptname.extension [オプション...] [引数...]

オプション :
 //B         バッチ モード : スクリプトのエラーおよびプロンプトを非表示にする
 //D         アクティブ デバッグを使用可能にする
 //E:engine  スクリプト実行時にエンジンを使用する
 //H:CScript 既定のスクリプト ホストを CScript.exe に変更する
 //H:WScript 既定のスクリプト ホストを WScript.exe に変更する (既定値)
 //I         対話モード (既定値、//B と逆の動作)
 //Job:xxxx  WSF ジョブを実行する
 //Logo      ロゴを表示する (既定値)
 //Nologo    ロゴを表示しない : 実行時に見出しを表示しない
 //S         このユーザーの現在のコマンド ライン オプションを保存する
 //T:nn      秒単位のタイムアウト時間 :  スクリプトを実行できる時間の最大値
 //X         デバッガでスクリプトを実行する
 //U         コンソールからリダイレクトされた I/O に Unicode を使用する
```

もちろん **Chakra** エンジンも動作します。

```
c:\Salvage>cscript //E:{1B7CD997-E5FF-4932-A7A6-2A9E636DA385} checkprime.js 6347156982523
整数 6347156982523 は合成数です。
7,19,47722984831 を素因数に持ちます。
```

# 後報 2025年2月8日(土)

リソースファイルにもバージョンがあり，

> - リソースファイルの読み込み時にバージョン（チェックサム）を確認し，適切でない場合は読み込まれない。

ということなので，二つあるリソースファイルのうちわざわざ古いほうを選んでコピーしたのですが，実は新しいほうでも上手くいきます。これは何故なのか？**MUIRCT** ユーティリティを使って調べてみます[^10]。**MUIRCT** ユーティリティの実行には **Microsoft Windows SDK** が必要です。筆者は **Visual Studio 2022 Commnunity Edition** のものを使いました。

それではまず古いほうのリソースファイルを調べてみましょう。

```
c:\>muirct -d c:\Windows\WinSxS\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.1_ja-jp_6fedf6c9b4172c77\cscript.exe.mui

Signature          -    fecdfecd
Length             -    b0
RC Config Version  -   10000
FileType           -    12
SystemAttributes   -      0
Service Checksum   -    e7380af6655f23a6353e72e24b803e79
Checksum           -    1e09336c014f9aa0410a2e15cb11e74b
MainNameTypes      -    MUI
MainIDTypes        -    6 16
Language           -    ja-JP
```

次に新しいほうですが，チェックサム `CheckSum` の値が古い方と一致していることが分かります。なので新旧どちらのリソースファイルでも上手くいくのですね。

```
c:\>muirct -d c:\Windows\WinSxS\amd64_microsoft-windows-scripting.resources_31bf3856ad364e35_10.0.19041.5369_ja-jp_2eb7b01fc9f35995\cscript.exe.mui

Signature          -    fecdfecd
Length             -    b0
RC Config Version  -   10000
FileType           -    12
SystemAttributes   -      0
Service Checksum   -    485f4a76e559edb6ac4b90a3be749208
Checksum           -    1e09336c014f9aa0410a2e15cb11e74b
MainNameTypes      -    MUI
MainIDTypes        -    6 16
Language           -    ja-JP
```

[^1]: [Windows Script Host - Wikipedia](https://ja.wikipedia.org/wiki/Windows_Script_Host)

[^2]: [VBScriptは2027年頃にデフォルトで無効に ～非推奨化スケジュールが公開 - 窓の杜](https://forest.watch.impress.co.jp/docs/news/1593925.html)

[^3]: [WSH JScript Chakra を使用した ES2015(ES6) 対応(スクリプトエンジンまとめ) - HatenaBlog](https://inemaru.hatenablog.com/entry/2018/04/05/055557)

[^4]: [2025年1月のセキュリティ更新プログラム(月例) - MSRC Blog](https://msrc.microsoft.com/blog/2025/01/202501-security-update/)

[^5]: [PowerShell / Microsoft.PowerShell.Management / Get-HotFix - learn.microsoft.com](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-hotfix?view=powershell-5.1)

[^6]: [2025年1月14日 - KB5049981 (OS ビルド 19044.5371 および 19045.5371) - support.microsoft.com](https://support.microsoft.com/ja-jp/topic/january-14-2025-kb5049981-os-builds-19044-5371-and-19045-5371-12f3788f-6e7d-4524-8ab3-27d1666e0510)

[^7]: [2025年1月14日 - KB5049981 (OS ビルド 19044.5371 および 19045.5371) - support.microsoft.com](https://support.microsoft.com/ja-jp/topic/january-14-2025-kb5049981-os-builds-19044-5371-and-19045-5371-12f3788f-6e7d-4524-8ab3-27d1666e0510)

[^8]: [「C:\Windows\WinSxS」（コンポーネントストア）は絶対に触れてはいけないWindowsの“聖域” - @ITmedia](https://atmarkit.itmedia.co.jp/ait/articles/2205/25/news007.html)

[^9]: [Win32/デスクトップテクノロジ/デスクトップアプリユーザーインターフェイス/国際化/MUIリソース管理 - Win32 apps - learn.microsoft.com](https://learn.microsoft.com/ja-jp/windows/win32/intl/mui-resource-management)

[^10]: [Win32/デスクトップテクノロジ/デスクトップアプリユーザーインターフェイス/国際化/リソースユーティリティ - Win32 apps - learn.microsoft.com](https://learn.microsoft.com/ja-jp/windows/win32/intl/resource-utilities)