Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS: Benutzer aus einer CSV Datei anlegen

Frage Entwicklung VB for Applications

Mitglied: Yannosch

Yannosch (Level 2) - Jetzt verbinden

25.09.2013, aktualisiert 18:36 Uhr, 2632 Aufrufe, 8 Kommentare, 2 Danke

Guten Tag liebe Community!

Habe eine Frage bezüglich VBS.
Wie wäre es denn möglich Namen aus einer CSV Datei in einem VB-Script in eine Variable zu speichern?
Die Liste innerhalbe sieht z.B so aus:

VORNAME, NACHNAME
Peter, Lustig
Ann, Katrin
Armin, Peter

Nun möchte ich Vor- und Nachnamen in eine Variable oder Array speichern.
Sodass ich die Benutzer lokal auf meinem Rechner anlegen kann.

Fragt bitte nicht warum ich das aus einer CSV datei machen will oder wieso ich da ein VB-Script für mache ... Ist für ein Programmierprojekt an der Uni.
Bin EIGENTLICH auch relativ "begabt" im Scripten, aber hier steig ich nicht ganz durch - mir fehlen einfach die Ansätze...

Habe an eine ADO Verbindung gedacht ... aber dann dürfen die Felder wieder nicht so lang sein, usw.

Ihr würdet mir echt meinen Tag retten. Und sollte jemand die Muse haben sicher der Sache mal anzunehmen würde ich anbieten en Bierchen zu zischen, auf mich natürlich
(Denkarbeit soll meiner Meinung nach belohnt werden)

Liebe Grüße von
Yannosch !

Mitglied: bastla
25.09.2013, aktualisiert um 19:48 Uhr
Hallo Yannosch!

Wenn sich Deine Begabung auch auf das Verwenden der Suchfunktion erstreckte ...

... anyhow:
01.
CSV = "D:\Deine.csv" 
02.
Set fso = CreateObject("Scripting.FileSystemObject") 
03.
 
04.
Zeilen = Split(fso.OpenTextFile(CSV).ReadAll, vbNewLine) 
05.
For i = 1 To UBound(Zeilen) 'erste Zeile auslassen, daher Schleife ab Index 1 
06.
    Felder = Split(Zeilen(i), ",") 
07.
    WScript.Echo "Vorname: ", Trim(Felder(0)) 
08.
    WScript.Echo "Nachname:", Trim(Felder(1)) 
09.
Next
Wenn Du nicht für jede Ausgabe eine MsgBox erzeugen (und dann wegklicken) willst, starte das Script über "cscript" ...

Grüße
bastla
Bitte warten ..
Mitglied: Yannosch
25.09.2013 um 21:02 Uhr
Hey hey Danke schonmal für die rasche Antwort .... Es scheint auch etwas zu funktioninieren ...

In der csv habe ich es so gemacht:

Erste Zeile , Spalte 1:
Vorname
Erste Zeile, Spalte 2:
Nachname
Zweite Zeile, Spalte 1:
Tim
Zweite Zeile, Spalte 2:
Berg
Dritte Zeile, Spalte 1:
Steve
Dritte Zeile, Spalte 2:
Aoki

Nun wird nach ausführen des Scripts in einer MsgBox "Vorname: Tim; Berg" angezeigt.
Wenn ich auf Ok klicke kommt aber ein Laufzeitfehler mit folgendem Inhalt;
"Skript: <Pfad zum Script>
Zeile 25
Zeichen 5
Fehler: Index außerhalb des gültigen Bereichs: '[number:1]'
Code: 800A0009
Quelle: Laufzeitfehler in Microsoft VBScript"

Werde aus der Fehlermeldung nicht wirklich schlau ...
Evtl. Tipps für eine Mögliche Lösung?

@bastla: Das bier rückt näher ! ;)
Bitte warten ..
Mitglied: Yannosch
25.09.2013 um 21:08 Uhr
Ich habe in der CSV Datei nun das ";" durch ein "," ersetzt ... und nun werden die name Richtig aus der MessageBox ausgelesen ...
Aber nach Beendigung des Scripts wird die selbe Fehlermeldung generiert ...

Ich weiß nicht mehr weiter ...
Bitte warten ..
Mitglied: bastla
25.09.2013 um 21:21 Uhr
Hallo Yannosch!

