Anzeige

Am Puls von Microsoft

Anzeige

Drucker per Visual Basic Script in Windows 10 einbinden

edv.kleini

Win11 Registry-Fummler
Hallo

Ich bräuchte mal ´nen Expertenrat für ein Visual-Basic Script.

Ich möchte ja bei der WIN10 Installation, wie einigen Usern im hier Forum bekannt ist,

gewisse Installationsprozesse automatisieren.

Also... ich habe 2 Drucker.

Der erste Drucker ist ein HP Laserjet 2014, der über einen D-Link Printserver

mit der IP-Adresse 192.168.xxx.xxx im Netzwerk eingebunden ist.

Name des Printservers im Netzwerk ist PS1.

Der zweite Drucker ist ein HP Laserjet Pro 200 Color M251n, der

mit der IP-Adresse 192.168.xxx.xxx im Netzwerk eingebunden ist.

(Die IP-Adresse ist natürlich eine Nummer höher, als die beim HP LJ 2014...klar).

Name des Printservers (Druckers) im Netzwerk ist PS2.

Das läßt sich über das Webinterface des Druckers bzw. Printservers ja alles einstellen.

Unter Windows

- manuelle Drucker Installation - Neuen Port einrichten - Standard TCP/IP Port auswählen

geschieht folgendes:

Jeder Drucker bekommt ein Standard TCP/IP Port mit IP-Adresse in der 1. Zeile zugewiesen.

Jeder Drucker bekommt den Portnamen PS1 bzw. PS2 in der 2. Zeile zugewiesen.

Die beiden Drucker sollen nicht freigegeben werden (was ja als NW-Drucker wiedersinnig wäre).

Standard-Drucker soll der HP LJ 2014 werden!

Die händische Installation der Drucker funktioniert natürlich, aber kostet Zeit.

Aber um eine händische Installation geht es hier nicht!

Des weiteren hat Windows 10 gegenüber Windows 7 die beiden Druckertreiber ja "im Bauch".

Sprich: Diese sind im BS implementiert.

Ich weiß, daß es eine Möglichkeit gibt das ganze Installationsprocedere incl.

Treiberauswahl usw. in ein Visual Basic Script zu packen.

VB-Script doppelt anklicken. Drucker installiert. Fertig ist die Laube.

Das ist es, was ich erreichen will...

So...

Und genau da brauche ich mal Eure Hilfe
 
Anzeige
Da Du in der EDV arbeitest geht es hier um Business nehme ich an... ;)
Mehrere Rechner auf Windows 10 und überall die gleichen Drucker draufhauen...

Referenz-Rechner erstellen und mit der MMC Konsole arbeiten...

Screenshot2016_06_28_17_45_50.jpg

Wie gesichert und wieder eingespielt wird findest Du bestimmt über Google heraus... :smokin
 
Danke prinblac

Das mit in der EDV arbeiten und ums Business gehen stimmt halt leider nur noch teilweise...
ok

Aber ich werde mal was googlen und suchen

Trotzdem danke für den TIPP

Mal sehen... vielleicht findet sich ja auch was über vb-Scripts über dieses Drucker-Inst-Thema

Zu der Drucker-Verwaltung hatte ich mir schon viel früher eine Verknüpfung erstellt.

Da muß ich mich aber auch noch ein bisschen schlau machen, wie man die D-V richtig einsetzt!

Dies hier ist momentan nur für mich privat...

Was nicht heissen soll, daß man das nicht auch anderswo verwenden kann... :ROFLMAO:

Du weißt ja:

Wissen ist Macht und nur der Dumme lacht! Und nicht(s) Wissen macht auch nichts...
 
Zuletzt bearbeitet:
Also eins habe ich bisher raus gefunden

es gibt einen DOS-Befehl

rundll32 printui.dll,PrintUIEntry /s /t1 /n\\machine

mit verschiedenen Parametern und Einstellungen

aber das Ganze funzt jedenfalls nicht richtig.

@prinblac

Mit der Druckerverwaltung kommt man so auch nicht weiter.

Diese zeigt einem zwar die installierten Drucker an und man kann GPO-Einträge machen bzw. damit

