Jump to content

VBS - Registry


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich möchte in der Registry per vbs IP-Druckerports anlegen, dass diese nicht manuell eingetragen werden müssen. Es handelt sich hierbei um ca. 150 IP-Adressen in den Druckerports.

 

Das Script funktioniert so weit auch schon, nur eine Zeile wird nicht in die Registry geschrieben.

 

Hier das Testscript:

_________

dim IPPort 'FortlaufendeNummer

dim IPNummer, IP, Pfad

Set WshShell = CreateObject( "WScript.Shell" )

 

IPNummer = "172.31.33."

Pfad = "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\"

 

 

For IPPort = 3 to 4

 

IP = CStr(IPNummer)+CStr(IPPort)

 

WshShell.RegWrite Pfad + IP + "\HostName", "", "REG_SZ"

WshShell.RegWrite Pfad + IP + "\HWAddress", "", "REG_SZ"

WshShell.RegWrite Pfad + IP + "\IPAddress", IP, "REG_SZ"

WshShell.RegWrite Pfad + IP + "\PortMonMibPortIndex", "00000000", "REG_DWORD"

WshShell.RegWrite Pfad + IP + "\PortNumber", "0000238c", "REG_DWORD"

WshShell.RegWrite Pfad + IP + "\Protocol", "00000001", "REG_DWORD"

WshShell.RegWrite Pfad + IP + "\SNMP Community", "public", "REG_SZ"

WshShell.RegWrite Pfad + IP + "\SNMP Enabled", "00000000", "REG_DWORD"

WshShell.RegWrite Pfad + IP + "\SNMP Index", "00000001", "REG_DWORD"

WshShell.RegWrite Pfad + IP + "\Version", "00000002", "REG_DWORD"

Next

 

Wscript.Echo "Fertig!"

_________

 

Es funktioniert nur diese Zeile nicht:

WshShell.RegWrite Pfad + IP + "\PortNumber", "0000238c", "REG_DWORD"

 

Das Script bricht ab mit dem Fehler:

 

Fehler: Typen unverträglich

Code: 800A000D

Quelle: Laufzeitfehler in Microsoft VBScript

 

Wisst ihr eine Lösung?

 

Danke!

Link zu diesem Kommentar

Warum benutzt Du kein WMI?

 

Installs a TCP/IP printer port on a computer.

Set objWMIService = GetObject("winmgmts:")
Set objNewPort = objWMIService.Get _
   ("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = "IP_169.254.110.14"
objNewPort.Protocol = 1
objNewPort.HostAddress = "169.254.110.14"
objNewPort.PortNumber = "9999"
objNewPort.SNMPEnabled = False
objNewPort.Put_

 

Quelle: Printer Port Scripting, Monitor Printer Ports using VBScript

Link zu diesem Kommentar

Weil ich mich mit VBS nicht soooo gut auskenne und eig. froh um meine Lösung war ;) (Die leider wg. dem einen Eintrag nicht funktioniert :( )

 

Was ist der Vorteil wenn ich das per WMI mache? (Außer dass es funktionieren wird?) Es sollen sich viele mit unseren Scripten zurecht finden und wenn man zu speziell wird, ist das nicht mehr gegeben.

 

Danke trotzdem, ich probier es gleich mal aus!

 

Woran liegt es, dass ich den Key per VBS nicht in die Registry schreiben kann?

 

P.S.: Wofür ist der Unterschtrich am Ende?

Und wofür ist das SNMP?

Link zu diesem Kommentar

Du benutzt aber schon VBScript, deswegen dachte ich dass Du Dich damit auskennst.

Warum Deine Lösung nicht geht, kann ich Dir auf Anhieb nicht sagen. Auf den ersten Blick sieht die Zeile korrekt aus. Ich persönlich mag aber Reg Manipulationen nicht und versuche diese zu vermeiden wo es geht. Und da für die Druckergeschichte eine WMI Schnittstelle exisistiert, würde ich die auch benutzen.

Die Unterstriche sagen dem Interpreter dass der Befehl in der nächsten Zeile fortgesetzt wird.

Link zu diesem Kommentar

Nun, ich "bastel" mir die Scripte immer entsprechend zurecht. Wirklich auskennen aber nicht ;)

Ich habs auch schon hinbekommen mit deiner Hilfe, danke vielmals!

 

Hinweis:

Die Druckerports (IP-Ports) sind nur in der Registry hinterlegt und das ist ein gängiger Weg, IP-Ports anzulegen. Wird auch oftmals so im Netz beschrieben und wir haben das bisher auch so gemacht.

Da Änderungen aber in der ellen langen Reg-Datei nicht leicht zu vollziehen sind, bzw. eine Erweiterung der Ports sehr aufwändig ist, ist so ein Script schon eine schöne Lösung ;)

 

Übrigens funktioniert die Lösung mit Windows7 ;)

 

Danke noch mal!

Link zu diesem Kommentar

Moin,

 

den Typenfehler bekommst du wahrscheinlich, weil der Hex-String nicht als solcher erkannt wird. Vermutlich müsstest du noch einen Präfix davor hängen.

 

Aber WMI ist eindeutig die bessere Alternative, denn auf die Weise steuerst du die Windows-Funktion und trägst nicht nur irgendwas in die Registry ein.

 

Gruß, Nils

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...