barney123
Goto Top

Drucker über Subnetz mit VBS Script verbinden

Guten Tag! Ich hoffe ich hab für das Thema das richtige Unterforum ausgewählt.
Für Antworten bedanke ich mich schonmal im vorraus!

Ich brauch ein Script das anhand eines Subnetz bestimmte Drucker verbindet.
Mit dem Script von unten verbindet er zwar die Drucker, dabei ist es aber egal was für eine IP man eingibt.
Wir haben mehrere Standorte.
Er sollte sich z.B. anhand des Subnetzes z.B. 192.168.49.XXX bestimmte Drucker verbinden!
Andere Löungen(OU's usw) sind nicht möglich.


on error resume next

Set WshNetwork = CreateObject("WScript.Network")


If WshNetwork.IPConfig.IPAddress = "192.168.49.175" then
WshNetwork.AddWindowsPrinterConnection "\\cad\HP Color LaserJet CP2025 64bit (HV) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\HP Designjet 500 64bit (HV_3R81) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\HP Designjet 500 64bit (HV_4R26) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\KONICA MINOLTA C352 64bit (HV_3R81) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\KONICA MINOLTA C352 64bit (HV_EG) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\KONICA MINOLTA C360 64bit (HV_EG) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\Oce TCS500 Colour 64bit (HV) Print CAD"
end if

Content-Key: 169713

Url: https://administrator.de/contentid/169713

Ausgedruckt am: 29.03.2024 um 00:03 Uhr

Mitglied: AndreasHoster
AndreasHoster 14.07.2011 um 12:19:07 Uhr
Goto Top
Ok, das Skript funktioniert nicht wie erwartet.
Nicht schlimm, kann passieren.

Aber einfach die Fehlerbehandlung abzuschalten, so daß man keine Fehler sieht und dann, weil es nicht so tut wie erwartet, einfach im Forum fragen, was nicht tut, ist etwas ... frech

Nimm die Zeile
on error resume next
raus, schau Dir die Fehlermeldung an, denke ein bischen nach, dann gehts möglicherweise weiter.
Mitglied: Barney123
Barney123 14.07.2011 um 12:45:41 Uhr
Goto Top
Sorry mein Fehler!

Nach entfernen der Zeile, bringt er mir jetzt die Fehlermeldung. Das Objekt unterstützt diese Eigenschaft oder
Methode nicht: 'WshNetwork.IPConfig'

Ich steh grad echt aufm Schlauch.
Mitglied: 64748
64748 14.07.2011 um 12:59:04 Uhr
Goto Top
Hallo Barney123,

das Problem ist, dass Du auf diese Weise die IP-Adresse des Rechners nicht abfragen kannst.

Ein weiteres Problem sehe ich wenn es darum geht, das Subnetz herauszufinden.

Ich habe in meinen Domänen auch so ein Skript, aber ich prüfe die Computernamen. Also es sind 3 Räume, EDV1, EDV2, usw. und die Computer tragen entsprechende Namen, z.B. EDV1-05. Ich lesen den Computernamen mit VB aus
compname = WshNetwork.Computername
sollte funktionieren und dann teste ich
If left(compname,4) = "EDV1" Then  
      ...
Das funktioniert bei uns einwandfrei.
Evtl. empfiehlt es sich, die Druckerzuordnung bei der Abmeldung des Benutzers wieder zu löschen.

Markus
Mitglied: Barney123
Barney123 14.07.2011 um 13:07:17 Uhr
Goto Top
Wir haben 8 Standorte die alle verschiedene Subnetze verwenden.
z.b

Standort 1: 192.168.49.XXX
Standort 2: 192.168.50.XXX
usw.

kann man nicht irgendwie die IP Adresse des Clients auslesen, und dann die entsprechenden Drucker verbinden.
Mit dem unten angegebenen bringt er auch keine Fehlermeldung, trotzdem passiert nix.
Das gleiche wenn ich anstatt der IP den Namen eingebe.


Set WshNetwork = CreateObject("WScript.Network")


if WshNetwork.computername = "192.168.49.174" then
WshNetwork.AddWindowsPrinterConnection "\\cad\HP Designjet 500 64bit (HV_3R81) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\HP Designjet 500 64bit (HV_4R26) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\KONICA MINOLTA C352 64bit (HV_3R81) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\KONICA MINOLTA C352 64bit (HV_EG) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\KONICA MINOLTA C360 64bit (HV_EG) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\Oce TCS500 Colour 64bit (HV) Print CAD"
WshNetwork.AddWindowsPrinterConnection "\\cad\_HV-1OG-3R23__HP 2025"
end if
Mitglied: AndreasHoster
AndreasHoster 14.07.2011 um 13:26:21 Uhr
Goto Top
Das bedeutet, daß IPConfig nicht im Objekt WSHNetwork existiert. Damit kann man es auch nicht abfragen.
Und ganz so einfach ist es eh nicht, weil ein PC mehrere IP-Adressen haben kann.
Hier ein Beispiel, mit dem man über alle Netzwerkkarten-Konfigurationen im Rechner iteriert:
	Set wmiobj = GetObject("winmgmts://localhost/root/cimv2:Win32_NetworkAdapterConfiguration")  
	ID = 1
	For Each ipa In wmiobj.Instances_
 		t = ipa.IPAddress
 		If Not IsNull(t) Then
    		    REM Hier eintragen, was man mit der IP Adresse machen will.		
 		End If
	Next
Mitglied: 64748
64748 14.07.2011 um 13:27:45 Uhr
Goto Top
Hallo nochmal,

ja klar, wenn's so eindeutig ist, dass Du die Subnetze am dritten Oktett der IP-Adresse unterscheiden kannst, dann brauchst Du ja nur dieses.

Allerdings habe ich jetzt schon eine Weile gesucht, eine einfache Lösung die IP-Adresse auszulesen scheint es nicht zu geben (also was mit wenigen Zeilen).

Viel Glück

Markus
Mitglied: Barney123
Barney123 15.07.2011 um 08:30:49 Uhr
Goto Top
Ok, scheint woll nicht so einfach zu sein!

Ich habs jetzt so gelöst.
Für jeden Standort ein eigenes VBScript.
Da die Rechner selten den Standort ändern liegen diese Scripts aufm Server und müssen bei einem Standort einfach händisch betätigt werden.

Aber trotzdem Danke für Eure Antworten
Mitglied: DevTig
DevTig 22.07.2011 um 22:55:31 Uhr
Goto Top