verändern, aber das ist ja nicht das, was ich eigentlich will.

Es muß doch die Möglichkeit eines Scripts oder einer DOS-Befehlszeile geben. :cry:
 
Schau Dir in in der Eingabeaufforderung die Möglchkeiten von wmic path win32_printer an. Kannst Du auch per Powershell mit gwmi win32_printer erreichen. Das dürfte es sein, was Du suchst.
 
@areiland
jepp das ist es mit der wmic müsste es gehen, ich probiere es mal aus.
Danke... und ich melde mich dann, ob es geklappt hat...

Man oh man... manchmal sieht man den Wald vor lauter Bäumen nicht... ich Depp

Mit der WMIC kann ich doch schon relativ gut umgehen...Auahhhhh

....AAAAAAAAAAAAARRRRRRRRRRGGGGH :eek: :teufel

@b4nan1

Dann fang schon mal an für mich zu programmieren (SCHERZ, bitte nicht ernst nehmen):ROFLMAO:
 
Zuletzt bearbeitet:
So eins weiß ich jetzt


Quelle: Internet google Search
___________________________________________________________________________
Neuen Drucker installieren

Zur Installation eines im Netzwerk freigegebenen Druckers erzeugt man zunächst ein neues Win32_Printer-Objekt und legt dieses in einer Variablen ab, etwa wie folgt:

$d = [WMIClass]“\\.\root\cimv2:Win32_Printer“

Der Punkt steht dabei für den lokalen Computer. Statt diesem kann also auch ein beliebiger Rechnernamen angegeben werden. „root\cimv2“ steht dabei für den Namensraum, der die Klasse Win32_Printer enthält.

Über das so erzeugte Objekt kann die Methode AddPrinterConnection aufgerufen und als Parameter der Pfad zum freigegebenen Drucker übergeben werden:

$d.AddPrinterConnection(„\\london\hp“)

Daraufhin erhält man ein Ergebnisobjekt, an dessen Eigenschaft ReturnValue der Erfolg der Aktion erkannt werden kann. Steht ReturnValue auf 0, wurde der Drucker installiert.

Den Standarddrucker definiert man mit der Methode SetDefaultPrinter aus der Klasse Win32_Printer.

________________________________________________________________________________

Damit scheint es auch nicht ganz zu funktionieren, da nur Drucker eingebunden werden können,

mit denen der PC direkt kommunizieren kann.

Da aber der HP Laser Jet 2014 ja über den D-link Printserver installiert ist, kann der PC

nicht direkt mit dem Drucker kommunizieren und somit den passenden Treiber installieren.

Des weiteren ist auch damit keine Möglichkeit gegeben, ein Standard TCP/IP Port zu manifestieren.

SCH..ßE

Also doch die Drucker weiterhin händisch installieren... na gut, wenns anders nicht geht!?!
 
Zuletzt bearbeitet:
Oder du lernst C++ und Bastelst dir viel selbst und vereinfachst deine EDV Welt xD

PS: Aber keine Aimbots für Games bitte ;)

Gruß
 
@b4nan1

Dein Zitat:

Oder du lernst C++ und Bastelst dir viel selbst und vereinfachst deine EDV Welt xD

PS: Aber keine Aimbots für Games bitte

__________________________________________________________________________

Ende Deines Zitats...

Jetzt kommts:

Das ist mein Spezialgebiet: Aimbots für Games :ROFLMAO::ROFLMAO: (not to be taken seriously)

Nein aber mal ehrlich, wenn keiner eine Lösung weiß, dann kann das hier getrost geschlossen werden.

War ja auch nur ein Versuch....
 
So
Nach langem Recherchieren habe ich ein Teilergebnis erzielt.
Durch die Einträge in der hier eingestellten Textdatei,
die sich ja jeder, der will, mal anschauen kann, ist es möglich
ohne Neustart schon einmal die Standard TCP/IP Ports
per Registry zu definieren.
Die Textdatei benenne ich um in eine REG-Datei und importiere
sie mit Admin-Rechten in die Registriereung von Windows. Das ist klar.
Das ist schon mal ein entscheidender Schritt, der mir sehr viel
Zeit erspart, als jeden TCP/IP Port einzeln von Hand zu definieren.
Das funzt übrigens mit Windows Vista, 7, 8 und 10,
da hier die Registryeinträge bei allen hier aufgeführten
Betriebsystemen gleich geblieben sind.
Das habe ich früher schon mal getestet.

