mjat2378
Goto Top

Daten aus csv-Datei weiter verwenden

Hallo!

Ich möchte gern per vb-script aus einer csv-Datei Daten auslesen und dann per script z.B. Drucker installieren.
Nun bin ich wie schon oft gesagt face-wink Anfänger auf diesem Gebiet. Ich habe schon Daten aus dieser csv-Datei ausgelesen, aber nun möchte ich diese weiter verwenden. Kann mir da bitte jemand helfen! face-smile

hier mein script vom auslesen:

Option Explicit
' Konstanten definieren
Const ForReading = 1
' Variablen deklarieren
Dim FSO, Datei, objPrinter, strComputer, objWMIService, print
Dim TextZeile
'Objekt erzeugen
Set FSO=CreateObject("Scripting.FileSystemObject")
'Öffnen der Datei zum Lesen
Set Datei = FSO.OpenTextFile("csvdaten.csv", ForReading, False)
'Datei bis zum Ende durchlaufen
while not Datei.AtEndOfStream
'Lesen einer Zeile
TextZeile=Datei.Readline()
'Zeile an Semikolon trennen und die Werte
'in einem Array speichern
objPrinter=Split(TextZeile,";")
'Ausgabe der Benutzerdaten
wscript.echo objPrinter(0) & ";" & objPrinter(1) & ";" & objPrinter(2) & ";" & objPrinter(3) & ";" & objPrinter(4) & ";" & objPrinter(5) & ";" & objPrinter(6)

Und hier wäre das Skript zum erstellen eines einzelnen Druckers:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set objPrinter = objWMIService.Get("Win32_Printer").SpawnInstance_

objPrinter.DriverName = "Apollo P2200"
objPrinter.PortName = "Lpt1:"
objPrinter.DeviceID = "PR1Kat1B1"
objPrinter.Location = "USA/Redmond/Building 37/Room 114"
objPrinter.Network = False
objPrinter.Shared = True
objPrinter.ShareName = "PR1Kat1B1"
objPrinter.Put_

--> Wie kann ich diese beiden irgendwie zusammen fügen???

Content-ID: 92496

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

Ausgedruckt am: 25.11.2024 um 12:11 Uhr

bastla
bastla 21.07.2008 um 13:58:50 Uhr
Goto Top
Hallo MJat2378

Etwa so:
Option Explicit
' Konstanten definieren  
Const ForReading = 1
' Variablen deklarieren  
Dim FSO, Datei, objPrinter, strComputer, objWMIService, strPrinter
Dim TextZeile

strComputer = "."  
Set objWMIService = GetObject("winmgmts:" _  
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  

'Objekt erzeugen  
Set FSO=CreateObject("Scripting.FileSystemObject")  
'Öffnen der Datei zum Lesen  
Set Datei = FSO.OpenTextFile("csvdaten.csv", ForReading, False)  
'Datei bis zum Ende durchlaufen  
Do While Not Datei.AtEndOfStream
	'Lesen einer Zeile  
	TextZeile = Datei.Readline()
	'Zeile an Semikolon trennen und die Werte  
	'in einem Array speichern  
	strPrinter = Split(TextZeile,";")  
	'Drucker erstellen  
	Set objPrinter = objWMIService.Get("Win32_Printer").SpawnInstance_  
	objPrinter.DriverName = strPrinter(0)
	objPrinter.PortName = strPrinter(1)
	objPrinter.DeviceID = strPrinter(2)
	objPrinter.Location = strPrinter(3)
	objPrinter.Network = strPrinter(4)
	objPrinter.Shared = strPrinter(5)
	objPrinter.ShareName = strPrinter(6)
	objPrinter.Put_
Loop
Datei.Close
Grüße
bastla
MJat2378
MJat2378 21.07.2008 um 14:55:52 Uhr
Goto Top
Danke sehr bastla, dass bringt mich sehr weiter.

Jedoch bringt er eine Fehlermeldung: Zeile 32 SWbemObjectEx: Allgemeiner Fehler

Hmm...wenn ich es einzeln ausführe funktioniert es --> also einen Drucker allein anlege.
MJat2378
MJat2378 21.07.2008 um 17:08:39 Uhr
Goto Top
Hallo, ich noch mal! face-smile

Weiß jemand, warum da der Fehler erscheint?
bastla
bastla 21.07.2008 um 17:50:46 Uhr
Goto Top
Hallo MJat2378!

So wie hier wird's ja bei Dir wohl nicht sein ...

Grüße
bastla
MJat2378
MJat2378 22.07.2008 um 09:59:51 Uhr
Goto Top
Hallo bastla!

Nein, mit dem Treiber hat es nichts zu tun. Denn wenn ich das Script (für Drucker erstellen) allein ausführe, also ohne Zugriff auf csv-Datei, funktioniert es ja.

LG

MJ
MJat2378
MJat2378 23.07.2008 um 11:28:01 Uhr
Goto Top
Hallo, habe den Fehler gefunden --> Csv-Datei war nicht korrekt --> jetzt funktioniert es! face-smile

Ich habe aber noch eine Frage (oh..nein..nicht schon wieder... face-wink )

Ich möchte gern noch einen neuen Port einrichten (TCP/IP Port), SNMP sollte auch aktiviert sein. Jedoch fehlen mir die richtigen Befehle dazu. Weiß jemand eine Antwort???

--> Also bei neuer Drucker hinzufügen --> einen neuen Anschluss erstellen --> TCP/IP Port --> usw.

Danke für eure Hilfe!
MJat2378
MJat2378 23.07.2008 um 11:40:47 Uhr
Goto Top
Hallo hab es hinbekommen face-smile

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_

objNewPort.Name = "IP_1.2.3.4"
objNewPort.Protocol = 1
objNewPort.HostAddress = "1.2.3.4"
objNewPort.PortNumber = "9100"
objNewPort.SNMPEnabled = False
objNewPort.Put_

--> siehe Link von bastla

Danke nochmal
bastla
bastla 23.07.2008 um 11:43:30 Uhr
Goto Top
Hallo MJat2378!

Für's nächste Script face-wink: http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr= ...

Grüße
bastla