I haven't used WMIService, however in the Addprinter() UDF I needed to restart the spooler service too, and the code below is how I did it.

 Code:
 
            $objservice=Getobject("WinNT://" + $remotepc + "/Spooler,Service")
            if @error
              exit -4
            endif
            $objservice.stop
            do
              sleep 0.2
            until $objservice.status=1   ;stopped   
            $objservice.start


You could wrap this up as a UDF pretty easily.