Vermutlich befindet sich am Ende der CSV-Datei eine Leerzeile (die sich dann natürlich nicht in 2 Felder zerlegen lässt) - das lässt sich etwa so prüfen:
01.
CSV = "D:\Deine.csv" 
02.
Set fso = CreateObject("Scripting.FileSystemObject") 
03.
Delim = "," ' Trennzeichen 
04.
 
05.
Zeilen = Split(fso.OpenTextFile(CSV).ReadAll, vbNewLine) 
06.
For i = 1 To UBound(Zeilen) 'erste Zeile auslassen, daher Schleife ab Index 1 
07.
    If InStr(Zeilen(i), Delim) <> 0 Then 'Trennzeichen in der Zeile enthalten 
08.
        Felder = Split(Zeilen(i), Delim) 
09.
        WScript.Echo "Vorname: ", Trim(Felder(0)) 
10.
        WScript.Echo "Nachname:", Trim(Felder(1)) 
11.
    End If 
12.
Next
Grüße
bastla
Bitte warten ..
Mitglied: Biber
25.09.2013, aktualisiert um 21:31 Uhr
Moin Yannosch,

der von dir beschriebene Fehler wird auftreten, wenn in der CSV-Datei noch eine leere Zeile am Ende (also nur CRLF) dranhängt.
Das fängt bastlas Schnipsel nicht ab - du könntest als neue Zeile 06 eine IF-Prüfung einbauen auf "Länge Zeilen(i) größer 5" oder besser "Ist ein Komma ein Zeile(i) enthalten?" und die darauffolgenden drei Befehle nur in diesem Fall ausführen.

Grüße
Biber
[Edit} ... natürlich wieder mal zu langsam... [/Edit]
Bitte warten ..
Mitglied: Yannosch
26.09.2013 um 09:13 Uhr
Perfekt ...
Nun möchte ich nurnoch die Benutzer lokal anlegen ...

par exemple:

Dim Passwd
Dim Benutzername

Set wshShell = WScript.CreateObject( "WScript.Shell" )
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )

Set Computer = GetObject("WinNT://" & strComputerName )

Set Benutzer = Computer.Create("user",Benutzername)
Benutzer.SetPassword Passwd
Benutzer.SetInfo

_____________________________________________

Angenommen der User der Angelegt werden soll, hat den Nachnamen als Benutzernamen und den Vornamen als Passwort.
Wie bekomme ich die Ausgaben von dem Script von @bastla in die Variablen Benutzername und Passwd ? ... Ich komme einfach nicht dahinter und es ist nurnoch wenig Zeit bis zur Abgabe ...

____________________________________________

Aber bis hierhin schonmal ein FETTES Dankeschön an euch beiden ... Das ihr mir wenigsten schonmal bis hier hin geholgen habt....

!!

Liebe Grüße von
Yannosch !
Bitte warten ..
Mitglied: Yannosch
26.09.2013 um 09:26 Uhr
Okay bin dahinter gekommen ... Einfach anstelle der Variablen Passwd und Benutzername die betreffenden Variablen von bastla setzten...

Nun kommt aber die Fehlermeldung das es mit den Kennwortrichtlinien nicht hinhaut ... Warum auch immer ... setzte ich eine "12" vor den Namen der als Passwd verwendet wird , so funktioniert es ...

Wo kann ich denn die Kennwortrichtlinien für den Lokalen Rechner ändern ? o.O

Liebe Grüße von Yannosch !
Bitte warten ..
Mitglied: colinardo
26.09.2013, aktualisiert um 10:54 Uhr
Hallo Janosch,
Zitat von Yannosch:
Wo kann ich denn die Kennwortrichtlinien für den Lokalen Rechner ändern ? o.O
Wenn der PC in einer Domäne sitzt geht dies nur auf dem Domänencontroller der die Passwort-Richtlinie an die Computer verteilt, und da kommst du sicherlich nicht dran!

Falls der Rechner nicht in einer Domäne sitzten sollte, geht's so:
WIN+R > secpol.msc, dann in hier hin navigieren:
Kontorichtlinien > Kennwortrichtlinien > Kennwort muss den Komplexitätsvoraussetzungen entsprechen
Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen (1)

Frage von windelterrorist zum Thema Batch & Shell ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Batch & Shell
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

Batch & Shell
CSV-Datei nach Excel importieren (5)

Frage von mrvfbnummer2 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...