Microsoft has announced the deprecation of VBScript and outlined a phased plan for its removal from Windows environments. This change has potential implications for customers and partners who maintain legacy Classic ASP pages within Sage CRM that rely on VBScript.
This advisory explains what is changing, what is affected, and how to plan.
What is changing?
Microsoft is retiring VBScript in a phased approach:
- Phase 1 (Current - 2026/2027): VBScript is now deprecated. VBScript remains enabled by default, transitioning to a Feature on Demand(FOD).
- Phase 2 (approx. 2026/2027): VBScript FODs will be disabled by default.
- Phase 3 (TBD): Complete removal of VBScript from future Windows OS releases, and calls to .vbs scripts from VBA will fail.
At that point, any application depending on VBScript will no longer function unless changes are made.
Why this matters for Sage CRM
Sage CRM itself primarily uses server-side JavaScript (JScript), but some older customisations and integrations may still rely on VBScript within Classic ASP pages.
Classic ASP supports multiple scripting languages through the Active Scripting engine, including:
- VBScript
- JScript
If VBScript is removed from the operating system, ASP pages written in VBScript will fail to execute.
How Sage CRM ASP pages define scripting language
In Sage CRM, ASP pages typically include a core library file that defines the scripting language.
The include file determines which language is used:
- SAGECRM.JS
Sets the default language to JavaScript (JScript) - SAGECRM.VBS
Sets the default language to VBScript - SAGECRMNOLANG.JS
Does not explicitly define a language
Legacy include files may also be present for backward compatibility:
- eWare.JS
- ACCPACCRM.JS / ACCPACCRMNOLANG.JS
- ACCPACCRM.VBS
If an ASP page references SAGECRM.VBS or another VBScript-based include, it is dependent on VBScript being available in the operating system.
What is at risk?
The following scenarios are impacted:
- Custom ASP pages written in VBScript
- Legacy integrations using VBScript
- Older Sage CRM customisations that have not been modernised
When VBScript becomes optional or is removed:
- Pages may fail with HTTP 500 errors
- Script execution will not occur
- Business processes relying on these pages may break
What is not impacted?
- Standard Sage CRM functionality
- Server-side scripting using JScript
- Table-level, entity-level, and field-level scripts (which use JScript)
Recommended actions
1. Identify VBScript usage
Review your system for:
- ASP pages referencing:
- SAGECRM.VBS
- ACCPACCRM.VBS
- <script language="VBScript" runat="server"> blocks
This will help determine exposure.
2. Plan migration to JScript
Where possible:
- Replace VBScript with JScript
- Update include files to use:
- SAGECRM.JS
JScript remains supported and is aligned with Sage CRM’s core scripting model.
3. Consider modernisation using the .NET API
For more complex or business-critical functionality:
- Rebuild legacy ASP pages using the Sage CRM .NET API
- Move logic out of Classic ASP into supported extension points
This provides:
- Better long-term supportability
- Improved security
- Alignment with Sage CRM’s future direction
4. Avoid reliance on VBScript Feature on Demand
While VBScript may temporarily be available as a Feature on Demand:
- This is not a long-term solution
- It introduces deployment and support complexity
- It may not be available in future Windows versions
Migration is strongly recommended.
Microsoft’s deprecation of VBScript introduces a clear future risk for any Classic ASP pages that depend on it.
- No immediate impact today
- Increasing risk as VBScript becomes optional
- Eventual breaking change when VBScript is removed
Customers and partners should begin identifying and modernising VBScript-based customisations now to ensure continued compatibility and support.
