Creating Scripts in WSH and ADSI
In This Chapter
Tools for Creating Scripts
Creating Reusable Scripts
The WSH Object Model
In this chapter, we'll take a look at what you need to create scripts. We'll examine the variety of tools and editors that are available, and then you can decide which one suits you best.
You will also learn how to create scripts for reuse, which is a great time saver as it eliminates the need to rewrite scripts endlessly.
Lastly, we'll look at the Windows Script Host Object Model, which is what you will use to access the functionality of WSH and the operating system.
Tools for Creating Scripts
The title of this section is a bit misleading, perhaps in the sense that there are no "special" tools for creating scripts. Most people use simple ASCII text editors such as Notepad or TextPad.
There are other editors that you can use, such as the Visual Basic IDE for creating VBScript code. The reasons for this will be apparent a little later in the chapter when you see the use of the VB IDE and how it displays syntax automatically, also known as Intellisense.
You can also use a great debugging feature that helps to prevent errors up front by inserting an Option Explicit statement at the top of the code. This feature helps to reduce spelling errors in variable names that can be extremely difficult to locate. With scripts that contain many lines of code, this can be a great time saver.
Notepad as a Script Text Editor
For those who just want to create scripts with the minimum amount of fuss, you can use Microsoft's built-in text editor, Notepad. An example of a script in Notepad is shown in _Figure 3.1.
The script file that you see here might be a typical login script file that you would use to map network drives for users when they log on.
As you will notice, Option Explicit was used even though Notepad was the editor of choice, and not the VB IDE. Even though Notepad has no way of doing any code syntax checks, WSH will provide the notification of any variable name errors when the script runs. We will go into this a little later when we start creating scripts.
Figure 3.1 A simple script file that was typed into the Notepad text editor.
One nice thing about using Notepad is that any Windows-based computer automatically has a copy. Even though it doesn't include any special features for writing code in a clear manner, you can still make use of the basic editor features, such as tabs and white space. The real advantage that Notepad offers is that it will save your files as plain ASCII text files with no formatting codes in place. This is important, because WSH does not know how to interpret any special formatting codes.
For those who may not know, when you save a file in Notepad, the default file type is .txt. Notepad only offers two choices, .txt or all file types. If you want to include the file extension of your choice without having Notepad overwrite it, or add the .txt extension to it if you forget to change the file type to all, simply surround the entire filename with double quotes as in "script.vbs". Notepad will leave the extension alone and your file will be saved correctly.
Let's start out by creating the first script in Notepad. Open Notepad and type the code you see in Listing 3.1.
Listing 3.1 A Simple VBScript Code That Displays a Message Box on Your Screen with the Words "Hello World!"
Option Explicit Wscript.Echo "Hello World!"
When you finish typing in the code, save the file as Hello.vbs. This will create a VBScript file that WSH will associate with the VBScript engine. Locate the file you just saved and double-click it. You will see a message box pop up in the middle of your screen with Hello World! displayed. That is all there is to creating a simple script file.
TextPad as a Script Text Editor
As I mentioned earlier, there are other tools available for writing your scripts as well. There is a shareware tool called TextPad that you can download from the Web (see note). This tool enables you to create text files, but also provides you with the capability to customize the _editor to display colors and other features based on the type of file you are creating. Figure 3.2 shows a VBScript file in TextPad using the VBScript syntax.
Figure 3.2 TextPad displaying a VBScript file using the VBScript syntax add-on for displaying the current time to the user in a message box.
With these syntax definitions, keywords and other code aspects are displayed using colors. This can make it easier to read your code and work with it.
Writing Scripts with Microsoft's Visual Basic Integrated Development Environment
Another available tool to use for writing scripts is Microsoft's Visual Basic Development _environment. Because VBScript is a subset of the Visual Basic language, the IDE for Visual Basic makes for a great script-writing tool that also provides code syntax coloring. Figure 3.3 shows an example of the VB IDE.
Figure 3.3 The Visual Basic IDE, where you can write VBScript code and have the keywords displayed in color.
Of course if you don't have Visual Basic or Visual Studio, the IDE is not an option for you to use. My suggestion is to find one tool that you are comfortable using and stick with it; as long as it saves the files as ASCII text with no formatting codes, you will be all right. My personal preferences are Notepad and TextPad, with a slight lean toward TextPad because of the syntax capabilities it has.