Tag Archives: VBS


A lot of backup suites are available in Windows, but with about half hour of your time, this will provide you with a backup solution.

Try the following just by filling the blanks in the scripts.

I’ve found the following combination to work pretty well. This combination is a D2D, with the possibility of a D2D2T otherwise D2D + Previous versions (Windows 2003 and on-wards).

So, let’s begin – the D2D backup – Robocopy.

Worthwhile mentioning – The below recommendation has been tested in an environment containing about 2Tb of Office docs and other various bits.

First use robocopy, the following script should be used by filling in the blanks – source, destination and whee you want your log file. I found this to take about 30 mins in a production environment.

The log location is going to be pretty important in that we will be firing this puppy to your SMTP server!

Take the following and paste it into a batch file with the above changes and set this up as a scheduled task:


SET _source=C:source

SET _dest=\%computername%x$


:: /COPYALL :: COPY ALL file info
:: /B :: copy files in Backup mode.
:: /SEC :: Copy security Descriptors
:: /MIR :: MIRror a directory tree
:: /XD :: Copy except for the following folders
:: /XF :: Exclude file(s) – ie the log file
:: /A :: Set attributes

SET _options=/R:3 /W:5 /LOG:c:sourcemailme.txt /NP /NDL
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /NFL :: No file logging
:: /NDL :: No dir logging
:: /NP :: No Progress – does not show progress bar

ROBOCOPY %_source% %_dest% %_what% %_options%

Ok so now you have replication between your source and destination. Great! Lets get some monitoring going.

The following vbs will allow you to send (yourself) and e-mail with the changes – probably worthwhile to dump the following into a vbs and run as a scheduled script, also remember to call it with from a back script with the following “cscript &scriptname&”:

Set objMessage = CreateObject(“CDO.Message”)
objMessage.Subject = “Log to self”
objMessage.From = “me@contoso.com”
objMessage.To = “backuplogs@contoso.com”
objMessage.TextBody = “Haha – you know you love some good spam!”
objMessage.AddAttachment “c:sourcemailme.txt”

Ok – so now you are getting a D2D and are also receiving logs – Sleek!

Now that this is going so well, we will probably want to some previous versions of your files using ShadowCopy. The limit to *how much* space you will want to allocate to your previous versions is highly dependent on the *type* of files you will want to recall – ie more space for large files such as videos. There is no right/wrong answer for this.. experiment and see what best fits the environment you are in – if you need to allocate more space to previous versions, so be it, if not, all the better.

The following script will be an easy way to trigger a shadow copy and should be scheduled as a daily job as well.

Grab the script below and dump into a VBS script:

Const VOLUME = “C:”
Const CONTEXT = “ClientAccessible”

strComputer = “.”
Set objWMIService = GetObject(“winmgmts:” _
& “{impersonationLevel=impersonate}!\” & strComputer & “rootcimv2”)

Set objShadowStorage = objWMIService.Get(“Win32_ShadowCopy”)
errResult = objShadowStorage.Create(VOLUME, CONTEXT, strShadowID)

As far as shadow copy goes, I found the following allotment to work well on a 2Tb resulting in a 35 day retention period in an environment with little change – once again dependent to the amount of change in your environment. The screenshot is from Win 2008 R2, valid to 2012 and 2003 environments as well (given tiny gui changes).

backup - Shadowcopy


So, the follow is is now available in your “Previous files” and there is nothing stopping you dumping these files to your tape library – especially if you have a dedicated DAS or Backup NAS/LUN. Should look a little like this after running it for a while:

backup - prev vers


  1. Free backup using Ms built-in functionality.
  2. D2D Backups – free deduplication.
  3. Monitoring (to email) for this backup.
  4. Quick file restore without the need for tapes (Yes, I acknowledge HDDs don’t grow on trees but youg on also have to realize you are not spending on an Enterprise D2D dedup either piece of software either!)
  5. Possible D2D2T options.

This has server me well since 2003 days, never got the chance to document it.

Worth mentioning that Windows 2008 onwards also support multi-threaded robocopy-ing!

Best of luck for now – Go fourth and backup – maybe restore a little too!

VBS/VB ODBC Creation Script

How to create a basic SQL AD authentication ODBC connection (2003/2003 64)

This could easily be adapted to scripted deployments and will work on server 2003 / 2003 64.

Before starting, the easiest way to know exactly what you need to add is to export
These exports will give you the keys needing to be added.

Below is what has worked for me, however additional keys/changes can be added to suit:

On Error Resume Next

Dim Registry
Set Registry = WScript.CreateObject(“WScript.Shell”)
Set objShell = WScript.CreatedObject (“WScript.Shell”)

‘Setup ODBC
DataSourceName = “******”
Server = “******
DriverName = “******
DatabaseName = “******
WindowsAuthentication = True
DriverPath = “C:WindowsSystemSQLSRV32.dll”

‘Create the DSN only if it doesn’t already exist.
Result = Registry.RegRead (REG_KEY_PATH & “Server”)
If Result = “” Then
Registry.RegWrite REG_KEY_PATH & “DataBase”,DatabaseName,”REG_SZ”
Registry.RegWrite REG_KEY_PATH & “LastUser”,LastUser,”REG_SZ”
Registry.RegWrite REG_KEY_PATH & “Server”,Server,”REG_SZ”
Registry.RegWrite REG_KEY_PATH & “Driver”,DriverPath,”REG_SZ”
If WindowsAuthentication = True Then
Registry.RegWrite REG_KEY_PATH & “Trusted_Connection”,”Yes”,”REG_SZ”
End If
‘ This key is required for the DSN to appear in the ODBC Control Panel
Registry.RegWrite REG_KEY_PATH,DriverName,”REG_SZ”
End If
Set Registry = Nothing