This error code, 800A03F6 occurs when you execute a VBScript. The problem is that you have initiated 'If...Then.. End' logic, but you have omitted the End.
The Symptoms You Get 800A03F6
The script does not execute as you hoped, instead you get a WSH error message.
The Cause of Error 800A03F6
The underlying cause error 800A03F6 of is a syntax omission, you are missing an 'EndIF' or and 'End' statement. When you have nested If's or nested Else IF statements, then the chances of omitting one of the closing End
statements increases dramatically. Note that the Source: is telling us it's a compilation error, meaning faulty syntax.
The Solution
This a mixture of logic and syntax. Check each 'If', or 'Else If' statement and ensure there is a corresponding End If command. As ever, check the Line: number, in my example there are not
enough 'End If' statements corresponding to the 'Else If' statements.
‡
Example of Error 800A03F6 Script
Here is the critical section of the script, which contains multiple 'Else If' statements. In the problem script there is one too few 'End If' closing statements.
For clarity I have left a blank line where the missing statement should be.
Lower section of script starting at about line 40.
If OSystem = "XP" Then Wscript.Echo " This is where you set XP Group Policy " Else If OSystem = "Windows 2003" Then
Wscript.Echo " No Group Policy on the server" Else If OSystem = "W2K" Then Wscript.Echo " You could set W2K Group Policy " Else Wscript.Echo " Default group
policy " End If End If
Corrected Version
If OSystem = "XP" Then Wscript.Echo " This is where you set XP Group Policy " Else If OSystem = "Windows 2003" Then
Wscript.Echo " No Group Policy on the server" Else If OSystem = "W2K" Then Wscript.Echo " You could set W2K Group Policy " Else Wscript.Echo " Default group
policy " End If End If End If
Guy Recommends: SolarWinds Engineer's Toolset v10
This Engineer's Toolset v10 provides a comprehensive console of utilities
for troubleshooting computer problems. Guy says it helps me
monitor what's occurring on the network, and each tool teaches me more about how the
underlying system operates.
Full Script to show that the error is around line 50.
' OSVerBranch.vbs ' Purpose VBScript to discover the operating system version. ' Learning Points: Win32_ WMI objects. Case Select ' Usage if want to 'branch'
depending on the OS ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 3.2 - November 14th 2010 ' --------------------------------------------------------------' Option Explicit Dim
objWMI, objItem, colItems Dim strComputer, VerOS, VerBig, Ver9x, Version9x, OS, OSystem
' Here is where we interrogate the Operating System ' On Error Resume Next
' Get the computer name dot
= this computer. strComputer = "." ' This is where WMI interrogates the operating system Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems =
objWMI.ExecQuery("Select * from Win32_OperatingSystem",,48)
' Here we filter Version from the dozens of properties For Each objItem in colItems VerBig = Left(objItem.Version,3) Next
'
Spot VerBig variable in previous section ' Note the output variable is called OSystem
Select Case VerBig Case "5.0" OSystem = "W2K" Case "5.1" OSystem = "XP" Case "5.2" OSystem = "Windows
2003" Case "4.0" OSystem = "NT 4.0" Case Else OSystem = "Unknown - probably Win 9x" End Select
' Actual Branching section If OSystem = "XP" Then Wscript.Echo " This is where you set XP
Group Policy " Else If OSystem = "Windows 2003" Then Wscript.Echo " No Group Policy on the server" Else If OSystem = "W2K" Then Wscript.Echo " You could set W2K Group Policy " Else Wscript.Echo "
Default group policy " End If End If
WScript.Quit
' End of script
Guy
Recommends: WMI Monitor and It's Free!
Windows Management Instrumentation (WMI) is one of the hidden
treasures of Microsoft operating systems. Fortunately, Solarwinds
have created the
WMI Monitor so that you can examine these gems of
performance information for free. Take the guess work out of which
WMI counters to use for applications like Microsoft Active Directory,
SQL or Exchange Server.
Thus utility makes it easy to check the health of a router or firewall. Check the real-time performance and availability statistics for any device
on your network.