VBScriptが非推奨、将来削除の対象に――自作管理用のスクリプトはどうする? スクリプトの移植に生成AIは使える?山市良のうぃんどうず日記(270)

Microsoftは2023年10月、Windows標準搭載のスクリプト言語「VBScript」を“非推奨”の機能と位置付け、将来のWindowsリリースでの廃止に向けた流れを発表しました。

» 2023年11月22日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

VBScript廃止までの(おそらく)長い道のり

 Microsoftは2023年10月、「Windowsクライアントの非推奨の機能」リストに、新たに「VBScript」(Microsoft Visual Basic Scripting Edition)を追加しました。その説明によると、VBScriptは将来のWindowsリリースで廃止される前に、オンデマンド機能(オプション機能)にされ、その後、廃止(削除)されることになります(画面1画面2)。

画面1 画面1 Windowsクライアント機能の非推奨リストに「VBScript」が追加された。2023年11月にも複数の機能(「ヒント」アプリやWebDAVサービスなど)が非推奨リストに追加されている
画面2 画面2 将来のWindowsリリースでは、廃止される前に、オンデマンド機能(オプション機能)として追加、削除できるようになる予定

 VBScriptは、Windowsに古くから標準搭載されているWindowsスクリプトホスト(WSH)である「CScript.exe」や「WScript.exe」で利用できるスクリプト言語の一つで、多くの管理者が古くから自作またはダウンロード入手した管理用スクリプト(情報の取得、設定の変更、ログオンスクリプトなど、拡張子は.vbsや.wsf)を利用してきました。「Microsoft Office」アプリのプログラミング(VBA《Visual Basic for Applications》マクロなど)でも、よく利用されています。

 また、悪意のあるコードを含むMicrosoft Officeドキュメントを開かせるなど、そのコードを書くための言語として利用されることもあります。なお、今回の発表は“Windowsの機能としての非推奨/廃止”であって、Officeアプリについて言及しているわけではありません。

 今回のVBScript廃止までの発表は、ざっくりとしたもので、オンデマンド機能化や廃止の時期は明確になっていません。

 実は、Windowsのシステムコンポーネントの中にもVBScriptで記述されたスクリプトが存在します。Windowsのライセンス状態の確認、設定、リセットのための「%Windir%\System32\slmgr.vbs」や、「Windowsリモート管理(WinRM)」を設定する「%Windir%\System32\winrm.vbs」などです(画面3)。

画面3 画面3 Windowsのライセンス認証回りの設定や確認、リセットを行う「slmgr.vbs」

 WinRMについては、既に「Windows Server 2016」で非推奨とされ、もう開発されなくなっています。「winrm.vbs」は最新の「Windows 11」にもまだ存在しますが、「Connect-WSMan」など、その機能は「Microsoft.WSMan.Management」モジュールのコマンドレットで置き換えることができます。

 筆者は、VBScriptのオンデマンド機能化は、「slmgr.vbs」の代替手段が提供されるまで、ないのではないかと考えています。「slmgr.vbs」の一部の機能は「設定」アプリなどに組み込まれていますが(プロダクトキーの入力/変更、ライセンス認証の実行、ライセンスの状態表示など)、ライセンス認証のリセット(slmgr.vbs -rearm)を実行できる他の手段を少なくとも筆者は知りません。この機能は、PCのマスターイメージを作成し、多数のPCに展開する際に必要なものです。

管理者の強い味方VBScript、非推奨発表をきっかけにPowerShellに切り替えよう

 WSHでは「JScript」も利用できますが、WSHを利用する人のほとんどはVBScriptを使用してきたと思います。特に、多数のWindows PCを管理している管理者にとって、追加コンポーネントなしで利用できるWSH/VBScriptのスクリプト環境は、管理の効率化に多いに役立ちます。これまで利用してきた多数の自作スクリプトやダウンロード入手したスクリプトは、オンデマンド機能化されても、完全に廃止されるまでは問題なく利用できます。

 WSH/VBScriptに慣れている人の中には、PowerShellを避けてきたという人もいるでしょう。ですが、今後、新たに作成するスクリプトについては、PowerShellスクリプトとして作成するようにした方がよいと思います。また、よく使用する既存のスクリプトについては、少しずつでもPowerShellスクリプト化を進めていくことをお勧めします。既存のVBScriptをPowerShellに書き換えたいが、その方法が全く分からないという人もいるでしょう。10年以上前の英語のドキュメントですが、以下のガイド(以前はダウンロード提供されていましたが、既に終了しています)が参考になるかもしれません。

 コードの少ないスクリプトであれば「Microsoft Edge」の「Copilot」(旧称、Bingチャット)や、最近Windows 11 バージョン22H2(以降)に追加された「Copilot in Windows(プレビュー)」の生成AI機能に相談してみてはいかがでしょうか(画面4)。

画面4 画面4 Copilot in Windows(プレビュー)にVBScriptからPowerShellへの変換をお願いしてみた

 Microsoft自身も、Windows標準のスクリプト環境をWSH/VBScriptからPowerShellに切り替え始めつつある段階です。例えば、Windows Serverの「Server Core」インストールを管理するための「Sconfig」ユーティリティー(デスクトップエクスペリエンスでも実行可能)は、「Windows Server 2019」まではWSH/VBScriptベースで作成されていました(%Windir%\ja-jp\sconfig.vbsなど)(画面5)。これが、「Windows Server 2022」ではPowerShellベース(Invoke-Sconfigなど)のものに置き換えられました(画面6)。

画面5 画面5 Windows Server 2019までのSconfigユーティリティーはWSH/VBScriptベース
画面6 画面6 Windows Server 2022でPowerShellベースのSconfigユーティリティーに置き換えられた

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2008 to 2024(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。