Link to home
Start Free TrialLog in
Avatar of diegomirner
diegomirnerFlag for Switzerland

asked on

vbs script need help to delete all printer to add new ones in actual printers script by gpo's

Dear Experts,

I need help in order to modify my actual scrip to be available to delete all printers and publish new ones.I havo no expericence with vbs , could you provide an easy way to modify it ??
all pc's runs windows xp prof
here my actual script , thanks in advance :
scrip :


'
' Printers.vbs - Windows Logon Script.
Set objNetwork = CreateObject("WScript.Network")
objNetwork.AddWindowsPrinterConnection "\\data0\CanonIR"
objNetwork.AddWindowsPrinterConnection "\\data0\CommBrot"
objNetwork.AddWindowsPrinterConnection "\\data0\CommHPColor"
Avatar of fishadr
fishadr
Flag of United Kingdom of Great Britain and Northern Ireland image

The original code is correct:
Set objNetwork = CreateObject("Wscript.Network")
objNetwork.AddWindowsPrinterConnection "\\data0\CanonIR"

You can set the default printer using the following command:
objNetwork.SetDefaultPrinter "\\data0\CanonIR"

and reomve a printer connection using this:
objNetwork.RemovePrinterConnection "\\data0\CanonIR"
You can also use the following code to list all your printers (if you want to delete the printers then you can replace the wscript.echo section with objNetwork.RemovePrinterConnection :

  Set WshNetwork = WScript.CreateObject("WScript.Network")
         Set oPrinters = WshNetwork.EnumPrinterConnections
         WScript.Echo "Network printer mappings:"
         For i = 0 to oPrinters.Count - 1 Step 2
            WScript.Echo "Port " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1)
         Next
Avatar of diegomirner

ASKER

thanks for that , now im geting this error :
in line 3
Error: object required :'objnetwork'
code: 800A01A8

here the new scrip to delete all printers:

'
' Printers.vbs - Windows Logon Script.
objNetwork.RemovePrinterConnection "\\data0\CanonIR"
objNetwork.RemovePrinterConnection "\\data0\CommBrot"
objNetwork.RemovePrinterConnection "\\data0\CommHPColor"
objNetwork.RemovePrinterConnection "\\data0\fell1320tn"
objNetwork.RemovePrinterConnection "\\data0\FinanBrother"
objNetwork.RemovePrinterConnection "\\data0\MembBrother"
objNetwork.RemovePrinterConnection "\\data0\Finan_Jean"
objNetwork.RemovePrinterConnection "\\data0\BrotherConf"
objNetwork.RemovePrinterConnection "\\data0\BrotherHealt"
objNetwork.RemovePrinterConnection "\\data0\BrotherExecD"
objNetwork.RemovePrinterConnection "\\data0\BrotherMem2"
objNetwork.RemovePrinterConnection "\\data0\XeroxDat"
objNetwork.RemovePrinterConnection "\\data0\BrothConf2"
objNetwork.RemovePrinterConnection "\\data0\BotherHealthCare1"
objNetwork.RemovePrinterConnection "\\data0\PRINTER_14_A"


and them i will create the new one with all new path.
DO you think thats its ok ?
or should i do only one withh all inside ?
i dont know exactly manage with the deletion , should i live it until all users logon ?
could it couse error on logon if all printer has all ready deleted ?
You have missed settings the ObjNetwork option at the start:
Set WshNetwork = WScript.CreateObject("WScript.Network")

You may have to add the line:
On Error Resume Next

To stop error messages in relation to deleting printers that do not exist, alternatively if you ue the EnumPrinterConnections subroutine I provided this will only remove printers that are connected on the client and would  not error, it would also remove printers that are not in the remove list provided
i will like to use enum + with your subrutine , but i will neen an example about it becouse im lost, can you provide me and ex of the whole script ?
thanks
'==========================================================
Set objNetwork = CreateObject("Wscript.Network")
'==========================================================
' ENUMERATE PRINTER CONNECTIONS AND DELETE THEM
Set oPrinters = WshNetwork.EnumPrinterConnections
On Error Resume Next
For i = 0 to oPrinters.Count - 1 Step 2
  objNetwork.RemovePrinterConnection oPrinters.Item(i+1),true,true
Next
On Error Goto 0
'==========================================================
' ADD THE PRINTERS THAT YOU NEED
objNetwork.AddWindowsPrinterConnection "\\data0\CanonIR"
objNetwork.AddWindowsPrinterConnection "\\data0\CommBrot"
objNetwork.AddWindowsPrinterConnection "\\data0\CommHPColor"
i try it , but i have an error at  this line :

Set oPrinters = WshNetwork.EnumPrinterConnections

here all the script i have try , please advice if you see the error , thanks

'
' Printers.vbs - Windows Logon Script.
Set objNetwork = CreateObject("WScript.Network")
objNetwork.AddWindowsPrinterConnection "\\data0\CanonIR"
objNetwork.AddWindowsPrinterConnection "\\data0\CommBrot"
objNetwork.AddWindowsPrinterConnection "\\data0\CommHPColor"


'==========================================================
Set objNetwork = CreateObject("Wscript.Network")
'==========================================================
' ENUMERATE PRINTER CONNECTIONS AND DELETE THEM
Set oPrinters = WshNetwork.EnumPrinterConnections
On Error Resume Next
For i = 0 to oPrinters.Count - 1 Step 2
  objNetwork.RemovePrinterConnection oPrinters.Item(i+1),true,true
Next
On Error Goto 0
'==========================================================
' ADD THE PRINTERS THAT YOU NEED
objNetwork.AddWindowsPrinterConnection "\\data0\CanonIR"
objNetwork.AddWindowsPrinterConnection "\\data0\CommBrot"
objNetwork.AddWindowsPrinterConnection "\\data0\CommHPColor"
Sorry, replace the line:
Set oPrinters = WshNetwork.EnumPrinterConnections

with:
Set oPrinters = ObjNetwork.EnumPrinterConnections
exelent works , but i have a new error :

in one of the printers it gibes me :

the printer driver is unknown
code 80070705
source:null

its strange , normaly it should take the drive from theserver , any idea ?
ASKER CERTIFIED SOLUTION
Avatar of fishadr
fishadr
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
well , that looks to complicate for me today , maybe tomorrow , any ways , your solution has work so thanks a lor.
Now i will add a post in order to solve an other problem regarding the same scrip , but this time i need to be sure that all rpinters will work with A4 format, houpe you there to take over of it.
thanks again