VBScript - Problem beim Auslesen einer CSV-Datei

tuxhunt3r
Goto Top
Guten Morgen

Ich habe ein kleines Problem mit meinem Loginscript (VBScript). Und zwar folgendes:

Ich habe eine CSV-Datei, wo drinsteht welcher Benutzer welche Netzlaufwerke erhält. Diese heisst "Laufwerke.csv" und ist nach folgendem Muster aufgebaut:



Nun habe ich ein VBScript, welches folgende Funktion enthält:


Das VBScript wird mittels einer Batch-Datei gestartet, die folgendermassen aussieht:

Das VBScript selber und die CSV-Datei wird also in den temporären Ordner kopiert und von dort aus ausgeführt. Beim nächsten Login werden diese beiden Dateien wieder gelöscht und frisch kopiert.

Mein Problem ist nun folgendes:
Unter x64-Systemen (XP x64 und Windows 7 x64) funktioniert die obere Funktion nicht zum Auslesen der CSV-Dateien nicht (bei Windows XP 32 Bit ohne Probleme). Ich starte unter x64-Systemen das VBScript mittels der CScript.exe aus dem SysWOW64 Ordner, dann läuft die Funktion zwar durch, es kommt allerdings nicht an die Werte in der CSV, d.h. die Variablen "LWB" und "PATH" bleiben leer. Er ackert zwar die CSV-Datei einmal durch, füllt die Variablen allerdings nicht ab und verbindet kein einziges Laufwerk.

Wenn ich bei x64-Systemen nicht die CScript.exe aus dem SysWOW64-Ordner nehme, sondern einfach nur folgende Zeile in der Batchdatei angebe....


...dann gibt es eine Endlosschleife. Er ackert dann die CSV-Datei immer und immer wieder durch, bis man den Prozess cscript.exe über den Taskmanager abschiesst.

Ich bin mit meinem Latein am Ende. Wieso um Gates Willen will diese Funktion nicht sauber arbeiten auf x64-Systemen?
Habt ihr eine Ahnung?

Das Projekt liegt mir schon ca. ein halbes Jahr auf dem Magen und ich kann beim besten Willen keine Lösung finden.

Ich danke euch

Gruss
TuXHunT3R

Content-Key: 205273

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

Ausgedruckt am: 10.08.2022 um 15:08 Uhr

Mitglied: colinardo
colinardo 19.04.2013 aktualisiert um 11:04:31 Uhr
Goto Top
Hi TuXHunT3R,

wie wäre es wenn du anstatt des Datenbankobjektes zum extrahieren der Daten aus der CSV-Datei einfach ein universelles Auslesen(LineByLine) verwendest und die Zeilen in ein Array aufsplittest. So umgehst du das Problem wenn der Jet-Datenbanktreiber nicht in der richtigen Version auf dem jeweiligen Betriebssystem vorliegt.


wenn du aus welchen Gründen auch immer, jedoch bei der Datenbankmethode bleiben musst, könnte Dir folgender Artikel weiterhelfen. Dort ist in Lösung 4 die Rede davon das man die Jet-Datenbank-DLLs erneut auf dem 64-Bit System registrieren sollte.

Grüße Uwe
Mitglied: 76109
76109 19.04.2013 um 20:10:09 Uhr
Goto Top
Hallo TuXHunt3R!

Wo kommt im VBScript in Codezeile 24 der Username her?

Finde kein:

Gruß Dieter
Mitglied: TuXHunt3R
TuXHunt3R 21.04.2013 um 22:50:15 Uhr
Goto Top
@colinardo:

Ich muss nicht bei der Datenbankmethode bleiben, das war einfach die schnellste Lösung, als ich das Script angefangen habe. Eine Funktion zum Einlesen der CSV in ein Array habe ich anno dazumals aus irgendeinem Grund, an den ich mich gerade nicht mehr erinnere, nicht zum Laufen gebracht. Ich habe mir aber so etwas gedacht (Jet-DB DLLs). Ich danke dir für den Vorschlag und werde es morgen früh gleich testen.


@76109:
Das ist in meinem Script schon drin, hier habe ich nur einen Schnipsel gepostet. Wenn das das Problem wäre, würde mein Script auf 32-Bit-Maschinen auch nicht laufen. Aber danke trotzdem.
Mitglied: TuXHunt3R
TuXHunt3R 01.05.2013 um 07:12:13 Uhr
Goto Top
Soooooooo..........

Ich habe es nun mittels der Array-Methode gemacht. Mein Code sieht nun so aus und funktioniert einwandfrei auf Windows XP x86, XP x64 und 7 x64:


Herzlichen Dank für eure Hilfe.

Gruss
TuXHunT3R