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

VBS - Netzlaufwerk nach Eingabe verbinden

Frage Entwicklung VB for Applications

Mitglied: Zacky87

Zacky87 (Level 1) - Jetzt verbinden

02.09.2008 um 15:40 Uhr, 7724 Aufrufe

Über VBScript Formular unter diversen Bedingungen zu einem Netzlaufwerk verbinden

Aktualisiert: Status --> Fertig

Hallo Zusammen,
ich habe im Forum + Internet nach meinem Problem gesucht, doch leider keine geeignete Lösung gefunden.
Ich hoffe ich komme durch diesen Betrag zu einer Lösung meines Problems. Vorweg muss ich noch zugeben, dass ich vorher nie wirklich mit VBS etwas gemacht habe, dennoch mit anderen Programmiersprachen zu tun habe.

Also es geht um folgendes:
Anbei habe ich eine Grafik beigelegt, die den Ablauf noch mal grafisch darstellen soll.

Ich benötige ein Script(per VBS), welches nach einer Netzwerkpfad-Eingabe eine Verbindung zum Pfad herstellt. Dieser Pfad soll dann in eine Datei geschrieben werden. Am einfachsten wahrscheinlich eine .txt (config.txt).
Weiterhin soll die Möglichkeit bestehen weitere Verbindungen herzustellen, die ebenso in die .txt geschrieben werden.

Bevor zu dem Netzwerkpfad aber eine Verbindung hergestellt werden kann, muss kontrolliert werden, ob dieser existiert und ob der Benutzer die entsprechende Freigabe zum Pfad hat. Erst nach Bestätigung dieser beiden Bedingungen wird die Verbindung eingerichtet. Ansonsten soll eine MsgBox kommen.

Wenn keine Verbindungen mehr einzurichten sind, soll man das Script schließen.

Sobald das Script immer gestartet wird, wird überprüft ob es eine vorher angelegte config.txt schon gibt. Wenn ja, dann schließt das Script und nichts passiert. Wenn keine Config.txt da ist, passiert das was oben beschrieben ist. Das bedeutet, man müsste erst die config.txt löschen um über das Script neue Verbindungen einzurichten.

Zusammenfassung:
Überprüfen ob config.txt vorhanden
Formulareingabe des Netzwerkpfades
Netzwerkpfad prüfen auf Existenz und Freigabe
Netzwerkpfad einrichten
Datei "config.txt" anlegen

So Habe es Jetzt hersausgefunden:


'Variablendeklaration
dim filesys, objFSO, eingabe, LogicalDrive, eingerichtet, araray (26,26)

Set filesys = CreateObject("Scripting.FileSystemObject")
'Überprüfung ob eine Log datei vorliegt.
If filesys.FileExists("C:\log.txt") = True Then
'Logdatei vorhanden
Set oDict = CreateObject("Scripting.Dictionary")
Set oFile = filesys.OpenTextFile("C:\log.txt")
Set wn = WScript.CreateObject("WScript.Network")
'Direktes Einlesen, Dictionary Objekt darf nämlich beliebig wachsen

i=0
'Aufruf einer Schleife, welche jedes Laufwerk mappt was in der Logdatei angegeben ist
while not oFile.AtEndOfStream
oDict.add i,oFile.ReadLine
j = 0
'Jede Zeile der Logdatei --> oDict.Item(i)
'String wird geteilt durch die 3 Rauten (###) --> Split
InputData = Split(oDict.Item(i), "###")
'Einzelnen Teile des Strings --> Array
For each strData In InputData
araray(i,j) = strData
j = j + 1
next
'Fehler abfangen, falls das Script gestartet wird, obwohl die Log datei
If filesys.DriveExists (araray(i,0)) = TRUE Then
wn.RemoveNetworkDrive araray(i,0)
wn.MapNetworkDrive araray(i,0), araray(i,1), False
ELSE
' Mappen der Laufwerke durch die Einträge des Arrays
wn.MapNetworkDrive araray(i,0), araray(i,1), False
END IF
i=i+1
Wend
oFile.Close
WScript.Quit
'END


ELSE
'Keine Logdatei vorhanden



' Aufruf einer Logdatei namens log.txt
Set logtxt = filesys.CreateTextFile("c:\log.txt", True)
'Schleife damit man mehr Laufwerke mappen kann also nur eines
For h = 0 To 25
'Variable --> eingerichtet zur Kontrolle bis ein Laufwerk gemappt wurde
eingerichtet = 0
eingabe= InputBox ("Geben Sie Ihren Netzwerkpfad ein, zu dem Sie eine Verbindung hergetsellt werden soll! Ansonsten Schließen")
IF eingabe=FALSE THEN
'Falls keine Eingabe geschehen ist, wird das Script geschlossen
WScript.Quit
ELSE

' Laufwerksbuchstaben A: - Z:
For I = 0 To 25
'Zuweisung des Laufwerksbuchstaben
LogicalDrive = Chr(65 + I) & ":"


Set filesys = CreateObject("Scripting.FileSystemObject")
'Kontrolle ob es den ermittelten Laufwerksbuchstaben schon gibt
If filesys.DriveExists (LogicalDrive) = False Then
MsgBox ("Der Laufwerksbuchstabe " & LogicalDrive & " ist noch frei und wird nun gemappt")

Set wn = WScript.CreateObject("WScript.Network")

'On Error Resume Next

'Mapp befehl
wn.MapNetworkDrive LogicalDrive, eingabe, False
'MsgBox ("Für diesen Netzpfad müssen Sie den Benutzernamen und Passwort angeben")
'benutz= InputBox ("Geben Sie bitte das Benutzer ein")
'pw= InputBox ("Geben Sie bitte das Passwort ein")
'On Error Goto error

' Mappbefeehl mit Benutzernamen und Passwort
'wn.MapNetworkDrive "t:", "\\192.168.2.5\geheim", False, "Guest", "geheim"

'error:
'Msgbox Err.Description

eingerichtet = 1
logtxt.WriteLine(LogicalDrive & "###" & eingabe)

END IF

If eingerichtet = 1 Then Exit For END IF
Next

END IF
NEXT
logtxt.Close
END IF
WScript.Quit

Der Beitrag kann somit duch einen Admin geschlossen werden.

Grüße
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows 10
Surface 4 Pro Netzlaufwerk verbinden (3)

Frage von Yannosch zum Thema Windows 10 ...

SAN, NAS, DAS
Netzlaufwerk verbinden - komisches Verhalten (15)

Frage von duschgas zum Thema SAN, NAS, DAS ...

Windows Userverwaltung
gelöst Gruppenrichtlinie Netzlaufwerk verbinden und direkt Verknüpfung darauf erstellen (11)

Frage von Lars1992 zum Thema Windows Userverwaltung ...

Windows Netzwerk
Netzlaufwerk offline verfügbar für Mac

Frage von PharIT zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...