AddPrinter

HOME
UP

 

sc create %SRVNAME% binPath= %SVCIT% type= own obj= %USERMAME% password= %PASSWD%

 

How to unattended add a Printer

see also:

AddPrinterPorts

MS-KB

for Network Printers use:
RunDLL32.EXE tcpmonui.dll,LocalAddPortUI

rundll32 printui.dll,PrintUIEntry /?

printer_add.bat @echo off

IF %1m==m goto usage
IF %2m==m goto usage
IF %3m==m goto usage
IF %4m==m goto usage
goto create

:create
REM Create printetr:
rundll32 printui.dll,PrintUIEntry /if /b %3 /f %windir%\inf\ntprint.inf /r %2 /m %1 /Z
REM Share printer:
rundll32 printui.dll,PrintUIEntry /Xs /n %3 sharename %4 attributes +Shared
goto exit

:usage
echo ################################################
echo ### Automates Printer Installation by ZA ####
echo ################################################
echo Usage:
echo printer_add %%1 %%2 %%3 %%4
echo printer_add "PRINTERNAME" "PORT" "BASENAME" "SHARENAME"
echo example:
echo printer_add "HP DeskJet 970Cxi" "lpt1:" "HP_NAME" "HP_Share"
goto exit

:exit

 

rundll32 printui.dll,PrintUIEntry [options] For example to add a HP DeskJet 970Cxi on LPT1: on Windows 2000 use the following:

rundll32 printui.dll,PrintUIEntry /if /b "HP DeskJet 970Cxi" /f %windir%\inf\ntprint.inf /r "lpt1:" /m "HP DeskJet 970Cxi"

Other options are:

/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 | Mips | PowerPC
/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 or 98 | Windows NT 3.1 | Windows NT 3.5 or 3.51 | Windows NT 3.51 | Windows NT 4.0 | Windows NT 4.0 or 2000 | Windows 2000
/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
/Z share this printer, can only be used with the /if option
/? help this message
@[file] command line argument file
 


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" /f %windir%\inf\ntprint.inf
Remove printer driver: 
rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000"
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,PrintUI /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

 

auf Deutsch:

