#187762 - 2008-05-20 09:59 PM
Assigning printers in Presentation Server 4.5
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
I've got a very basic KiXtart script called from the login1.bat file for all users. The basic parameters are if member of group "A", then assign these printers with ADDPRINTERCONNECTION (\\server\printersharename). I've tried with " inside the paranthesis and without, no luck either way. As administrator and running debug, I can step through the script, yet no printers are added. I'm stumped. PS - I'm hoping I can get this to work, instead of logging in as each user and assigning the printers manually.
Edited by RB_Trout (2008-05-20 10:02 PM)
|
Top
|
|
|
|
#187767 - 2008-05-20 11:16 PM
Re: Assigning printers in Presentation Server 4.5
[Re: RB_Trout]
|
tjcarst
Hey THIS is FUN
Registered: 2003-09-08
Posts: 243
Loc: USA
|
if ingroup ('group name')
$rc=addprinterconnection('\\server\sharename')
endif
You might want to use primapstate.udf to first check to see if it is already mapped. You can also elect to set whether it is a default printer or an additional printer.
|
Top
|
|
|
|
#187772 - 2008-05-21 12:29 AM
Re: Assigning printers in Presentation Server 4.5
[Re: tjcarst]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
No luck on that, either.
|
Top
|
|
|
|
#187774 - 2008-05-21 04:53 AM
Re: Assigning printers in Presentation Server 4.5
[Re: RB_Trout]
|
tjcarst
Hey THIS is FUN
Registered: 2003-09-08
Posts: 243
Loc: USA
|
Are you using the \\server\share and not \\server\local printer name?
Use the path you would use when adding the printer from Start, Run \\server\share. Post the code you are using here, maybe there's a syntax error.
Also, are the groups user groups (ingroup) or comptuer groups (computeringroup). I map printers based upon computers not users and there is a difference.
|
Top
|
|
|
|
#187783 - 2008-05-21 10:02 AM
Re: Assigning printers in Presentation Server 4.5
[Re: RB_Trout]
|
Richard H.
Administrator
Registered: 2000-01-24
Posts: 4946
Loc: Leatherhead, Surrey, UK
|
The most important bit if information that you need is the reason *why* the printer is not being added.
You can find this information in two places. Firstly, if the printer mapping is failing then there will almost certainly be entries in the event logs - check both System and Application logs.
Secondly, the command itself will tell you why the mapping failed. It's not always the complete answer, but it will often give you a clue.
Try something like this:
If InGroup('group name')
If AddPrinterConnection('\\server\sharename')
"ERROR: Failed to add printer, reason: ["+@ERROR+"] @SERROR"+@CRLF
Else
"Printer added successfully"+@CRLF
EndIf
EndIf
This will tell you a couple of things.
- If the printer is added OK you will get a message confirming it.
- If the printer add fails you will get a message telling you what the error code was. It might be a bit obtuse, for example "[5] Access denied" can be caused by a lot of different problems, but at least it will give you a clue where to look next.
- It is possible that you will get no message - in this case you know that the problem is in the InGroup()
Don't forget to check the event logs though - the messages in there are usually more informative.
|
Top
|
|
|
|
#187801 - 2008-05-21 04:37 PM
Re: Assigning printers in Presentation Server 4.5
[Re: Richard H.]
|
tjcarst
Hey THIS is FUN
Registered: 2003-09-08
Posts: 243
Loc: USA
|
Maybe it is permissions on the printer? Can you add the printer logged in as a regular user? Does Start, Run \\server\printershare work? If so, Richard is correct in that it may be your ingroup? If not, permissions?
|
Top
|
|
|
|
#187805 - 2008-05-21 08:09 PM
Re: Assigning printers in Presentation Server 4.5
[Re: tjcarst]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
if ingroup('ITtest')
if ADDPRINTERCONNECTION ('\\PRINT01\HB_LSC_4250')
"ERROR: Failed to add printer, reason: ["+@ERROR+"] @SERROR"+@CRLF
Else
"Printer added successfully"+@CRLF
EndIf
ADDPRINTERCONNECTION ('\\PRINT01\HB_LSC_HP')
ADDPRINTERCONNECTION ('\\PRINT01\MIS_1022')
ADDPRINTERCONNECTION (\\PRINT01\OR_LSC_HP)
setdefaultprinter (\\PRINT01\MIS_1022)
?" ITTest'S Printers assigned"
endif
Sample of the code. I logged in as my test user and added the above listed printer without a hitch. Logged out and back in, the printer was still there. Not a permissions issue. The above script showed no errors. The event log on the test server showed only 1 error about not creating an client printer due to drivers.
Edited by Allen (2008-05-21 10:19 PM) Edit Reason: added code tags
|
Top
|
|
|
|
#187808 - 2008-05-21 10:13 PM
Re: Assigning printers in Presentation Server 4.5
[Re: RB_Trout]
|
tjcarst
Hey THIS is FUN
Registered: 2003-09-08
Posts: 243
Loc: USA
|
There should be a ' around the \\sserver\share name inside the (). I don't usually have a space before the ( but not sure that matters.
To see the error on the screen, precede the text with ?
You're missing an endif. You have two If and will need matching endif. You should be getting a beep and error when running your code.
When posting code, put the word CODE surrounded by square brackets before it and /CODE with square brackets after it:
if ingroup('ITtest')
if ADDPRINTERCONNECTION('\\PRINT01\HB_LSC_4250')
? "ERROR: Failed to add printer, reason: ["+@ERROR+"] @SERROR"+@CRLF
Else
? "Printer added successfully"+@CRLF
Endif
EndIf
ADDPRINTERCONNECTION('\\PRINT01\HB_LSC_HP')
ADDPRINTERCONNECTION('\\PRINT01\MIS_1022')
ADDPRINTERCONNECTION('\\PRINT01\OR_LSC_HP
setdefaultprinter('\\PRINT01\MIS_1022')
Edited by tjcarst (2008-05-21 10:20 PM)
|
Top
|
|
|
|
#187809 - 2008-05-21 10:31 PM
Re: Assigning printers in Presentation Server 4.5
[Re: tjcarst]
|
tjcarst
Hey THIS is FUN
Registered: 2003-09-08
Posts: 243
Loc: USA
|
I swapped your group, print server, and share names for my own and can run the code I posted and successfully map printers.
So, your server has the drivers and you can map to the \\server\share when you are logged into the same workstation when logged in as the user, using Start, Run, but when you run the script from the command line as the user, you get an error about drivers?
|
Top
|
|
|
|
#187810 - 2008-05-21 10:32 PM
Re: Assigning printers in Presentation Server 4.5
[Re: tjcarst]
|
tjcarst
Hey THIS is FUN
Registered: 2003-09-08
Posts: 243
Loc: USA
|
Remove the space after addprinterconnection? Shouldn't matter. Hmmm.
|
Top
|
|
|
|
#187813 - 2008-05-21 11:01 PM
Re: Assigning printers in Presentation Server 4.5
[Re: tjcarst]
|
Glenn Barnas
KiX Supporter
Registered: 2003-01-28
Posts: 4396
Loc: New Jersey
|
The space won't matter..
A somewhat unrelated comment:
? "ERROR: Failed to add printer, reason: ["+@ERROR+"] @SERROR"+@CRLF
while this kind of logging is good to do, this syntax tends to be complicated/crowded. This often leads to other problems...
If you are not defining NoMacrosInStrings, and this message is here simply to troubleshoot, you can greatly simplify the format to
"ERROR: Failed to add printer, reason: [@ERROR] @SERROR" ?
If this is a permanent logging message and you want to follow good practice, you can still simplify it a bit. The "?" is not a print command, it's a shortcut for @CRLF, so you've effectively got a newline command at the beginning and end of that output line. Probably not what you want, and certainly not consistent. The "?", like @CRLF (or pressing ENTER, for that matter) usually comes at the end of a line, not the beginning. The "+" is not required for simple output - replacing them with spaces makes things a bit less jumbled. "+" concatenates a string, which would be appropriate for something like $X = "this " + "and that". Note, too, the rearranged quotes. This was a typo in Richard's original post.
"ERROR: Failed to add printer, reason: [" @ERROR "] " @SERROR ?
None of this will directly fix your print map issue, but not paying attention to the little things will often lead to extra or misplaced quotes, which can have a profound effect on the code that follows. Having clean, well formatted code, and following simple "best practice" rules will go a long way helping to troubleshoot your scripts.
In fact, this kind of output is so important that I have a suite of UDFs to handle it. You can get the MSG() UDF from my web site, which has the following UDFs (and more): MSG(text,flag) - outputs TEXT, suppress CRLF if flag is true Abend(text,error) - outputs TEXT, exits script with ERROR Dbg(text) - outputs TEXT only if Global var DEBUG is true
I'd wager that most seasoned coders have a similar collection.
Glenn
PS - PostPrep (or PPCL, from the top of the Advanced forum) to color-code your script, and Sanity to check basic syntax will go a long way in troubleshooting, too. The Sanity UDF posted here is missing the last 5-6 lines - grab the complete version from my web site.
_________________________
Actually I am a Rocket Scientist!
|
Top
|
|
|
|
#187814 - 2008-05-21 11:40 PM
Re: Assigning printers in Presentation Server 4.5
[Re: Glenn Barnas]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
I guess I'm missing something. I tried these lines of script. Do I need these functions somewhere on my system? If so, how do I download?
|
Top
|
|
|
|
#187821 - 2008-05-22 11:56 PM
Re: Assigning printers in Presentation Server 4.5
[Re: Glenn Barnas]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
I've discovered that it has to do with my ingroup for whatever reason. I removed the if ingroup and made the above code it's own .kix file and called it directly from the DOS prompt. I got the printers assigned, but it returned error code 2 on setting the default printer. Now I need to see what's up with my ingroup statement and then figure out the default printer.
|
Top
|
|
|
|
#187823 - 2008-05-23 12:03 AM
Re: Assigning printers in Presentation Server 4.5
[Re: Glenn Barnas]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
It's one of the ones just assigned, same spelling, etc.
|
Top
|
|
|
|
#187824 - 2008-05-23 12:37 AM
Re: Assigning printers in Presentation Server 4.5
[Re: RB_Trout]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
I created that printer on another server and shared it. Then told .kix to add it and set it as default, it worked no problems. I don't understand why, but I can live with it. The only thing left is the ingroup statement. Inside the parenthesis, I've tried no quotes, single quotes & double quotes, no luck at all.
|
Top
|
|
|
|
#187825 - 2008-05-23 01:07 AM
Re: Assigning printers in Presentation Server 4.5
[Re: RB_Trout]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
if ingroup("DMLSC")
ADDPRINTERCONNECTION (\\print01\DM_LSC_4250)
ADDPRINTERCONNECTION (\\print01\DM_LSC_HP)
SETDEFAULTPRINTER (\\print01\DM_LSC_4250)
?" DM LSC Printers assigned"
endif
Doesn't work no matter how I've tried it. If I remove the if ingroup/endif, it works perfectly.
Edited by RB_Trout (2008-05-23 01:08 AM)
|
Top
|
|
|
|
#187827 - 2008-05-23 01:46 AM
Re: Assigning printers in Presentation Server 4.5
[Re: Les]
|
RB_Trout
Fresh Scripter
Registered: 2008-05-20
Posts: 13
Loc: USA
|
I have no idea what that is.
|
Top
|
|
|
|
Moderator: Jochen, Allen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Arend_, Mart
|
0 registered
and 239 anonymous users online.
|
|
|