Solved

script to select default printer

Posted on 2007-03-27
15
215 Views
Last Modified: 2010-07-27
Hi all,

background

2003 server

i am trying to get a script to offer the user a choice of which printer to have as their default depending on which office they happen to be. i think i am almost there but it does not work.

Option Explicit
Dim objNetwork, sPrintPath, sLocate
set objNetwork = CreateObject("WScript.Network")
sLocate = InputBox("Which office are you in? Type 'B', 'M', 'N', 'R', 'T'.")
Select Case sLocate
      Case "B"
            sPrintPath = "\\jjfox1\BombayChicken"
      Case "M"
            sPrintPath = "\\jjfox1\MeatSamosa"
      Case "N"
            sPrintPath = "\\Newcastles\Navratan"
      Case "R"
            sPrintPath = "\\jjfox1\Raita"
      Case "T"
            sPrintPath = "\\jjfox1\tandoorichicken"
objNetwork.SetDefaultPrinter sPrintPath
WScript.quit
End Select

any help greatly appreciated
thanks
gareth
0
Comment
Question by:gareth629
  • 7
  • 7
15 Comments
 
LVL 67

Expert Comment

by:sirbounty
ID: 18800241
What's happening with the code now?
I would modify it to this:


Option Explicit
Dim objNetwork, sPrintPath, sLocate
set objNetwork = CreateObject("WScript.Network")
Main()
wscript.quit

Sub Main

sLocate = InputBox("Which office are you in? Type 'B', 'M', 'N', 'R', 'T'.")
If sLocate <> "B" and sLocate <> "M" and sLocate <> "N" and sLocate <> "R" and sLocate <> "T" Then
  wscript.echo "You must select a valid choice!"
  Main
End If
Select Case sLocate
      Case "B"
            sPrintPath = "\\jjfox1\BombayChicken"
      Case "M"
            sPrintPath = "\\jjfox1\MeatSamosa"
      Case "N"
            sPrintPath = "\\Newcastles\Navratan"
      Case "R"
            sPrintPath = "\\jjfox1\Raita"
      Case "T"
            sPrintPath = "\\jjfox1\tandoorichicken"
objNetwork.SetDefaultPrinter sPrintPath
WScript.quit
End Select
End Sub
0
 
LVL 15

Expert Comment

by:MarkMichael
ID: 18803042
Can you not add the default printer automatically depending on which %logonserver% they are authenticating to?
0
 

Author Comment

by:gareth629
ID: 18806467
hi

SirBounty

currently the script does bring up the question and allows the entry of a choice however it does not actually change the default.
thanks, i will try the change and see what happens.

Mark

sorry shoul have been clearer on the question. i have a complete citrix enironment and ony thin terms on the desktop.
0
 

Author Comment

by:gareth629
ID: 18814932
Hi SirBounty

i have copied and pasted your script and tried it.

for some reason only 'T' works.

security is set correctly on all the printers as i do have access to each printer etc

any ideas?
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 18815446
above the select case, place this: (perhaps the response needs to be stripped of any white space)

msgbox "|" & sLocate & "|"
Select Case sLocate
      Case "B"
            sPrintPath = "\\jjfox1\BombayChicken"
      Case "M"
            sPrintPath = "\\jjfox1\MeatSamosa"
      Case "N"
            sPrintPath = "\\Newcastles\Navratan"
      Case "R"
            sPrintPath = "\\jjfox1\Raita"
      Case "T"
            sPrintPath = "\\jjfox1\tandoorichicken"
objNetwork.SetDefaultPrinter sPrintPath
0
 

Author Comment

by:gareth629
ID: 18815826
hi sirbounty,

i have played about with the order of the case " " positions.

it is only ever the last in the list (currently Case"T") which works. if i move B to the last in the order B will work

thanks
gareth
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 18815857
Try my last post please, and let me know what it returns...you might also adjust the input line to read:

sLocate = Trim(InputBox("Which office are you in? Type 'B', 'M', 'N', 'R', 'T'."))
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 

Author Comment

by:gareth629
ID: 18815970
sorry

i did try your last post but still not working correctly. working as per my last post.

also

tried the new input line and still the same.

sorry about this mate.


0
 
LVL 67

Expert Comment

by:sirbounty
ID: 18815993
Right - but I need to know what was in that msgbox when you ran it?
0
 

Author Comment

by:gareth629
ID: 18816042
when msgbox "|" & sLocate & "|" was in the script the initial question box was no different but after selecting and pressing 'ok' a new box popped up with INI for example on it.

when using the new input there was no change from  original.
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 18816070
Use this sub main...

Sub Main

sLocate = ucase(trim(InputBox("Which office are you in? Type 'B', 'M', 'N', 'R', 'T'.")))
If sLocate <> "B" and sLocate <> "M" and sLocate <> "N" and sLocate <> "R" and sLocate <> "T" Then
  wscript.echo "You must select a valid choice!"
  Main
End If
Select Case sLocate
      Case "B"
            sPrintPath = "\\jjfox1\BombayChicken"
      Case "M"
            sPrintPath = "\\jjfox1\MeatSamosa"
      Case "N"
            sPrintPath = "\\Newcastles\Navratan"
      Case "R"
            sPrintPath = "\\jjfox1\Raita"
      Case "T"
            sPrintPath = "\\jjfox1\tandoorichicken"
objNetwork.SetDefaultPrinter sPrintPath
WScript.quit
End Select
End Sub
0
 

Author Comment

by:gareth629
ID: 18816109
no change. can only select the last in the list
0
 
LVL 67

Accepted Solution

by:
sirbounty earned 500 total points
ID: 18816161
Ack! I see the problem... sorry about that.
Use 'this' sub...

Sub Main
sLocate = ucase(trim(InputBox("Which office are you in? Type 'B', 'M', 'N', 'R', 'T'.")))
If sLocate <> "B" and sLocate <> "M" and sLocate <> "N" and sLocate <> "R" and sLocate <> "T" Then
  wscript.echo "You must select a valid choice!"
  Main
End If
Select Case sLocate
      Case "B"
            sPrintPath = "\\jjfox1\BombayChicken"
      Case "M"
            sPrintPath = "\\jjfox1\MeatSamosa"
      Case "N"
            sPrintPath = "\\Newcastles\Navratan"
      Case "R"
            sPrintPath = "\\jjfox1\Raita"
      Case "T"
            sPrintPath = "\\jjfox1\tandoorichicken"
  End Select
objNetwork.SetDefaultPrinter sPrintPath
wscript.quit
End Sub
0
 

Author Comment

by:gareth629
ID: 18842047
Hi SirBounty,

that's the badger!!!!

thanks very mcuh for your help. working like a dream now
gareth
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 18842548
:^)
Happy to help!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I've often see, or have been asked, the question about the difference between the Exchange 2010 SP1 version, available as part of Small Business Server (SBS) 2011, and the “normal” Exchange 2010 SP1 Standard. The answer to the question is relativ…
Batch, VBS, and scripts in general are incredibly useful for repetitive tasks.  Some tasks can take a while to complete and it can be annoying to check back only to discover that your script finished 5 minutes ago.  Some scripts may complete nearly …
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now