Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: Yannosch

Yannosch (Level 2) - Jetzt verbinden

25.09.2013, aktualisiert 18:36 Uhr, 2759 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 ..
Ähnliche Inhalte
VB for Applications

Bestimmte Spalten aus CSV-Datei auslesen (VBS)

gelöst Frage von GurkenhobelVB for Applications9 Kommentare

Hallo Community, wieder benötige ich einmal kompetente Hilfe. Mein Script zum Auslesen bestimmte Spalten aus CSV-Dateien (über 200 " ...

Batch & Shell

Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen

Frage von windelterroristBatch & Shell1 Kommentar

Hallo Admins :) Mein Skript soll mehrere AD User aus einer CSV Datei per PowerShell erstellen. Soweit funktioniert das ...

Windows Server

Benutzer löschen und neu anlegen

Frage von ClepToManixWindows Server2 Kommentare

Hallo an alle, ich habe aktuell das Problem, dass mein neues Firmenhandy(neustes ios) keine Emails von unserem exchange 2016 ...

Batch & Shell

Benutzer anlegen mit Set-ADAccountExpiration

gelöst Frage von PeterzBatch & Shell3 Kommentare

Hallo, ich habe mir ein Script mit Powershell (z.T. mit Inputboxen) zusammengebaut, mit dem ich AD-Benutzer anlegen kann. Nun ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 2 TagenAusbildung35 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 4 TagenSpeicherkarten5 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 5 TagenHardware4 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
Frage von Looser27Windows Userverwaltung27 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Windows Server
Probleme im AD am Außenstandort
gelöst Frage von emeriksWindows Server19 Kommentare

Hi, wir haben ein Problem mit AD und GPO am Außenstandort und ich stehe momentan mächtig auf dem Schlauch. ...

Switche und Hubs
POE-Switche
gelöst Frage von MiStSwitche und Hubs13 Kommentare

Guten Morgen, ich überlege ob ich in unserem Netzwerk die aktuellen Switche (D-LINK DGS-1210-28) durch PoE-Switche ersetzen soll. Der ...

Windows Server
DNS - Bedingte Weiterleitung
gelöst Frage von m8ichaelWindows Server11 Kommentare

Guten Tag zusammen, ich stehe gerade bzgl. einer bedingten DNS-Weiterleitung etwas auf dem Schlauch: Ich möchte, dass für bestimmte ...