VBScript – In the beginning LOGGING

So what is VBScript? I’m not going to go into the whole what and why… you can read it all on WiKiPeDiA.
Sort Story
VBScript (Visual Basic Scripting Edition) is an Active Scripting language developed by Microsoft that is modelled on Visual Basic. It is designed as a “lightweight” language with a fast interpreter for use in a wide variety of Microsoft environments. VBScript uses the Component Object Model to access elements of the environment within which it is running; for example, the FileSystemObject (FSO) is used to create, read, update and delete files.
Read more on Wiki – http://en.wikipedia.org/wiki/VBScript

So now they what we can do with it and why as there are other solutions.
What did I use VBS for?
Anything from Go-Live with user intervention to enter details for Machine name changes, IP Changes, Registry Changes, DB Changes and much more to automate Go-Live and System staging.
Automate backup and restore, tie into active solutions via MS solutions…
HTA files are a nice touch to make everything look somewhat up to date.
VBScript is a simple but sofisticated way of automating enviromentatal solutions.

But before I start with anything i’m going to recommend LOGGING!!! so add the following code to the end of your scripts and LOG away.
There are many variations but I like the following one and it does have some variations, but here is what I like about it.
1. Create a few log files with the same SUB
2. Consistency with all your log files

In this example we use one log and one line, the log write line

WriteToLog("Generic Log.vbs - Write This")

The output line in the log file will be
8/16/2010 11:26:00 PM    :    Generic Log    :    Generic Log.vbs – Write This

Full Code

' Filename:  Generic Log.vbs
' Copyright (c) Yeshai Bouskila 2009
' All Rights Reserved
' Please Enter Updates with date and name including line of Change
 set objShell = CreateObject("Wscript.Shell")
 set objFSO = CreateObject("Scripting.FileSystemObject")

'--- Main Begins ---------------------------------------

 WriteToLog("Generic Log.vbs - Write This")

'--- Main Ends -----------------------------------------

'--- Write to log --------------------------------------
Sub WriteToLog(strLogMessage)
 Const ForAppending = 8
 Const vbsName = "Generic Log"
 strLogFileName = "C:\GenericLog.log"
 strLogEntryTime = NOW
 'test whether file exists To either write/append to file
 if objFSO.FileExists(strLogFileName) Then
 Set objLogFileTransaction = objFSO.OpenTextFile(strLogFileName, ForAppending)
 Set objLogFileTransaction = objFSO.CreateTextFile(strLogFileName)
 End if
 objLogFileTransaction.WriteLine strLogEntryTime & chr(9) & chr(58) & chr(9) & vbsName & chr(9) & chr(58) & chr(9) & strLogMessage
 WScript.StdOut.WriteLine strLogMessage
 WScript.StdOut.WriteLine ""
End Sub

Now let’s say I want to write in one script to a few log files but want to keep it constant.
We will change our SUB line to request another parameter from the WriteToLog line in the script

Sub WriteToLog(strLogMessage,strLogFileName)

As well another change to the log name in the function

strLogFileName = "C:\"& strLogFileName & ".log"

So what did we just do if our write to log like looks like this?

WriteToLog "Something for the VBScript Log","WhatAlog"

first area is our strLogMessage, second area is the log name strLogName
strLogMessage = “Something for the VBScript Log”
strLogName = “WhatAlog”

There are unlimited options here, have fun and ask away if you need.

This entry was posted in Scripting and tagged , , , , . Bookmark the permalink.