Microsoft MVPs inside





 MCSEboard.de MCSE Forum zu Windows XP / 2003 / 2008 Server & Windows Vista / Windows 7
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 25.08.2009, 13:11   #1
Member
 
Offline
Registriert seit: 11-2003
Beiträge: 181
Frage VBS - Registry

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!

Signatur
Grüße, Blade

    Mit Zitat antworten
Alt 25.08.2009, 13:26   #2
Member
 
Offline
Registriert seit: 01-2009
Ort: Bensheim
Beiträge: 225
Warum benutzt Du kein WMI?

Installs a TCP/IP printer port on a computer.
Code:
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
    Mit Zitat antworten
Alt 25.08.2009, 13:51   #3
Member
 
Offline
Registriert seit: 11-2003
Beiträge: 181
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?

Signatur
Grüße, Blade

    Mit Zitat antworten
Alt 25.08.2009, 14:31   #4
Member
 
Offline
Registriert seit: 01-2009
Ort: Bensheim
Beiträge: 225
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.
    Mit Zitat antworten
Alt 25.08.2009, 14:53   #5
Member
 
Offline
Registriert seit: 11-2003
Beiträge: 181
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!

Signatur
Grüße, Blade

    Mit Zitat antworten
Alt 25.08.2009, 15:06   #6
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.173
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

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Alt 25.08.2009, 15:11   #7
Member
 
Offline
Registriert seit: 11-2003
Beiträge: 181
Wie könnte dieser Präfix ausschauen?

Signatur
Grüße, Blade

    Mit Zitat antworten
Alt 25.08.2009, 15:22   #8
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.173
Moin,

da habe ich jetzt mangels Bedarf nicht recherchiert. Es gibt da unterschiedliche Notationsweisen. Ich denke, dass eine Google-Recherche dich da weiterbringen würde.

(Trotzdem bleibt WMI vorzuziehen.)

Gruß, Nils

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Alt 25.08.2009, 16:00   #9
Moderator
 
Offline
Registriert seit: 11-2002
Beiträge: 6.541
vermutlich mal 0x..... , ansonsten rechne mit calc.exe den hex-Wert zur Not ins dezimale um

cu
blub

Signatur
www.powershellpraxis.de

Nec Cupias, Nec Metuas

    Mit Zitat antworten
Alt 25.08.2009, 16:10   #10
Member
 
Offline
Registriert seit: 11-2003
Beiträge: 181
Wenn ich nicht "0000238c" sondern "9100" verwende, wird der Wert in der Registry als "0000238c" eingetragen.
Das Umwandeln von HEX in DEZIMAL hat den Erfolg gebracht
0x hatte ich auch schon in verschiedenen Variationen versucht und das ging nicht.

Danke euch allen, jetzt bin ich glücklich

Signatur
Grüße, Blade

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2K3 - Registry LjMatrix Windows Server Forum 2 25.09.2008 22:42
Registry First Aid Kuddel Windows Forum — Allgemein 0 12.04.2005 09:50
Registry Oger Windows Forum — Allgemein 4 03.02.2004 13:41
Registry??? Bernsch Windows Forum — Allgemein 8 04.04.2003 13:54
Registry? Bernsch MS Zertifizierungen — Allgemein 2 04.04.2003 11:55


Alle Zeitangaben in MEZ/CET. Es ist jetzt 01:24 Uhr. Seite generiert in 0,077 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang