Blog Post

Windows IT Pro Blog
4 MIN READ

VBScript deprecation: Timelines and next steps

Naveen_Shankar's avatar
May 22, 2024

Scripting options for web development and task automation are modernizing. To provide you with the most modern and efficient options, we are replacing VBScript with more advanced alternatives such as JavaScript and PowerShell. Find out what VBScript deprecation means for you and how you can get ready.

What is VBScript?

Visual Basic Scripting Edition, commonly referred to as VBScript, is a lightweight scripting language first introduced by Microsoft in 1996. The language has been available as a system component in Windows OS and has been widely used for automating tasks and controlling applications on Windows-based systems. It's often embedded within HTML pages to add dynamic interactivity and functionality to web pages and is commonly used in conjunction with Microsoft technologies like Active Server Pages (ASP) and Windows Script Host (WSH). However, with the advancement of technology, more modern and efficient options are now available.

Why is VBScript deprecated?

Technology has advanced over the years, giving rise to more powerful and versatile scripting languages such as JavaScript and PowerShell. These languages offer broader capabilities and are better suited for modern web development and automation tasks.

Tip: Deprecation is a stage in the product lifecycle when a feature or functionality is no longer in active development and may be removed in future releases of a product or online service. It's a gradual process that can span a few months or years. The deprecated feature is usually meant to be replaced by something better, more advanced, or more functional. The feature will typically continue to work and is fully supported until it's officially removed. After removal, the feature or capability will no longer work. Removing a deprecated component helps reduce complexity while keeping you secure and productive.

VBScript deprecation plan

Considering the decline in VBScript usage in favor of more modern web technologies, we have developed a phased deprecation plan for VBScript. Let's review the timeline of these changes.

In October 2023, we announced our commitment to providing the best and most efficient experiences by gradually deprecating VBScript. Beginning with the new OS release slated for later this year, VBScript will be available as features on demand (FODs). The feature will be completely retired from future Windows OS releases, as we transition to the more efficient PowerShell experiences.

Deprecation will occur in three phases.

A visual timeline of important dates for VBScript deprecation phases.

Phase 1

In the first phase, VBScript FODs will be pre-installed in all Windows 11, version 24H2 and on by default. This helps ensure your experiences are not disrupted if you have a dependency on VBScript while you migrate your dependencies (applications, processes, and the like) away from VBScript. You can see the VBScript FODs enabled by default at Start > Settings > System > Optional features.

Screenshot of Windows System Settings shows VBScript installed under Optional features.

Phase 2

Around 2027, the VBScript FODs will no longer be enabled by default. This means that if you still rely on VBScript by that time, you'll need to enable the FODs to prevent your applications and processes from having problems.

Follow these steps if you need to continue using VBScript FODs:

  1. Go to Start > Settings > System > Optional features.
  2. Select View features next to “Add an Optional feature” option at the top.
  3. Type "VBSCRIPT" in the search dialog and select the check box next to the result.
  4. To enable the disabled feature, press Next.

Screenshot of a dialog box for adding an optional feature with a checkbox next to VBScript.

Phase 3

VBScript will be retired and eliminated from future versions of Windows. This means all the dynamic link libraries (.dll files) of VBScript will be removed. As a result, projects that rely on VBScript will stop functioning. By then, we expect that you'll have switched to suggested alternatives.

VBA projects that use VBScript

Visual Basic for Applications (VBA) allows users to automate repetitive tasks and customize functionalities within Microsoft Office suite. This includes Excel, Word, PowerPoint, Access, and some other applications. With VBA, you've been able to write scripts (macros) to manipulate data, create custom forms, automate reports, interact with other applications, and perform various other tasks to streamline workflows and enhance productivity.

Currently, VBScript can be used in VBA for two scenarios:

  • Scenario 1: Call a .vbs script directly from VBA.
  • Scenario 2: Use VBScript as typelib reference (such as VBScript regular expression) in VBA.

You can keep using the existing solutions if your VBA solutions have the scenarios above, as Phase 1 won't affect you. But future phases will affect you, so watch out for new developments.

If you see a runtime error or compile error while executing the VBA projects, check that the VBScript FODs aren't disabled by admin setting.

Next steps if my app or website has dependency on VBScript

Consider two modern solutions to replace VBscript, specifically PowerShell and JavaScript.

Migrate to PowerShell

We recommend migrating to PowerShell if you:

  • Have websites or applications dependent on VBScript for automating tasks.
  • Use VBScript custom actions as a feature in installer packages. During setup process, these custom actions can use the installation session and perform complex tasks. These custom actions may stop working after deprecation.

In these cases, we recommend you migrate to PowerShell. Learn how to do that at Converting VBScript to Windows PowerShell.

Migrate to JavaScript

As VBScript functionality is currently limited to browsers predating Internet Explorer 11, we recommend migrating your webpages to JavaScript before phase 2. JavaScript offers cross-browser compatibility, working seamlessly across modern browsers such as Microsoft Edge, Mozilla Firefox, Google Chrome, and Apple Safari. Notably, these browsers have never implemented support for VBScript.

If your webpage functions properly across these modern browsers, then VBScript isn't involved, and its deprecation won't affect you.

Start planning your migration and stay in touch!

We're here to help you with the latest updates around VBScript deprecation and to provide additional support as you migrate your dependencies during phases 1, 2, and 3.

Are there any special considerations or scenarios that you'd like to talk about? Please leave us a comment below.

In the meantime, check out additional resources related to VBScript functionality and deprecation:


Continue the conversation. Find best practices. Bookmark the Windows Tech Community, then follow us @MSWindowsITPro on X/Twitter. Looking for support? Visit Windows on Microsoft Q&A.

Updated Jun 13, 2024
Version 2.0

147 Comments

  • mjb8034's avatar
    mjb8034
    Copper Contributor

    microsoft, you do realize that you will literally break thousands of applications using Windows Installer for deployment that use VBScript in their actions?  And, you have not replaced that technology for Custom Actions with .NET!

  • kabinenclown's avatar
    kabinenclown
    Copper Contributor

    neither installing VBScript with "Optional features" now with PowerShell  "DISM /Online /Add-Capability /CapabilityName:VBSCRIPT~~~~"

    does work anymore.

    PowerShell:  Error: 0x80245006  DISM failed. No operation was performed.

    Optional features just mentions "Couldn't add" .  

  • ahendin's avatar
    ahendin
    Copper Contributor

    Some 25 years ago I developed a custom Outlook Form to manage and consolidate contact and payment details for a dance teacher to operate her school. It went through some years of development until about 2009, and is driven by VBScript. I've kept her going through every system upgrade to date. It would be a disaster for this project if VBScript is completely retired, as it is unlikely to be worth the trouble to redevelop the application in javascript--assuming that javascript will be able to operate in Outlook Forms in the first place. What is the roadmap for Outlook Forms scripting once VBScript is removed from Windows?

    • ahendin's avatar
      ahendin
      Copper Contributor

      I should add that the application not only builds additions to the contact form based on field data (to keep non-school contacts uncluttered by school-related items), and processes field changes both live and at the click of a button, it also integrates with Microsoft Word to build documents from templates at the click of a button (e.g. class lists and payment records).

      • AlexLaforge's avatar
        AlexLaforge
        Iron Contributor

        As previously written in a lot of comments, VBScript is just a GREAT technology that was and IS still widely used everywhere : VBA, VBScript, Setup programs, macros, Classic ASP websites and corporate intranets, SQL Servers : VBScript is just part the Windows DNA, like CMD is.

        Powershell did not lead to CMD deprecation. Powershell is powerful but not suitable to replace VBScript and Classic ASP.

        When can we expect Naveen_Shankar​ to reply and reassure every developer, user, and sysadmin silently watching this thread ?

  • ahendin's avatar
    ahendin
    Copper Contributor

    ADMIN: please delete this duplicate. System hiccup!

    Some 25 years ago I developed a custom Outlook Form to manage and consolidate contact and payment details for a dance teacher to operate her school. It went through some years of development until about 2009, and is driven by VBScript. I've kept her going through every system upgrade to date. It would be a disaster for this project if VBScript is completely retired, as it is unlikely to be worth the trouble to redevelop the application in javascript--assuming that javascript will be able to operate in Outlook Forms in the first place. What is the roadmap for Outlook Forms scripting once VBScript is removed from Windows?

  • mjb8034's avatar
    mjb8034
    Copper Contributor

    We recommend migrating to PowerShell if you:

    • Have websites or applications dependent on VBScript for automating tasks.
    • Use VBScript custom actions as a feature in installer packages. During setup process, these custom actions can use the installation session and perform complex tasks. These custom actions may stop working after deprecation.

    Windows Installer does not support PowerShell custom actions. Yes, you can call powershell.exe and pass a script, but there are 2 major hurdles:

    1. Execution policy may not allow, and by default most Enterprise environments would have this disabled.
    2. You cannot pass the installer session handle to another process. This installer handle is critical to read or update state in an installer. You basically, cannot create an effective custom action without the Session handle.

    So, no PowerShell is not a viable alternative to VBscript for Windows Installer CAs.

    • AlexLaforge's avatar
      AlexLaforge
      Iron Contributor

      This recommendation just shows that this decision was taken by people not having the slightest technical knowledge, and the minimum recommended market state knowledge. This decision of deprecation must be Cancelled. Purely.

  • RVSS_guy's avatar
    RVSS_guy
    Copper Contributor

    Hi, our organization is heavily dependent on MSACCESS for record keeping.  It's my understanding that MSACCESS runs primarily on VBScript.  With the deprecation, will MSACCESS databases need to be migrated elsewhere since the OS no longer can run the various scripts and macros?

    • HeinziAT's avatar
      HeinziAT
      Brass Contributor

      The scripting language for MS Access is VBA, not VBScript.

      So, MS Access-based applications should run as before, with one caveat: VBA applications sometimes use the RegExp library from VBScript, which won't be available in the future. To fix this, the Office team has added a RegExp class to VBA in September 2025, which you can use instead.

      For details, see:

      • https://devblogs.microsoft.com/microsoft365dev/how-to-prepare-vba-projects-for-vbscript-deprecation/
      • https://www.accessforever.org/post/vbscript-goes-away-our-code-will-stay
  • ktktkt's avatar
    ktktkt
    Copper Contributor

    Looks like Microsoft is on the road to making Windows a useless operating system. When you take away the ability to run software you take away the ability to use Windows 11 as your operating system. Is the plan to make it that Windows will only be able to run Microsoft owned and issued programs? Windows 11 is a very poor operating system to begin with, but being in the medical community I have always had to use Windows because many medical programs only run under Windows. I am disgusted by how WIN 11 deletes files instead of moving them (with no warning) and how it takes forever to get something done because it is too busy playing with itself (doesn't have time to do what the computer operator is trying to do). Now it won't be able to run programs either unless the computer operator is a well versed in computer programs and applications, and can make all the work arounds function. WOW!!  The only reason I had to come to this web page was because of a program that will no longer be able to function when this VBScript is totally deleted (which it appears from a different Microsoft web page that is has been as of 11/2025 though this page acts like it hasn't been). I am not a computer "geek". I don't know what PowerShell is or how to run it. It looks like we may have to return to using paper (or every one who needs to be able to use a computer in their line of work will be required to get a computer science degree, too). This situation is untenable (not able to be maintained or defended against attack or objection). 

    • Robert Becker's avatar
      Robert Becker
      Copper Contributor

      I'm going to be generous and assume this is not a troll posting.

      1. Visual Basic is an insecure scripting language. That's why it's being discontinued. There are other, safer, scripting languages.
      2. Windows 11 does not "deletes files instead of moving them (with no warning)." When you delete something using the GUI it goes to the recycle bin. This is common knowledge if you've been using Windows for more than a day. If you go to permanently delete them using the GUI it always warns you about permanently deleting it. The exception to this is if you're using any kind of command prompt. In that case you are assumed to be a power user and know what you're doing.
      3. If your application is run using VB Script, it's incredibly outdated and is clearly legacy. Seeing as VB Script is insecure, and you're in the medical field with all of its outdated applications that lead to I don't know how many computer security issues over the past couple years, you would be well advised to search for more modern and secure applications. Let your IT staff know that Microsoft is doing this and, if they can, will be more than happy to help you. I'm sure they're aware of Microsoft's goal of making your computer more secure.
      4. No operating system is "playing with itself." They are doing tasks under the hood to keep applications working in such a way that the data is interoperable. As operating systems become more complex with more features it's possible more advanced hardware may be required. Machines that ran Windows 7 back in the day do not have the horsepower required to run Windows 11 effectively. I know, I've tried. This has been the case since day 1 with operating systems: OS upgrades eventually mean hardware upgrades. These days, hackers are going to exploit every security hole they can find. Newer hardware is faster and more secure by design. Perhaps they'll let you upgrade your computer. Myself, I'm using a six-year-old laptop that, while not performing on modern applications as fast as it did on older applications under Windows 10, still performs admirably and has many good years of use left.
      5. Recommended upgrades: more RAM and an SSD instead of spinning disk, if that's what your computer is using. Perhaps your IT department will let you upgrade some components rather than replace the computer. It's more cost-effective, except that the computer is (probably) outside of its warranty window.
      6. PowerShell is a scripting language, yes. It's easy enough to run: just right-click the Start menu of any Windows 11 computer and choose "Terminal" or "Terminal (Admin)." You can use the same commands (for the most part) from the old Command Prompt environment. One exception is "dir," which is an alias for "get-childitem." If you want to see what you can do with PowerShell (it's not hard to get started) open any PowerShell prompt and type "get-help -showwindow". It'll open a scrollable and resizable window with information on how to use get-help, which is how you get help any command in the PowerShell library. For example, "get-help get-childitem -showwindow".

      Good luck!

       

       

      • omix's avatar
        omix
        Copper Contributor

        You are ignoring the real problem the user ktktkt​  is facing.

        The real issue isn't that VBScript is "old"; it's Microsoft's decision to completely eliminate the language (even removing the ability to install it as an optional feature). This is throwing away the effort and investment of people who have relied on this language to develop systems for over 20 years.

        VBScript is Not Equivalent to PowerShell

        To say "the solution is PowerShell" is to misunderstand the use cases for these technologies.

        VBA: Microsoft itself has been using VBA (Visual Basic for Applications) in Excel since 1993. VBA's basic syntax is nearly identical to VBScript, and it is used by millions of users to write macros. You don't just decommission a functional language with a million-user ecosystem after 30+ years by saying, "Oops, this is actually insecure." You patch it.

        Classic ASP: Announced in 1996, Classic ASP, which formed the foundation of the internet at the time, was predominantly based on VBScript. You cannot expect a user to compensate for their accumulated knowledge in these areas (web applications, intranet portals, Excel automation) by simply telling them to "learn PowerShell."

        Even if it were technically possible, you are ignoring the cost required for a company to rewrite an intranet application or automation system—developed over 3-5 years of effort—from scratch, just because the platform owner decided so. This means the loss of thousands of engineering hours and money.

        This isn't the first time Microsoft has abandoned its users. They ignored Classic ASP users in the same way in the early 2000s. What was the result? At that time, while most of the internet was using Classic ASP, developers quickly migrated to PHP. For 25 years, approximately 80% of the internet runs on PHP. In fact, PHP's success paved the way for Python, which was born in 1991, to revive on the server side after 2000 and achieve its current popularity.

        Microsoft abandoned an ecosystem it created (Classic ASP) and gifted 80% of the market to its competitor (PHP). Now, it is repeating a similar mistake by completely removing VBScript.

        If Microsoft had made VBScript open-source and allowed the community to maintain it, this "modernization" move would be understandable. However, in its current form, this is a blow to the developers who trusted the platform.

        Comments from users like ktktkt​  may be harsh, but this shows just how justified their anger is and how deep their disappointment runs.

    • legacyvbs's avatar
      legacyvbs
      Copper Contributor

      I agree with you VBscript is much faster at alot of things and MS doesn't understand if you are using vbscript to leverage the computer to do work downloading python is a fireable offense, even using powershell as a non admin is too. Power Automate is too expensive and low functionality to use. VBScript has been able to be made then send off to another user and it just works, nothing needs to change.

  • legacyvbs's avatar
    legacyvbs
    Copper Contributor

    I never leave a comment, but today I will, when I make vbscript code do a function it just works. Jscript is useless any javascript example does not work in jscript. You have to download NodeJS to get functionality. Which loosely works with browser consoles. I was developing an interaction in JS for web automation which to get speed to complete had to do in vbscript, because downloading entire frameworks destroy KISS method. The notion that it has security flaws is dumb at best ignorant at least, powershell gives you a warning to lock running .ps and then you have to unlock it to run it. you say this is good, well tell that to admins that make their password... password. Powershell syntax is nowhere as easy to deploy as vbscript, and vbscript so far the only thing I have not been able to do is oauth directly from the script but you can get around it by interacting with some software objects. I can do multithreading with minimum overhead and IPC. You will be amazed at what you can do. I know they are using powershell for admins, only if you use powershell as a non admin then you get fired. then you are stuck with incompetant admins that are cheap. I can with VBscript automate PowerBI. Power automate is trash it was their paid solution for UIPath both are more expensive than a vbscript dev. Python requires middleware to run an instance that will always generate an error. If MS hired me to be a VBscript dev I know I could update it and make it profitable. Then you will cry cross platform which is silly because Java solutions are all based on htttp type work, which vbscript handles right out of box. oh I was doing MCP with ChatGPT with vbscript before it was popular, fast to deploy and much smaller footprint. And adding functionality does not involve a convoluted framework system.