ということで、2024年に、Microsoftは本格的にVBScript の廃止を推進し始めました。かつては自動化、特に企業のセットアップでどこでも使われていたこの古いスクリプト言語は、廃止の危機に瀕しているようです。奇妙なのは?それは、Windows 11 25H2ではデフォルトでまだ残っているようですが、もうすぐ完全に無効化されるか、完全になくなるということです。これは、特にスクリプトを実行している場合や、.vbsファイルに関連付けられた従来の自動化に依存している場合は、混乱を招く可能性があります。もちろん、Windowsは扱いにくさを増す必要があります。VBScriptのものが見つからない場合、次のようなスクリプトを実行すると、slmgr.vbs関連アプリケーションがないというエラーが発生する可能性があります。奇妙ですが、「ファイル拡張子 ‘.vbs’ のスクリプトエンジンがありません」などのエラーが発生する場合があります。これは基本的に、Windowsがこれらを実行するように設定されていないことを意味します。そのため、現在のWindows環境でVBScriptを処理する方法を理解しておくことは、特にトラブルシューティングや新しいスクリプトオプションへの移行を試みている場合に役立ちます。
Windows 11でVBScriptが実行されない、または削除される問題を修正する方法
方法 1: VBScript が見つからない場合は再インストールまたは有効化する
Windows が VBScript 機能を無効化または削除している場合があります。特にアップデート後や機能をオフにした場合などに顕著です。その結果、スクリプトの実行が拒否されたり、.vbs 拡張子のファイルに関連付けられたハンドラーが失われたりすることがあります。VBScript はオプション機能になったり、手動で追加し直さなければならないため、VBScript を再度追加するのは簡単ではありません。これは、次のようなエラーが表示される場合に役立ちますvbs: No application is associated with the specified file for this operation。
- PowerShell を管理者として開きます。
- VBScript 機能がまだ使用可能かどうかを確認するには、次のコマンドを実行します。
Get-WindowsCapability -Online -Name vbs* - 削除済みまたはインストールされていないと表示されている場合は、次を実行します。
Add-WindowsCapability -Online -Name "VBScript~~~~0.0.1.0" - または、DISM を直接使用することもできます。
DISM /Online /Add-Capability /CapabilityName:VBScript - 再起動後、スクリプトを再度実行してみてください。Windows にこの機能がない場合は、少なくとも一時的には機能するはずです。
これは新しいWindowsバージョンでは一種の最後の手段ですが、うまくいくこともあります。一部の環境では、Microsoftがこれをオプションにしているのは奇妙なので、失敗しても驚かないでください。再起動するか、コマンドを再実行すると解決する場合があります。
方法2: VBSファイルを手動で関連付けてエラーを防ぐ
VBScript が有効になっているにもかかわらずスクリプトが実行されない場合は、Windows がファイルの関連付けを失っている可能性があります。これは、機能の切り替え時やアップグレード後によく発生する問題です。この問題を解決するには、「.vbs」拡張子を Windows Script Host に手動で再度関連付けてみてください。これにより、次のようなエラーを防ぐことができますThere is no script engine for file extension ".vbs"。
- PowerShell を管理者として開きます。
- 関連付けを設定するには、次のコマンドを実行します。
assoc.vbs=VBSFile - 次に、VBSファイルの既定のプログラムがWindows Script Hostに設定されていることを確認します。設定アプリから設定できます: 設定 > アプリ > 既定のアプリ > ファイルの種類ごとに既定のアプリを選ぶ。
- .vbs 拡張子を見つけて、まだ割り当てられていない場合はWindows Script Hostに割り当てます。
場合によっては、関連付けを再リンクするだけで、コマンドラインからスクリプトを実行しようとしたときやファイルをダブルクリックしたときに発生するエラーが修正されることがあります。
方法3: Sysmonを使用してVBScriptの使用状況を監視する
企業で働いている方、あるいはVBScriptのアクティビティに興味のある方のために、もう一つの巧妙なトリックがあります。SysinternalsからSysmonをインストールしてください。これはVBScriptを修正するものではなく、VBScriptの使用状況を監視するためのツールです。特に、悪意のあるスクリプトが使用されているかどうかを確認したい場合や、舞台裏で何が起こっているかを把握したい場合に便利です。
- Sysmon をダウンロードしてください。
- 読み込み
vbscript.dllやその他の疑わしいアクティビティを追跡するための構成 XML ファイル (sysmon_config.xml など) を作成します。 - Sysmon を次のコマンドでインストールします:
Sysmon64.exe -i sysmon_config.xml - または、次のように構成を更新します。
Sysmon64.exe -c sysmon_config.xml
これで、VBScript が呼び出されるたびに、イベント ビューアーにイベント ID 7 (イメージが読み込まれました) が表示されるようになります。これは、スクリプトのアクティビティを監視するのに役立ちます。特に、不正なスクリプトを検出したり、正当な使用を確認したりする場合に便利です。
結局のところ、VBScript に関するこの騒ぎは、レガシーな負担とセキュリティ上の懸念が混ざり合ったもののように思える。スクリプトが重要な場合は PowerShell や JavaScript に移行するのが賢明だが、レガシーシステムの場合は、VBScript を有効活用したり監視したりする方法を知っておくことで、何時間もの頭痛の種を省くことができる。Microsoft がなぜ対応を遅らせているのかは分からないが、まあ、備えておくに越したことはないだろう。
まとめ
- VBScript 機能がインストールされているかどうかを確認します
Get-WindowsCapability。 - 見つからない場合は、 または DISM を使用して再インストールします
Add-WindowsCapability。 - スクリプトが実行されない場合は、.vbs 拡張子を確認して再度関連付けてください。
- Sysmon を使用して、エンタープライズ セットアップでの VBScript の使用状況を監視します。
まとめ
Windows 11でVBScriptを扱うのは、特にMicrosoftがユーザーにWindows 11への移行を強く求めているため、イライラさせられることがあります。しかし、機能を再追加したり、ファイルの関連付けを修正したりするだけで問題が解決することもあります。Sysmonで監視すれば、裏でどのようなスクリプトが実行されているかを安心して把握できます。これで、誰かが何時間も頭を悩ませる必要がなくなることを願っています。レガシー技術が未だに残っているのは少し奇妙ですが、まあ、それがWindowsの現実です。