Hooray, I have found the cause of the problem!

If you type

SetDefaultPrinter ("\\server\ICT Colour") = 0

the program works perfectly, but if you type

SetDefaultPrinter ("\\Server\ICT Colour") = 0

Then it fails.

it also fails if I use something like this

$ServerName = @LServer
SetDefaultPrinter ($ServerName + "\ICT Colour") = 0

The program says there is no printer installed even though all the printers are installed and the correct printer is set as default.

In case you missed it, the name of the server in this example is server (in lowercase), but if you type Server (uppercase S), thats when the program fails to find the printer. In the case of this specific client, the name of the server is in lower case, but in the script it started with uppercase. It also fails when you use the @Lserver macro so for me setdefaultprinter is unworkable as I use the same script for all my clients and they all have different server names, which is why I use the @LServer macro which obviously is returning the server name in uppercase I presume.

Interesting thing though, is the program works perfectly if you use the VBS script mentioned above in earlier posts and it makes no difference whether you use lower or upper case in the VBS script.

I don't know if this qualifies as a bug with this specific program or whether its a bug with setdefault printer, but I would say as it works in both lower and uppper case in the vbs script, that the bug lies with setdefaultprinter function.

Ignore the comment I made in my post on the 12th april. The refresh and movement of the tick issue is a windows xp issue. It works perfectly on Windows 7, but with XP you either have to refresh the window or close the printer windows and re-open. As such, that is not relevant to the issue being discussed here.

Thanks to everyone for all the input, my preferred solution now that I have worked out what the problem is, would be to take the vbs script and incorporate it into my kixtart scripts as Arend suggested. So I now consider setdefaultprinter to be obsolete as the VBS scripts work regardless of the case sensitivity. Many thanks to all.