I am not sure what is happening. the code seems write and error states that it expects 'then' and it is already there @ line 29
Code:
Option Explicit
On Error Resume Next
Dim objNetwork, objWMIService, objPrinter
Dim colInstalledPrinters
Dim strPrinterServer, strPrinterShare, strComputerName
Dim Return, LocalDefault, PrinterIsInstalled
strPrinterServer = "\\printserver"
strPrinterShare = "PRINTQUEUE"
PrinterIsInstalled = False
strComputerName = "." ' This Computer
Set objWMIService = GetObject( _
"winmgmts:" & "{impersonationLevel=impersonate}!\\" _
& strComputerName & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
If objPrinter.Default = "True" Then
If objPrinter.ServerName = Null And_
objPrinter.Name <> "Microsoft Office Document Image Writer" Then
LocalDefault = True
Else
LocalDefault = False
End If
End If
If objPrinter.ServerName = strPrinterServer And _
objPrinter.ShareName = strPrinterShare Then
PrinterIsInstalled = True
End If
Next
If Not PrinterIsInstalled Then
Set objNetwork = CreateObject("WScript.Network")
objNetwork.AddWindowsPrinterConnection strPrinterServer & "\" & strPrinterShare
If err.Number <> 0 Then
WScript.Echo "Could not map " & strPrinterServer & "\" _
& strPrinterShare & " [" & err.Number & "]"
Err.Clear
Else
If Not LocalDefault Then
objNetwork.SetDefaultPrinter strPrinterServer & "\" & strPrinterShare
End If
End If
Else
End If
Set objWMIService = Nothing
Set objNetwork = Nothing
WScript.Quit