Hello all, I have written a VB Script that maps network printers on a print server to computers depending on their Organizational Unit in Active Directory and sets the appropriate mapped printer as default. This works great, however the problem comes when a user has a local printer attached. It always sets the network printer default. Is there any way to add code to my script that will detect a local printer and set that one default but also still map the network printers so they can be chosen in case of local printer problems, etc.?
The script is below. Thanks in advance for any help you can give me!
Dim objNetwork, ADSysInfo, ComputerName
Set objNetwork = CreateObject("Wscript.Network")
Set ADSysInfo = CreateObject("ADSystemInfo")
Set ComputerName = GetObject("LDAP://" & ADSysInfo.ComputerName)
If Instr(ADSysInfo.ComputerName, "OU=IT Computers") Then
objNetwork.AddWindowsPrinterConnection "\\serverdc\it"
objNetwork.SetDefaultPrinter("\\serverdc\it")
objNetwork.AddWindowsPrinterConnection "\\serverdc\server"
ElseIf Instr(ADSysInfo.ComputerName, "OU=News Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\draft")
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset1"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset2"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset3"
objNetwork.AddWindowsPrinterConnection "\\serverdc\desk"
objNetwork.AddWindowsPrinterConnection "\\serverdc\user1"
If Instr(ADSysInfo.ComputerName, "OU=Sports") Then
objNetwork.SetDefaultPrinter("\\serverdc\sports")
End If
ElseIf Instr(ADSysInfo.ComputerName, "OU=Sales Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\sales")
objNetwork.AddWindowsPrinterConnection "\\serverdc\xerox"
ElseIf Instr(ADSysInfo.ComputerName, "OU=Business Office Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\business")
objNetwork.AddWindowsPrinterConnection "\\serverdc\check"
objNetwork.AddWindowsPrinterConnection "\\serverdc\xerox"
objNetwork.AddWindowsPrinterConnection "\\serverdc\business color laser"
ElseIf Instr(ADSysInfo.ComputerName, "OU=Promotions Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\promo")
objNetwork.AddWindowsPrinterConnection "\\serverdc\draft"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset1"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset2"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset3"
End If
Set objNetwork = Nothing
Set ADSysInfo = Nothing
Set ComputerName = Nothing
Wscript.Quit
The script is below. Thanks in advance for any help you can give me!
Dim objNetwork, ADSysInfo, ComputerName
Set objNetwork = CreateObject("Wscript.Network")
Set ADSysInfo = CreateObject("ADSystemInfo")
Set ComputerName = GetObject("LDAP://" & ADSysInfo.ComputerName)
If Instr(ADSysInfo.ComputerName, "OU=IT Computers") Then
objNetwork.AddWindowsPrinterConnection "\\serverdc\it"
objNetwork.SetDefaultPrinter("\\serverdc\it")
objNetwork.AddWindowsPrinterConnection "\\serverdc\server"
ElseIf Instr(ADSysInfo.ComputerName, "OU=News Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\draft")
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset1"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset2"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset3"
objNetwork.AddWindowsPrinterConnection "\\serverdc\desk"
objNetwork.AddWindowsPrinterConnection "\\serverdc\user1"
If Instr(ADSysInfo.ComputerName, "OU=Sports") Then
objNetwork.SetDefaultPrinter("\\serverdc\sports")
End If
ElseIf Instr(ADSysInfo.ComputerName, "OU=Sales Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\sales")
objNetwork.AddWindowsPrinterConnection "\\serverdc\xerox"
ElseIf Instr(ADSysInfo.ComputerName, "OU=Business Office Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\business")
objNetwork.AddWindowsPrinterConnection "\\serverdc\check"
objNetwork.AddWindowsPrinterConnection "\\serverdc\xerox"
objNetwork.AddWindowsPrinterConnection "\\serverdc\business color laser"
ElseIf Instr(ADSysInfo.ComputerName, "OU=Promotions Computers") Then
objNetwork.SetDefaultPrinter("\\serverdc\promo")
objNetwork.AddWindowsPrinterConnection "\\serverdc\draft"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset1"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset2"
objNetwork.AddWindowsPrinterConnection "\\serverdc\qset3"
End If
Set objNetwork = Nothing
Set ADSysInfo = Nothing
Set ComputerName = Nothing
Wscript.Quit