Das selbe Registry-Verfahren habe ich nun auch auf die beiden installierten
Drucker angewandt. Zwei Probleme ergeben sich aber daraus:

1. Die Drucker sind nur nach einem System-Neustart in dem Menü
Systemsteuerung - Geräte und Drucker verfügbar.
2. Klickt man nun auf die Druckereigenschaften eines Druckers
so fragt Windows (selbstverständlich) nach einem Treiber,
da dieser ja noch nicht installiert ist.
"Möchten sie den Treiber für den Drucker installieren?"

So. Und dann geht das Ganze damit Weiter, daß man den Treiber
manuell auswählt und installiert und dann funzt auch der Drucker.

Mit der Befehlszeile: hier als Beispiel der HP LJ 2014

rundll32 printui.dll,PrintUIEntry /if /b "HP Laserjet2014" /f
"E:\Drucker_win10\HPLJ2014\hplj2014.inf" /r "IP_192.168.238.51”
/m "Hewlett-PackardHP_LASERJET_P2014"

bin ich auch noch nicht weiter gekommen.
 

Anhänge

  • Standard_TCP_IP_Port_for_Printers.txt
    6,3 KB · Aufrufe: 523
Ja cool ;)

Ja mit C++ war mehr Spaß gemeint, da es krass aufwändig wäre^^
Aber kannst du mit NET umgehen ? bzw Visual Basic oder besser C# ? Da kannst du dir ein Assistent bauen wo du die Treiber einmal installierst, und deine ganzen Netzwerk Geschichten mit unterbringst mit z.B Auswahlmöglichkeiten ;) Sprich du suchst dir z.B ein Port aus, als das vom Assistent bestimmen zu lassen.

Da kannste ganz altes NET-Framework nehmen und es läuft dann noch auf XP oder wenn du glück hast sogar noch Win 2000 xD


Gruß
 
@b4nan1

Leider sind meine Fachkenntnisse in den Programiersprachen doch zu begrenzt.

Aber mal abwarten. Ich habe jetzt schon soviel ausprobiert, vielleicht fällt mir
oder jemand Anderem doch noch was ein...
 
So richtig verstehe nicht was Du da anstellst, mit Verlaub gesagt. Es ist doch so, daß, wenn Du einen Rechner einschaltest, er verschiedene Routinen durchläuft und dabei dann das System feststellt, daß z. B. neue Hardware vorhanden ist, etwa ein Drucker.

In dem Moment, wo das System dies erkennt, wird der Drucker ins System eingebunden, und ist damit funktionsfähig. Alle verfügbaren Möglichkeiten des entsprechenden Druckers kann natürlich nur der Treiber des Herstellers zur Verfügung stellen, und deshalb hat mich Win 10 bei der installation auch nach Identifizierung des Druckers, es ist ein jetzt acht Jahre alter HP Deskjet F4224, so gleich gefragt, ob nach neusten Treibern gesucht werden soll.
Also, ein Drucker wird grundsätzlich automatisch erkannt und eingerichtet.

Was Du möchtest ist, so wie ich das verstehe, ein Programm, daß jedem Rechner in einem Netzwerk nur einen speziellen Drucker als erlaubt zuweist. Das ist mit einem VB_Script durchaus möglich, aber dafür muß man sich da richtig reinknien. Das ist keine Sache von ein paar Tagen.

Ich habe mit VB-Script gearbeitet, nicht mit Netztwerdruckern, aber das ist schon sechzehn Jahre her, und ich werde mich jetzt da nicht mehr reinarbeiten. Hier ist ein Auszug aus einem meiner Fachbücher . . . zumindest kannst Du damit mal einen Versuch starten. Ich hoffe, es ist lesbar.
 

Anhänge

  • VBScriptDrucker.jpg
    VBScriptDrucker.jpg
    117,7 KB · Aufrufe: 369
Anzeige
Oben