Setting Default Printer not working completely

Author Message
hbomb

  • Total Posts : 14
  • Scores: 0
  • Reward points : 0
  • Joined: 10/20/2004
  • Location: USA
  • Status: offline
Setting Default Printer not working completely Monday, May 16, 2005 10:12 AM (permalink)
0
I don't know what to do. The way that VBscript sets a printer to be default just isn't working on all of my machines. It will set the default printer, then it will switch to the secondary printer. I even tried doing a objshell.RegWrite to set the default printer and it croaked even more. Could someone instruct me on what I am doing wrong, because setdefaultprinter should work and it does on the majority of my PCs. Here is my script:

'********************************************************************************************
'
' NAME: PRINTER.VBS
' AUTHOR: RON HINTON
' CREATED: 9/28/2004
' DESCRIPTION: Connects printers to users via computer print group membership
'
'********************************************************************************************
on error resume next 'this allows execution of script even if it runs into an error


'Declare Variables
'**************************

Dim SR_PrinterInstalled, colGroups, objShell, strUGroups, objNet, Local, objSysInfo, R_Secondary, objComputer, R_PrinterInstalled, strComputerDN, objPrinters_Array, I, R_CompInGroup , strGroups, Printer1, Printer2, Printer3, Printer4, Printer5, Printer6, Printer7, Printer8, Printer9, Printer10, Printer11, Printer12, Printer13, Printer14, Printer15, Printer16, Printer17, Printer18, Printer19, Printer20, Printer21, Printer22, Printer23, Printer24, Printer25

Set objShell = WScript.CreateObject("WScript.Shell")
Set objNET = WScript.CreateObject("WScript.Network")
Set objSysInfo = WScript.CreateObject("ADSystemInfo")
strComputerDN = objSysInfo.COMPUTERNAME
Set objComputer = GetObject("LDAP://" & strComputerDN) 'Binds the objComputer to the Distiguished Name of the Computer in reference
colGroups = objComputer.MemberOf 'collection of the groups in AD that the computer being referenced is a member of

If IsEmpty(colGroups) Then
strGroups = ""
ElseIf TypeName(colGroups) = "String" Then 'Checks to see if the colGroups is a String or not
strGroups = LCase(colGroups) 'sets everything in colGroups to lowercase
Else
strGroups = LCase(Join(colGroups)) 'joins everything in colGroups into one string and then it sets everything lowercase
End If

Set objPrinters_Array = objNet.EnumPrinterConnections 'Enumerates all the printers connected to the computer in reference and assigns the array to the variable


'Set variable values
'***********************

Printer1 = "\\marble\NG149-Laser" 'MIS's Printer
Printer2 = "\\marble\NG159-Laser" 'NorthGate Mailroom's Printer
Printer3 = "\\marble\NG100-Laser" 'NorthGate Unit's Printer
Printer4 = "\\marble\NG105-Laser" 'NorthGate Reception's Printer
Printer5 = "\\marble\NG143-Laser" 'NorthGate OutPatient's Printer
Printer6 = "\\marble\NG144-Laser" 'NorthGate Crisis Intervention's Printer
Printer7 = "\\sr-om1\OM-Laser" 'Oakmont ACT's Printer
Printer8 = "\\marble\NG152-Laser" 'NorthGate MedRec's Printer
Printer9 = "\\marble\NG163-Laser" 'NorthGate Accounting's Printer
Printer10 = "\\marble\NG209-Admin" 'NorthGate Admin's Printer
Printer11 = "\\marble\NG312-Laser" 'NorthGate CD's Printer
Printer12 = "\\sr-mv\MV308-Laser" 'Maryville Lighthouse's Printer
Printer13 = "\\sr-mv\MV105-Laser" 'Maryville MedRec's Printer
Printer14 = "\\sr-mv\MV314-Laser" 'Maryville Admin's Printer
Printer15 = "\\sr-bv\BV157-Laser" 'Belleville Admin's Printer
Printer16 = "\\sr-bv\BV137-Laser" 'Belleville MedRec's Printer
Printer17 = "\\sr-bv\BV163-Laser" 'Belleville OutPatient's Printer
Printer18 = "\\sr-bv\BV103-Laser" 'Belleville Reception's Printer
Printer19 = "\\sr-bv\BV011-Laser" 'Belleville Case Management Printer
Printer20 = "\\sr-em\EM-L1-Laser" 'East Main'
Printer21 = "\\sr-fh1\HPLaser" 'Fairview Heights' Printer
Printer22 = "\\sr-psr\ED-L3-Laser" 'Edison Case Management's Printer
Printer23 = "\\sr-psr\ED-L2-Laser" 'Edison Level2's Printer
Printer24 = "\\sr-psr\ED-L1-Laser" 'Edison Level1's Printer
Printer25 = "\\marble\NG208-ColorLaser" 'NorthGate's Color Printer
Printer26 = "\\marble\NG102-Laser" 'NorthGate's Outreach Printer
Printer27 = "\\sr-psr\ED-MedRec" 'Edison MedRec Printer
Printer28 = "\\NG169-MEDMAINT2\HP DeskJet 720c" 'Northgate MedMaint's Printer
Printer29 = "\\OM-Housing1\HP LaserJet 6P" 'Oakmont Housing Local Printer

