Printers by login script

A client of mine has a standard login script - i.e. it just maps a few network drives.  However, they would like their 3 network printers to be connected to the clients when they logon, by the login script.  The login script use net use etc., but then last but one line from the end there is a vbs file name, just printers.vbs.

Printers.vbs is in the same directlory as the scripts.  It runs, but only connects printers for admins.  Why?

printers.vbs =

Dim net
Set net = CreateObject("WScript.Network")
net.AddWindowsPrinterConnection "\\FRESHTERMINAL\Ricoh700", "Ricoh 700"
net.AddWindowsPrinterConnection "\\FRESHTERMINAL\RicohColour", "Ricoh Colour"
net.AddWindowsPrinterConnection "\\FRESHTERMINAL\Ricoh450", "Ricoh 450"

I don't want all the users to be power users - there's around 80 clients.

Thanks,
Lapchien
LapchienDirectorAsked:
Who is Participating?
 
BEEITConnect With a Mentor Commented:
i hope this is enough for that  ... :-)

check the /y parameter

---------------------------------------------------------

a[file] binary file name
/b[name] base printer name
/c[name] unc machine name if the action is on a remote machine
/dl delete local printer
/dn delete network printer connection
/dd delete printer driver
/e display printing preferences
/f[file] either inf file or output file
/ga add per machine printer connections
/ge enum per machine printer connections
/gd delete per machine printer connections
/h[arch] driver architecture one of the following: Alpha | Intel | IA64
/ia install printer driver using inf file
/id  install printer driver using add printer driver wizard
/if install printer using inf file
/ii install printer using add printer wizard with an inf file
/il install printer using add printer wizard
/in add network printer connection
/j[provider] print provider name
/k print test page to specified printer, cannot be combined with command when installing a printer
/l[path] printer driver source path
/m[model]  printer driver model name
/n[name] printer name
/o display printer queue view
/p display printer properties
/q quiet mode, do not display error messages
/r[port] port name
/s display server properties
/Ss Store printer settings into a file *
/Sr Restore printer settings from a file *
   * Store or restore printer settings option flags that must be placed at the end of command:2 PRINTER_INFO_2
7 PRINTER_INFO_7
c Color Profile
d PrinterData
s Security descriptor
g Global DevMode
m Minimal settings
u User DevMode
r Resolve name conflicts
f Force name
p Resolve port
 
 
/u  use the existing printer driver if it's already installed
/t[#] zero based index page to start on
/v[version] driver version one of the following:
Windows 95, 98 and Me | Windows NT 4.0 | Windows NT 4.0 or 2000 | Windows 2000 or XP | Windows XP
/w  prompt the user for a driver if specified driver is not found in the inf
/y set printer as the default
/Xg get printer settings
/Xs set printer settings
/z  do not auto share this printer
/Y do not auto generate a printer name
/K changes the meaning of /v and /h to accept 0,1,2,3, respectively:
Windows IA64 | Windows NT x86 | Windows NT Alpha_AXP | Windows 4.0
/Z share this printer, can only be used with the /if option
/? On-Line Help
@[file] command line argument file
/Mw[message] show a warning message before committing the command
/Mq[message]  show a confirmation message before committing the command
/W[flags] specifies flags and switches for the wizards (for APW & APDW)r make the wizards to be restart-able from the last page
 
/G[flags] specifies global flags and switchesw suppress setup driver warnings UI (super quiet mode)
 


Examples:


Run server properties:
rundll32 printui.dll,PrintUIEntry /s /t1 /n\\machine

Run printer properties:
rundll32 printui.dll,PrintUIEntry /p /n\\machine\printer

Run add printer wizard localy:
rundll32 printui.dll,PrintUIEntry /il

Run add printer wizard on \\machine:
rundll32 printui.dll,PrintUIEntry /il /c\\machine

Run queue view:
rundll32 printui.dll,PrintUIEntry /o /n\\machine\printer

Run inf install:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f %windir%\inf\ntprint.inf /r "lpt1:" /m "AGFA-AccuSet v52.3"

Run add printer wizard using inf:
rundll32 printui.dll,PrintUIEntry /ii /f %windir%\inf\ntprint.inf

Add per machine printer connection:
rundll32 printui.dll,PrintUIEntry /ga /c\\machine /n\\machine\printer /j"LanMan Print Services"

Delete per machine printer connection:
rundll32 printui.dll,PrintUIEntry /gd /c\\machine /n\\machine\printer

Enumerate per machine printer connections:
rundll32 printui.dll,PrintUIEntry /ge /c\\machine

Add printer driver using inf:
rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000 or XP" /f %windir%\inf\ntprint.inf

Add printer driver using inf:
rundll32 printui.dll,PrintUIEntry /ia /K /c\\machine /m "AGFA-AccuSet v52.3" /h "Windows NT x86" /v 3

Remove printer driver:
rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000 or XP"

Remove printer driver:
rundll32 printui.dll,PrintUIEntry /dd /K /c\\machine /m "AGFA-AccuSet v52.3" /h "Windows NT x86" /v 3

Set printer as default:
rundll32 printui.dll,PrintUIEntry /y /n "printer"

Set printer comment:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" comment "My Cool Printer"

Get printer settings:
rundll32 printui.dll,PrintUIEntry /Xg /n "printer"

Get printer settings saving results in a file:
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"

Set printer settings command usage:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?

Store all printer settings into a file:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat"

Restore all printer settings from a file:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat"

Store printer information on level 2 into a file :
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" 2

Restore from a file printer security descriptor:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s

Restore from a file printer global devmode and printer data:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" g d

Restore from a file minimum settings and resolve port name:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" m p

0
 
fhj518Commented:
I would guess that there's a policy prohibiting the execution of VBS to non-admin users. Try to loosen this policy. I think this poses less risks than giving additional rights on the entire system.
0
 
LapchienDirectorAuthor Commented:
Does anyone happen to know which specific policy this is?

0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
MatthewWilliamsCommented:
When logged on as one of these users, can you add the printer manually? The reason I ask is that some printers require special drivers to be downloaded that a non-administrator cannot do. To fix this, an administrator must install the printer on each computer, thus downloading the driver, and then users on each computer can setup the printer because the driver already exisits.
0
 
BEEITCommented:
You can map a printer without a vb script, just use this command:

rundll32 printui.dll,PrintUIEntry /in /n \\SERVER\MYPRINTERNAME

Thats it ;-)
0
 
LapchienDirectorAuthor Commented:
Can this be run just by a normal user (none Admin)?
0
 
BEEITCommented:
Yes, the user must only be a standart domain user. ;-)
0
 
LapchienDirectorAuthor Commented:
Ok - how do I specify the default printer..!?
0
 
BEEITCommented:
Can you accept my answer if this is Ok?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.