Active Scripting (formerly known as ActiveX Scripting) is the technology used in Windows to implement component-based scripting support. It is based on OLE Automation (part of COM) and allows installation of additional scripting engines in the form of COM modules.
Uses and history
Usual applications of Active Scripting include Active Server Pages (ASP) server scripts, Internet Explorer, and Windows Script Host (WSH) scripts automating routine tasks, including use for login scripts, Registry manipulation, and the like. Other administrative uses include Windows Management Instrumentation and Active Directory Service Interfaces. Active Scripting can also be used for general-purpose scripting, such as database programming, text-processing, rapid prototyping, and application macro/scripting programming; some applications use Active Scripting as the main automation method, others do not have a macro facility but the components are available for use via the API; or one may opt to add a language and/or tool not available by default, like programming Microsoft Excel in Perl or REXX rather than Visual Basic for Applications (VBA) or transferring data from a terminal emulator to word processor by way of a spreadsheet when they have dissimilar macro tools or none at all.
For many of the above uses, Active Scripting is an addition to Windows that is similar to the functionality of Unix shell scripts, as well as an incremental improvement upon batch files (command.com), Windows NT style shell scripts (cmd.exe) and, by way of VBScript, the replacement for QBasic, which was last available on the supplementary disc for Windows 95. The majority of the languages used for Active Scripting mentioned below are glue languages, with Perl being the most commonly used third-party script engine.
The interfaces to Active Scripting engines are public, so any developer can create applications that are programmable in Active Scripting languages as well as engines for additional languages.
Active Scripting engines are available for several languages. Some of the most popular include:
- VBScript and JScript engines are included with the default installation of Windows versions after Windows 95, and are an optional install with CE.
- Visual Basic for Applications (VBA) is a third default scripting engine. It is not part of the Windows installation and requires Microsoft Office, or other software packages that are VBA-programmable to be installed. In some cases multiple software packages may share the same VBA installation.
- A Perl engine provided as part of the ActivePerl distribution.
- A Python engine provided as part of the pywin32 extension.
- The standard PHP installation for Windows includes an engine known as ActivePHP and PHPScript in various versions.
- REXX (multiple versions).
- The DCL-based scripting language XLNT comes with a scripting engine as well.
In Windows, CScript.exe at the command line and WScript.exe running in the GUI are the main means of implementation of installed Active Script languages. Clicking on an icon or running from the command line, a script, the Run dialogue, etc. will by default run a plain text file containing the code. A Windows Script File (.wsf) is an XML file that can contain more than one script in more than one language in addition to other elements, and are executed by the Windows Script Host.
The third-party shell Take Command can, as of version 10, be configured for direct interoperability with the script host and its installed engines; a WSH engine based on the Take Command language is reportedly now in development.
Some software such as SecureCRT use the WSH functionality to allow automation by means of any installed scripting engine.
The script host, related components, and engines are able to be integrated into and called from Windows applications just like any other component.
Active scripting is regarded complete, and no longer under active development by Microsoft. However, the technology is still being supported by Microsoft's Sustaining Engineering Team, which is responsible for bug fixes and security enhancements. Furthermore, scripting engines will continue to be shipped with future releases of Microsoft Windows and IIS.
Originally, the .NET Framework had a scripting technology of its own and a separate scripting IDE called Visual Studio for Applications (VSA), and the interfaces to the technology were also available via Active Scripting, allowing even .NET-unaware applications to be scripted using .NET languages. VSA was also meant to replace Visual Basic for Applications. However, that entire technology was deprecated in version 2.0 of the .NET Framework, leaving no clear upgrade path for applications desiring Active Scripting support (although "scripts" can be created in C#, VBScript, Visual Basic .NET, and other .NET languages, which can be compiled and executed at run-time via libraries installed as part of the standard .NET runtime).
Microsoft has also introduced Windows PowerShell, which can expose applications via PowerShell cmdlets or PowerShell providers.
- Rumours of VBScript's Death Have Been Greatly Exaggerated, on Eric Lippert's Blog Fabulous Adventures In Coding on MSDN (April 09, 2004).
- Script Happens .NET, article by Andrew Clinick of Microsoft Corporation, in Scripting Clinic on MSDN (July 25, 2001).
- Microsoft Takes Wraps Off VSA Development Technology, by Scott Bekker on Redmondmag.com (January 16, 2001).
- VSA scripting in .NET, by Mark Belles on The Code Project.