script to select default printer

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
Gareth McKeeCEO/OwnerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sirbountyCommented:
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
MarkMichaelCommented:
Can you not add the default printer automatically depending on which %logonserver% they are authenticating to?
0
Gareth McKeeCEO/OwnerAuthor Commented:
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
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Gareth McKeeCEO/OwnerAuthor Commented:
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
sirbountyCommented:
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
Gareth McKeeCEO/OwnerAuthor Commented:
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
sirbountyCommented:
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
Gareth McKeeCEO/OwnerAuthor Commented:
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
sirbountyCommented:
Right - but I need to know what was in that msgbox when you ran it?
0
Gareth McKeeCEO/OwnerAuthor Commented:
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
sirbountyCommented:
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
Gareth McKeeCEO/OwnerAuthor Commented:
no change. can only select the last in the list
0
sirbountyCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Gareth McKeeCEO/OwnerAuthor Commented:
Hi SirBounty,

that's the badger!!!!

thanks very mcuh for your help. working like a dream now
gareth
0
sirbountyCommented:
:^)
Happy to help!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Scripting Languages

From novice to tech pro — start learning today.