Syntax: rundll32 printui.dll,PrintUIEntry [Optionen] [@Befehlsdatei]
/a[Datei] Name der Binärdatei
/b[Name] Basisdruckername
/c[Name] UNC-Computername, wenn die Aktion auf einem Remotecomputer ausgeführt wird.
/dl Löscht den lokalen Drucker.
/dn Löscht die Netzwerkdruckerverbindung.
/dd Löscht den Druckertreiber.
/e Zeigt Druckeinstellungen an.
/f[Datei] Entweder INF-Datei oder Ausgabedatei.
/ga Fügt Druckerverbindungen pro Maschine hinzu.
/ge Listet Druckerverbindungen pro Maschine auf.
/gd Löscht Druckerverbindungen pro Maschine.
/h[Arch] Treiberarchitektur Alpha | Intel | IA 64
/ia Installiert Druckertreiber mithilfe einer INF-Datei.
/id Installiert Druckertreiber mithilfe des Assistenten.
/if Installiert Drucker mithilfe der angegebenen INF-Datei.
/ii Installiert Drucker mithilfe des Assistenten und einer INF-Datei.
/il Installiert Drucker mithilfe des Assistenten.
/in Fügt eine Netzwerkdruckerverbindung hinzu.
/j[Anbieter] Druckanbietername
/k Druckt eine Testseite auf dem angegebenen Drucker aus. Kann bei der Druckerinstallation nicht verwendet werden.
/l[Pfad] Quellpfad des Druckertreibers
/m[Modell] Modellname des Druckertreibers
/n[Name] Druckername
/o Zeigt die Druckerwarteschlange an.
/p Zeigt Druckereigenschaften an.
/q Stiller Modus. Fehlermeldungen werden nicht angezeigt.
/r[Anschluss] Anschlussname
/s Zeigt Servereigenschaften an.
/Ss Speichert Druckereinstellungen in einer Datei.
/Sr Stellt Druckereinstellungen aus einer Datei wieder her.
Speichert Optionsattribute für Druckereinstellungen oder stellt diese wieder her. Die Attribute müssen am Ende des Befehls stehen:
2 PRINTER_INFO_2
7 PRINTER_INFO_7
c Farbprofil
d Druckerdaten
s Sicherheitsbeschreibung
g Globaler DevMode
m Minimale Einstellungen
u Benutzer-DevMode
r Namenskonflikte lösen
f Namen erzwingen
p Anschluss zuordnen
/u Verwendet den vorhandenen Druckertreiber, sofern bereits einer installiert ist.
/t[#] Nullbasierte Indexseite zum Starten
/v[Version] Eine der folgenden Treiberversionen: Windows 95, 98 und Me | Windows NT 4.0 | Windows NT 4.0 oder 2000 | Windows 2000 oder XP | Windows XP
/w Fordert einen Treiber an, wenn der angegebene Treiber nicht in der INF-Datei gefunden wird.
/y Richtet den Drucker als Standarddrucker ein.
/Xg Liest Druckereinstellungen.
/Xs Richtet Druckereinstellungen ein.
/z Gibt diesen Drucker nicht automatisch frei.
/Z Erstellt den Druckernamen nicht automatisch
/K ändert die Bedeutung von /v und /h um 0,1,2,3 Windows IA64 | Windows NT x86 | Windows NT Alpha_AXP | Windows 4.0 mit einzubeziehen
/Z Gibt diesen Drucker frei. Verwendung nur mit der Option /if möglich.
/? Zeigt diese Hilfemeldung an.
@[Datei] Befehlszeilen-Argumentsdatei.
/Mw[Nachricht]Zeigt vor Ausführung des Befehls eine Warnung an.
/Mq[Nachricht] Zeigt vor Ausführung des Befehls eine Bestätigung an.
/W[flags] beschreibt die Attribute und Parameter für den Assistenten detailliert (für APW & APDW)
r führt dazu, dass der Assistent von der letzten Seite aus neu gestartet werden kann
/G[flags] bestimmt die globalen Attribute und Parameter
w unterdrückt die Benutzeroberfläche Installationstreiber-Warnmeldungen (Modus Sehr Leise)

Beispiele:

Startet die Servereigenschaften:
rundll32 printui.dll,PrintUIEntry /s /t1 /n\\Computer
Startet die Druckereigenschaften:
rundll32 printui.dll,PrintUIEntry /p /n\\Computer\Drucker
Startet den Druckerinstallations-Assistent lokal:
rundll32 printui.dll,PrintUIEntry /il
Startet den Druckerinstallations-Assistent auf \\Computer:
rundll32 printui.dll,PrintUIEntry /il /c\\Computer
Startet die Warteschlangenansicht:
rundll32 printui.dll,PrintUIEntry /o /n\\Computer\Drucker
Startet eine INF-Installation:
rundll32 printui.dll,PrintUIEntry /if /b "Testdrucker" /f %windir%\inf\ntprint.inf /r "lpt1:" /m "AGFA-AccuSet v52.3"
Startet den Druckerinstallations-Assistent mithilfe einer INF-Datei:
rundll32 printui.dll,PrintUIEntry /ii /f %windir%\inf\ntprint.inf
Fügt eine Druckerverbindung pro Computer hinzu:
rundll32 printui.dll,PrintUIEntry /ga /c\\Computer /n\\Computer\Drucker /j"LanMan-Druckdienste"
Löscht die Druckerverbindung pro Maschine:
rundll32 printui.dll,PrintUIEntry /gd /c\\Computer /n\\Computer\Drucker
Zählt die Druckerverbindungen pro Maschine auf:
rundll32 printui.dll,PrintUIEntry /ge /c\\Computer
Fügt einen Druckertreiber mithilfe einer INF-Datei hinzu:
rundll32 printui.dll,PrintUIEntry /ia /c\\Computer /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000 oder XP" /f %windir%\inf\ntprint.inf
Fügt einen Druckertreiber mithilfe einer INF-Datei hinzu:
rundll32 printui.dll,PrintUIEntry /ia /K /c\\Computer /m "AGFA-AccuSet v52.3" /h "WindowsNT x86" /v 3
Entfernt einen Druckertreiber:
rundll32 printui.dll,PrintUIEntry /dd /c\Computer /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000 oder XP"
Entfernt einen Druckertreiber:
rundll32 printui.dll,PrintUIEntry /dd /K /c\Computer /m "AGFA-AccuSet v52.3" /h "Windows NT x86" /v 3
Richtet den Drucker als Standarddrucker ein:
rundll32 printui.dll,PrintUIEntry /y /n "Drucker"
Richtet einen Kommentar zum Drucker ein:
rundll32 printui.dll,PrintUIEntry /Xs /n "Drucker" Comment "Mein cooler Drucker"
Liest die Druckereinstellungen:
rundll32 printui.dll,PrintUIEntry /Xg /n "Drucker"
Schreibt die Druckereinstellungsergebnisse in eine Datei:
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n Drucker"
Befehlssyntax für das Einrichten der Druckereinstellungen:
rundll32 printui.dll,PrintUIEntry /Xs /n "Drucker"
Speichert alle Druckereinstellungen in einer Datei:
rundll32 printui.dll,PrintUIEntry /Ss /n "Drucker" /a "datei.dat"
Stellt alle Druckereinstellungen aus einer Datei wieder her:
rundll32 printui.dll,PrintUIEntry /Sr /n "Drucker" /a "datei.dat"
Speichert Level-2-Druckerinformationen in einer Datei:
rundll32 printui.dll,PrintUIEntry /Ss /n "Drucker" /a "datei.dat"
Stellt aus einer Datei die Druckersicherheitsbeschreibung wieder her:
rundll32 printui.dll,PrintUIEntry /Sr /n "Drucker" /a "datei.dat"
Stellt aus einer Datei die globalen Devmode- und Druckerdaten wieder her:
rundll32 printui.dll,PrintUIEntry /Sr /n "Drucker" /a "datei.dat"
Stellt aus einer Datei die minimalen Einstellungen wieder her und löst den Anschlussnamen auf:
rundll32 printui.dll,PrintUIEntry /Sr /n "Drucker" /a "datei.dat" m p


rundll32 printui.dll,PrintUIEntry /Xs /n printer <key> [-|+]<value> <key> [-|+]<value> etc.
key: PrinterName value: <string>
key: ShareName value: <string>
key: PortName value: <string>
key: DriverName value: <string>
key: Comment value: <string>
key: Location value: <string>
key: SepFile value: <string>
key: PrintProcessor value: <string>
key: Datatype value: <string>
key: Parameters value: <string>
key: Attributes value: <Queued|Direct|Default|Shared|Hidden|Network|Local|EnableDevq|KeepPrintedJobs|DoCompleteFirst|WorkOffline|EnableBidi|RawOnly|Published>
key: Priority value: <integer>
key: DefaultPriority value: <integer>
key: StartTime value: <integer>
key: UntilTime value: <integer>
key: Status value: <Pause|Resume|Purge>
Examples:
Pause printer:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" status pause
Set printer print direct to printer:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" attributes +direct
Set printer to spool:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" attributes -direct
Set printer to hold mismatched documents and keep documents after they have printed:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" attributes +EnableDevq attributes +KeepPrintedJobs
Share printer:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" sharename "Share" attributes +Shared
Stop sharing printer:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" attributes -Shared
Set queue priority to 50:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" priority 50
Rename printer to Printer1:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" printername "Printer1"

Add PrinterPorts

Declare Function AddMonitor Lib "winspool.drv" Alias "AddMonitorA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte )
 As
Long

Declare Function AddMonitorA Lib "winspool.drv" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte )
 As
Long

Declare Function AddPort Lib "winspool.drv" Alias "AddPortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pMonitorName As String )
As Long

Declare Function AddPortA Lib "winspool.drv"  (ByVal pName As String, ByVal hwnd As Long, ByVal pMonitorName As String )
As
Long

(c) by Wolfgang Zerzawy 07-Mai-08 12:11   

XING