Solved

script to select default printer

Posted on 2007-03-27
15
216 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
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 

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
 

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

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

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

Because virtualization becomes more and more common, and, with Microsoft Hyper-V included in Windows Server at no additional costs, and, most server hardware nowadays is more than capable of running a physical Small Business Server (SBS) 2008 or 201…
I work for a company that primarily works with small businesses as their outsourced IT vendor. As such the majority of these customers utilize some version of Small Business Server. Due to the economics of running a small business, many of these cus…
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
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 …

773 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