'Define Constants
Const group0= "cn=Local-Print" 'Local Printers Group
Const group1= "cn=NG-Print-MIS" 'NG-149
Const group2= "cn=NG-Print-MailRoom" 'NG-159
Const group3= "cn=NG-Print-Unit" 'NG100-2200DN
Const group4= "cn=NG-Print-Recept" 'NG-105
Const group5= "cn=NG-Print-OP" 'NG-143
Const group6= "cn=NG-Print-CI" 'NG-144
Const group7= "cn=OM-Print" 'OM-ACT
Const group8= "cn=NG-Print-MedRec" 'NG-152
Const group9= "cn=NG-Print-Acct" 'NG-165
Const group10= "cn=NG-Print-Admin" 'NG-209-RICOH
Const group11= "cn=NG-Print-CD" 'NG-312
Const group12= "cn=MV-Print-LI" 'MV308-Laser
Const group13= "cn=MV-Print-MedRec" 'MV105-Laser
Const group14= "cn=MV-Print-Admin" 'MV314-Laser
Const group15= "cn=BV-Print-Adm" 'BV157-Laser
Const group16= "cn=BV-Print-MedRec" 'BV137-Laser
Const group17= "cn=BV-Print-OP" 'BV-OP-LJ4100
Const group18= "cn=BV-Print-Reception" 'BV-Reception-HP4100
Const group19= "cn=BV-Print-CM" 'BV-CM-LJ2300DTN
Const group20= "cn=EM-Print" 'EM-Laser
Const group21= "cn=FH-Print" 'HPLaser
Const group22= "cn=ED-Print-Level3" 'ED-CM-Laser
Const group23= "cn=ED-Print-Level2" 'ED-PSR-Level2
Const group24= "cn=ED-Print-Level1" 'ED-MedRec
Const group25= "cn=NG-Print-Color" 'NorthGate Color Print
Const group26= "cn=NG-Print-Outreach" 'NorthGate's Outreach
Const group27= "cn=ED-Print-MedRec" 'Edison MedRec
Const group28= "cn=NG-Print-MedMaint" 'Northgate MedMaint
Const group29= "cn=OM-Print-Local" 'Oakmont Housing Local Printer

Const IP1= "IP_192.168.60.28" 'NG-149
Const IP2= "IP_192.168.60.20" 'NG-159
Const IP3= "IP_192.168.60.25" 'NG100
Const IP4= "IP_192.168.60.21" 'NG-105
Const IP5= "IP_192.168.60.24" 'NG-143
Const IP6= "IP_192.168.60.26" 'NG-144
Const IP7= "IP_192.168.40.30" 'OM-ACT
Const IP8= "IP_192.168.60.23" 'NG-152
Const IP9= "IP_192.168.60.27" 'NG-163
Const IP10= "IP_192.168.60.30" 'NG209-Admin
Const IP11= "IP_192.168.60.33" 'NG312-Laser
Const IP12= "IP_192.168.30.30" 'MV308-Laser
Const IP13= "IP_192.168.30.154" 'MV105-Laser
Const IP14= "IP_192.168.30.155" 'MV314-Laser
Const IP15= "IP_192.168.100.30" 'BV157-Laser
Const IP16= "IP_192.168.100.36" 'BV137-Laser
Const IP17= "IP_192.168.100.32" 'BV163-Laser
Const IP18= "IP_192.168.100.33" 'BV103-Laser
Const IP19= "IP_192.168.100.35" 'BV011-Laser
Const IP20= "IP_192.168.110.30" 'EM-L1-Laser
Const IP21= "IP_192.168.120.20" 'HPLaser
Const IP22= "IP_192.168.80.24" 'ED-L3-Laser
Const IP23= "IP_192.168.80.23" 'ED-L2-Laser
Const IP24= "IP_192.168.80.22" 'ED-L1-Laser
Const IP25= "IP_192.168.60.30" 'Northgate's Color Printer
Const IP26= "IP_192.168.60.32" 'NG-102
Const IP27= "IP_192.168.80.20" 'ED-MedRec

