Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

GPO to map network printer to specific computer

Posted on 2006-07-07
10
Medium Priority
?
2,474 Views
Last Modified: 2012-05-05
Hi all script gurus :)

Scenario:

Windows Server 2003 Std
Win xp e 2000 workstations
Xerox workcenter M24 (network printer)

There is an aplication in the 2k workstation that can only print to lpt printers

I was thinking that a script could be used to map the network printer to that 2k lpt1 computer port, regardless of what user logged in, this would allow users to print trough that app, as well as any other app (office,browsers).

Any help appreciated!

Bruno
0
Comment
Question by:bmquintas
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 2
  • +1
10 Comments
 
LVL 2

Expert Comment

by:lkingpinl
ID: 17060226
Create a .bat file containing a DOS command like this:

rundll32 printui.dll,PrintUIEntry /if /b "testprt" /r \\HOR88\QHOR88 /f N:\prt_drv\hp8000\nt2kpcl5\hp8000p5.inf /m "HP LaserJet 8000 Series PCL 5e"

Modify this command to match your printer settings.  Then under Group Policy apply it to the Logon scripts under Computer Confgiuration.  You can set these on a machine basis or across the domain.  

Here is a definition of all the flags available:

/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
   /? help this message
   @[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 switches
     w     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
 
LVL 51

Assisted Solution

by:Netman66
Netman66 earned 1000 total points
ID: 17060824
Wow, that's not really necessary.

Copy the following into a .cmd file and save it to System32 as "dosprint.cmd":

net use LPT1 \\%COMPUTERNAME%\Shared printer name

Install the printer on the machine using a Standard TCP/IP port.
Now, share out the printer on the local PC (do not List in the Directory) using the same sharename on every computer and make sure it's 8 characters or less.  Example:  DOSPRINT1

Add the following registry value to each PC you want this to work on using a .REG file containing the following:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"DOSPRINT"=%SYSTEMROOT\System32\dosprint.cmd

This can be pushed out using a logon script in a GPO using filtering to target only a specific group that you choose.

Hope this helps.
NM

0
 
LVL 51

Expert Comment

by:Netman66
ID: 17060848
Sorry, typo above:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"DOSPRINT"=%SYSTEMROOT%\System32\dosprint.cmd

...is the correct content for the .REG file.
0
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

 
LVL 6

Author Comment

by:bmquintas
ID: 17061317
Ok, so i'm gonna set a small lab, test this stuff and get back to you guys.

Tks
0
 
LVL 19

Expert Comment

by:BLipman
ID: 17062268
Both methods work just fine but I would suggest you do not use .bat files in lieu of .cmd files; you really don't want the risk of running a 16 bit command line.  
0
 
LVL 6

Author Comment

by:bmquintas
ID: 17062477
Sorry guys, forgot to mention something, the xerox printer is shared through the W2k3 server, in what way will this affect your tips?
0
 
LVL 51

Accepted Solution

by:
Netman66 earned 1000 total points
ID: 17063398
That's even better.

Simply run the .cmd file as prescribed, but change the content of it slightly to:

net use LPT1: \\servername\printer share

You just need to make sure the share on the server is 8 characters or less.

0
 
LVL 2

Expert Comment

by:lkingpinl
ID: 17099252
Create a .vbs script like this:

' Map local printers and set default
Dim net
Set net = CreateObject("WScript.Network")
net.AddWindowsPrinterConnection "\\SERVER\MHCC_THALKEN", "Dr. Thalken's Office"
net.AddWindowsPrinterConnection "\\SERVER\MHCC_BUSINESS", "Business Office Printer"
net.SetDefaultPrinter "\\SERVER\MHCC_THALKEN"
0
 
LVL 6

Author Comment

by:bmquintas
ID: 17490681
Sorry for taking so long, tks for helping.
0

Featured Post

Get your Disaster Recovery as a Service basics

Disaster Recovery as a Service is one go-to solution that revolutionizes DR planning. Implementing DRaaS could be an efficient process, easily accessible to non-DR experts. Learn about monitoring, testing, executing failovers and failbacks to ensure a "healthy" DR environment.

Question has a verified solution.

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

by Batuhan Cetin In this article I will be guiding through the process of removing a failed DC metadata from Active Directory (hereafter, AD) using the ntdsutil tool in a Windows Server 2003 environment. These steps are not necessary in a Win…
Setting up a Microsoft WSUS update system is free relatively speaking if you have hard disk space and processor capacity.   However, WSUS can be a blessing and a curse. For example, there is nothing worse than approving updates and they just have…
Video by: ITPro.TV
In this episode Don builds upon the troubleshooting techniques by demonstrating how to properly monitor a vSphere deployment to detect problems before they occur. He begins the show using tools found within the vSphere suite as ends the show demonst…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…

688 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