Const SIP1= "IP_192.168.60.28" 'NG-149
Const SIP2= "IP_192.168.60.20" 'NG-159
Const SIP3= "IP_192.168.60.25" 'NG100
Const SIP4= "IP_192.168.60.21" 'NG-105
Const SIP5= "IP_192.168.60.24" 'NG-143
Const SIP6= "IP_192.168.60.26" 'NG-144
Const SIP7= "IP_192.168.40.30" 'OM-ACT
Const SIP8= "IP_192.168.60.23" 'NG-152
Const SIP9= "IP_192.168.60.27" 'NG-163
Const SIP10= "IP_192.168.60.30" 'NG209-Admin
Const SIP11= "IP_192.168.60.33" 'NG312-Laser
Const SIP12= "IP_192.168.30.30" 'MV308-Laser
Const SIP13= "IP_192.168.30.154" 'MV105-Laser
Const SIP14= "IP_192.168.30.155" 'MV314-Laser
Const SIP15= "IP_192.168.100.30" 'BV157-Laser
Const SIP16= "IP_192.168.100.36" 'BV137-Laser
Const SIP17= "IP_192.168.100.32" 'BV163-Laser
Const SIP18= "IP_192.168.100.33" 'BV103-Laser
Const SIP19= "IP_192.168.100.35" 'BV011-Laser
Const SIP20= "IP_192.168.110.30" 'EM-L1-Laser
Const SIP21= "IP_192.168.120.20" 'HPLaser
Const SIP22= "IP_192.168.80.24" 'ED-L3-Laser
Const SIP23= "IP_192.168.80.23" 'ED-L2-Laser
Const SIP24= "IP_192.168.80.22" 'ED-L1-Laser
Const SIP25= "IP_192.168.60.30" 'Northgate's Color Printer
Const SIP26= "IP_192.168.60.32" 'NG-102
Const SIP27= "IP_192.168.80.20" 'ED-MedRec

Function FPrinterRoutine(S_group, R_CompInGroup) 'S=submitted value, R=returned value

Dim ArrayResult

'Check to see if the computer being logged in to is a member of the specific printer group to which this printer represents, return result.

IF InStr(1,strGroups, S_group,1) > 0 THEN 'Checks to see if the submitted group is a part of the string strGroups
R_CompInGroup = 0 'Computer is in group
ELSE
R_CompInGroup = -1 'Computer is not in group
END IF
END Function

For i = 0 to objPrinters_Array.Count - 1 Step 2
objNet.RemovePrinterConnection objPrinters_Array.Item(i+1)
Next


'IF strComputerDN = "NG156-BILLING"

'Connect Printers Based on Group Membership
'*******************************************

'Routine for Local Printers

IF InStr(1,strGroups, group0,1) > 0 THEN 'Checks to if Local Print group is part of the string strGroups
Local=0 'Local printer installed
ELSE
Local=-1 'No local printer installed
END IF

'Printer1 Routine for the NG-MIS Printer

CALL FPrinterRoutine(group1, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer1
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer1
END IF

'Printer2 Routine for the NG-Mailroom Printer

CALL FPrinterRoutine(group2, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer2
objNet.AddWindowsPrinterConnection Printer5
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer2
END IF

'Printer3 Routine for the NG-Unit Printer

CALL FPrinterRoutine(group3, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer3
objNet.AddWindowsPrinterConnection Printer6
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer3
END IF

'Printer4 Routine for the NG-Reception Printer

CALL FPrinterRoutine(group4, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer4
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer4
END IF

'Printer5 Routine for the NG-OP Printer

CALL FPrinterRoutine(group5, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer5
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer5
END IF

'Printer6 Routine for the NG-CI Printer

CALL FPrinterRoutine(group6, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer6
objNet.AddWindowsPrinterConnection Printer5
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer6
END IF

'Printer7 Routine for the OM Printer

CALL FPrinterRoutine(group7, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer7
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer7
END IF

'Printer8 Routine for the NG-MedRec Printer

CALL FPrinterRoutine(group8, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer8
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer8
END IF

'Printer9 Routine for the NG-Acct Printer

CALL FPrinterRoutine(group9, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer9
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer9
END IF

'Printer10 Routine for the NG-Admin Printer

CALL FPrinterRoutine(group10, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer10
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer10
END IF

'Printer11 Routine for the NG-CD Printer

CALL FPrinterRoutine(group11, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer11
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer11
END IF

'Printer12 Routine for MV Lighthouse Printer

CALL FPrinterRoutine(group12, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer12
objNet.AddWindowsPrinterConnection Printer14
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer12
END IF

'Printer13 Routine for the MV MedRec Printer

CALL FPrinterRoutine(group13, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer13
objNet.AddWindowsPrinterConnection Printer14
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer13
END IF

'Printer14 Routine for the MV Admin Printer

CALL FPrinterRoutine(group14, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer14
objNet.AddWindowsPrinterConnection Printer13
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer14
END IF

'Printer15 Routine for the BV Admin Printer

CALL FPrinterRoutine(group15, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer15
objNet.AddWindowsPrinterConnection Printer16
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer15
END IF

'Printer16 Routine for the BV MedRec Printer

CALL FPrinterRoutine(group16, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer16
objNet.AddWindowsPrinterConnection Printer15
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer16
END IF

'Printer17 Routine for the BV OP Printer

CALL FPrinterRoutine(group17, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer17
objNet.AddWindowsPrinterConnection Printer15
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer17
END IF

'Printer18 Routine for the BV Reception Printer

CALL FPrinterRoutine(group18, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer18
objNet.AddWindowsPrinterConnection Printer17
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer18
END IF

'Printer19 Routine for the BV CM Printer

CALL FPrinterRoutine(group19, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer19
objNet.AddWindowsPrinterConnection Printer15
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer19
END IF

'Printer20 Routine for the EM Printer

CALL FPrinterRoutine(group20, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer20
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer20
END IF

'Printer21 Routine for the FH Printer

CALL FPrinterRoutine(group21, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer21
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer21
END IF

'Printer22 Routine for the ED-L3-Laser Printer

CALL FPrinterRoutine(group22, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer22
objNet.AddWindowsPrinterConnection Printer27
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer22
END IF

'Printer23 Routine for the ED-L2-Laser Printer

CALL FPrinterRoutine(group23, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer23
objNet.AddWindowsPrinterConnection Printer27
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer23
END IF

'Printer24 Routine for the ED-L1-Laser Printer

CALL FPrinterRoutine(group24, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer24
objNet.AddWindowsPrinterConnection Printer27
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer24
END IF

'Printer27 Routine for the Edison MedRec Printer

CALL FPrinterRoutine(group27, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer27
objNet.AddWindowsPrinterConnection Printer23
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer27
END IF

'Printer Routine for the Color Printer

CALL FPrinterRoutine(group25, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer25
END IF

'Printer26 Routine for the NorthGate's Outreach Printer

CALL FPrinterRoutine(group26, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer26
objNet.AddWindowsPrinterConnection Printer11
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer26
END IF

'Printer28 Routine for the Northgate's MedMaint Printer

CALL FPrinterRoutine(group28, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer28
objNet.AddWindowsPrinterConnection Printer5
objNet.AddWindowsPrinterConnection Printer2
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer28
END IF

'Printer29 Routine for the Oakmont Housing Local printer

CALL FPrinterRoutine(group29, R_CompInGroup)

IF R_CompInGroup = 0 Then
objNet.AddWindowsPrinterConnection Printer29
objNet.AddWindowsPrinterConnection Printer7
END IF

IF Local=-1 Then
objNet.SetDefaultPrinter Printer29
END IF
'*****************************************************
'no work done below this line.

 
#1
    token

    • Total Posts : 1917
    • Scores: 0
    • Reward points : 0
    • Joined: 1/14/2005
    • Location:
    • Status: offline
    Re: Setting Default Printer not working completely Monday, May 16, 2005 4:27 PM (permalink)
    0
    Perhaps you need to have the following lines of code for EACH group that you want to test instead of only test it once at the beginnig of the script so that the "local" variable gets its new value for each group tested.

    IF InStr(1,strGroups, group0,1) > 0 THEN 'Checks to if Local Print group is part of the string strGroups
    Local=0 'Local printer installed
    ELSE
    Local=-1 'No local printer installed
    END IF

     
    #2

      Online Bookmarks Sharing: Share/Bookmark

      Jump to:

      Current active users

      There are 0 members and 1 guests.

      Icon Legend and Permission

      • New Messages
      • No New Messages
      • Hot Topic w/ New Messages
      • Hot Topic w/o New Messages
      • Locked w/ New Messages
      • Locked w/o New Messages
      • Read Message
      • Post New Thread
      • Reply to message
      • Post New Poll
      • Submit Vote
      • Post reward post
      • Delete my own posts
      • Delete my own threads
      • Rate post

      2000-2012 ASPPlayground.NET Forum Version 3.9