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 Funktion um Netzlaufwerke zu verbinden

Mitglied: tomtetom

tomtetom (Level 1) - Jetzt verbinden

16.02.2006, aktualisiert 01.04.2006, 26631 Aufrufe, 13 Kommentare

Mein Ziel: einfach mehrere Netzlaufwerke mit einer Methode erstellen zu können

Hier was ich bisher habe....

' Zweck: mehrere Netzlaufwerk verbinden mit eigener Bezeichnung

' Konsolenbefehl zum trennen aller bisher gemappten Laufwerke starten
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("net use * /d /y")
Set WshShell = Nothing


' Variablen deklarieren
Dim objNetwork, objShell
Dim strMyName, strMyDriveLetter, strMyRemotePath


Public Function mapMyDrives(strMyName As String, strMyDriveLetter As String, strMyRemotePath As String) As Boolean

Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strMyDriveLetter, strMyRemotePath
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(strMyDriveLetter).Self.Name = strMyName

mapMyDrives = True

End Function

' hier dann der Funktionsaufruf mit dem ich schön die Laufwerke verbinden kann
mapMyDrives("Mein Tauschlaufwerk", "T:", "\\server1\tausch")
mapMyDrives("Mein Backuplaufwerk", "B:", "\\server1\backup")


Set objNetwork = Nothing
Set objShell = Nothing



Leider kommt ständig ein Fehler das eine Klammer fehlen würde...
Ich bin kein VBler, aber denke schon nahe an der Lösung zu sein.
Ist der Lösungsansatz von hinten durch die Brust oder soweit okay?

Ziel: Ich möchte einfach ein sauberes Skript haben mit dem ich beim Rechnerstart erstmal alle bisherigen Laufwerke trenne und dann die neuen mit Bezeichnung anlege.

Wenn jemandem einfällt wie man zB noch prüfen kann ob Laufwerke bzw. Buchstaben bereits belegt sind zB D: für ein CD-Rom oder so, wäre ich dankbar für eine Abfrage wie man das prüft. Es gibt nichts schlimmeres als ein Mapping das fehlschlägt weil ein USB Stick oder CD-Rom oder Wechseldatenträger einen Laufwerksbuchstaben blockiert...

Danke für jeden Hinweis.
Mitglied: 8644
16.02.2006 um 14:52 Uhr
Hi,

muß es wirklich VB sein? Falls nicht, nutz doch einfach net use in einer Batch.
Das Forum ist voll mit Beisplielen dazu.

Psycho

Klug ist jeder - der eine vorher, der andere hinterher
Bitte warten ..
Mitglied: tomtetom
16.02.2006 um 15:19 Uhr
ja, vb weil ich die bezeichnung der netzlaufwerke selbst bestimmen will.


jetzt gehts!

hier der code.

' Zweck: mehrere Netzlaufwerk verbinden mit eigener Bezeichnung

' Konsolenbefehl zum trennen aller bisher gemappten Laufwerke starten
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("net use * /d /y")
Set WshShell = Nothing

' Variablen deklarieren
Dim objNetwork, objShell
Dim strMyName, strMyDriveLetter, strMyRemotePath
Set objNetwork = CreateObject("WScript.Network")
Set objShell = CreateObject("Shell.Application")

Public Function mapMyDrives(strMyName, strMyDriveLetter, strMyRemotePath)

objNetwork.MapNetworkDrive strMyDriveLetter, strMyRemotePath
objShell.NameSpace(strMyDriveLetter).Self.Name = strMyName
mapMyDrives = ""

End Function

' hier dann der Funktionsaufruf mit dem ich schön die Laufwerke verbinden kann
mapMyDrives "Mein Tauschlaufwerk", "T:", "\\server1\tausch"
mapMyDrives "Mein Backuplaufwerk", "B:", "\\server1\backup"


Set objNetwork = Nothing
Set objShell = Nothing
Bitte warten ..
Mitglied: Baruse
31.03.2006 um 00:32 Uhr
Hallo tomtetom,

super !
genau sowas suche ich !
Jetzt fehlt für meine Zwecke noch der Benutzername und Kennwort:
bis jetzt arbeite ich mit "net use /USER:username pw"
und suche für Dein Super-Script die Möglichkeit, dieses auch fest zu hinterlegen und zwar möglichst pro Laufwerk.

PS: gibt's für das Script eine elegantere Lösung um vorh. Netzlaufwerke zu trennen, außer "WshShell.Run("net use * /d /y") " - das finde ich nicht ganz so schön, weil halt die Dos-Box kurz hochkommt.

Viele Grüße
Jörg
Bitte warten ..
Mitglied: Biber
31.03.2006 um 01:07 Uhr
Moin baruse,

Die entsprechende Methode heißt .RemoveNetworkDrive

Du findest auch hier im Forum dazu Beispiele.

Ein "net use * /d" , also Trennen aller Netzlaufwerke ist über eine For..Each..Schleife möglich, aber ich verstehe nicht, wo dieses pauschale Trennen nötig sein soll.

Ich komme bislang mit dem gezielten Trennen der Laufwerke aus, die ich auch verbunden habe (oder neu verbinden will).
Also
01.
Option Explicit
02.
Dim objNetwork, strDriveMapped
03.
strDriveMapped = "T:" 
04.
 
05.
Set objNetwork = CreateObject("WScript.Network") 
06.
objNetwork.RemoveNetworkDrive strDriveMapped, TRUE ' TRUE entspricht dem "/Y bei "net use t: /D /Y"
07.
set objNetwork=null
08.
'Wscript.Quit 
Gruß
Biber
P.S. Hier noch ein besseres Beispiel (das von gemini): https://www.administrator.de/User_Logon_Script_bei_Dom%E4nenanmeldung_(V ...
Bitte warten ..
Mitglied: Baruse
31.03.2006 um 01:16 Uhr
Hallo Biber,

vielen Dank für die prompte Antwort (zu solch nächtlicher Stunde)
wenn Du jetzt noch einen Tip hättest bez. des Usernamens... (jedem Mapping soll ein Username & Passwort mitgegeben werden)

Um es ganz genau zu machen:
ich suche eigentlich einen Ersatz für folgende Zeile:
if not exist s:\nul @354 use s: \\192.168.100.80\software /USER:username pw /persistent:yes
if not exist t:\nul @354 use t: \\192.168.100.80\driver /USER:username pw /persistent:yes

Also Abfrage ob das LW schon existiert ist und nur wenn nicht dann verbinden

von net use will ich weg weil.
1. keine Möglichkeit besteht, dem Laufwerk einen Namen zu geben
2. die Dos-Box einfach unschön ist

Viele Grüße
Jörg
Bitte warten ..
Mitglied: Biber
31.03.2006 um 01:29 Uhr
Na, baruse,
dafür reichen meine spärlichen VBS-Kenntnisse gerade noch (aber das hätte Dir auch jeder hergelaufene Google gebracht):


Syntax MapNetworkDrive:
MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile],[strUser], [strPassword])

Also müsstest Du tomtetoms Schnipsel aufbohren zu
01.
...
02.
Public Function mapMyDrives(strMyName, strMyDriveLetter, strMyRemotePath, strUsername, strPassword)
03.
 
04.
objNetwork.MapNetworkDrive strMyDriveLetter, strMyRemotePath, FALSE, strUsername, strPassword 
05.
objShell.NameSpace(strMyDriveLetter).Self.Name = strMyName 
06.
mapMyDrives = ""
07.
 
08.
End Function
09.
 
10.
' hier dann der Funktionsaufruf mit dem ich schön die Laufwerke verbinden kann
11.
mapMyDrives "Mein Tauschlaufwerk", "T:", "\\server1\tausch", "baruse", "ioT67f"
12.
mapMyDrives "Mein Backuplaufwerk", "B:", "\\server1\backup" ,"baruse" , "ioT67f"
13.
...
Gruß Biber
Bitte warten ..
Mitglied: Baruse
31.03.2006 um 10:10 Uhr
Hallo Biber,

mensch super !
Ich bin in Sachen VBA noch völlig blank - vielen Dank für die schnelle Hilfe !
Hat noch jemand 'ne Idee wie man abfragen kann, ob das Laufwerk bereits verbunden ist und nur dann die Schritte ausführt ?
M.W. kommt ja ne FM wenn man versucht ein LW zu verbinden welches bereits verbunden ist.
Das möchte ich halt abfangen.

Viele Grüße
Jörg
Bitte warten ..
Mitglied: Biber
31.03.2006 um 21:27 Uhr
Moin Jörg,
ich hatte weiter oben doch einen Link zu einer gemini-Lösung gepostet.
Und an geminis VBS-Schnipseln lässt sich genausowenig etwas optimieren wie an an einem Elton-John-Song.

In dem Schnipsel wird einfach die Liste aller gemappten Laufwerke durchlaufen und removed.
Entspricht doch Deinem "net * /d /y" (und im nächsten Atemzug wieder "net use .../persistant") *gg
01.
....
02.
Set colDrives = WshNetwork.EnumNetworkDrives
03.
'....
04.
On Error Resume Next
05.
If colDrives.Count > 0 Then
06.
  For i = 0 To colDrives.Count - 1 Step 2
07.
    WshNetwork.RemoveNetworkDrive colDrives(i), blnForce
08.
  Next
09.
End If
10.
On Error GoTo 0
11.
 
12.
'...usw
Und wenn Du bei Dir nur die Laufwerke "S:" und "T:" trennen willst und die sicherheitshalber neu mappen, dann prüfe doch innerhalb der "For i=0 To alleDrives"-Konstruktion, ob "uppercase(coldrives(i))="S" or "uppercase(coldrives(i))="T" ist.

Nur Mut..mit VBS kannst Du kaum was zerschroten...

Grüße
Biber
Bitte warten ..
Mitglied: Baruse
31.03.2006 um 21:59 Uhr
Hallo Biber,

ich glaub das ist alles nix für mich;
vor lauter Schnipsel werden jetzt nur noch Laufwerke getrennt, aber nicht mehr verbunden.
Problem ist auch daß ich überhaupt nicht verstehe was ich da zusammenschnipsle;
in einer Batchdatei kann ich wenigstens durch einfügen von "pause" sehen was er macht und warum was nicht funktioniert;
Kannst Du mir vielleicht den Code in einem Zug darstellen ?

Prüfen ob Netzlaufwerke vorhanden und wenn nicht dann (mehrere) verbinden, oder gleich alle trennen und neu verbinden...

Mit verzweifeltem Gruß
Jörg
Bitte warten ..
Mitglied: Biber
01.04.2006 um 01:16 Uhr
Na, Jörg,

nun mal keine Panik. Auch in VBS gibt es Msgbox'en und wscript.echo's, mit denen Du Deinen Source-Code verfolgen kannst.
Und Du hast gleich zwei funktionierende Vorlagen (die von tomtetom und die von gemini), die Du nur noch zusammenkopieren musst.
Fang an, poste das Zwischenergebnis und dann bringen wir die Kuh zum Fliegen.

Wenn es überhaupt sein muss.
Denn ein bisschen unsinnig ist der Aufwand schon IMHO.
Du willst IMMER (persistent) diese zwei Netzlaufwerke haben ->einmal persistent brauchst Du nie wieder Username/Passwort oder ein Net use.
Bis es in fünf Jahren mal irgendeiner trennt.
Und ebenso unnötig ist das tägliche "Laufwerksbezeichnungen zuweisen". Mach ich ja auch nicht täglich.
Einmalig in die Registry (suche mal im Forum nach "Mountpoints") und gut ists.

Und die Notwendigkeit von VBS statt Batch, weil...
"WshShell.Run("net use * /d /y") " - das finde ich nicht ganz so schön, weil halt die Dos-Box kurz hochkommt.
*kopfschüttel*
Dann ändere das in "WshShell.Run("net use * /d /y", 0, True) " -- dann geht kein CMD-Fenster auf.

Egal, poste das, was Du hast, dann schreddern wir das im Forum zusammen.

Grüße
Biber
Bitte warten ..
Mitglied: Baruse
01.04.2006 um 01:47 Uhr
Hallo Biber,

hab jetzt irgendwie was hingekriegt und es scheint auch zu funktionieren;
ob das nun sinnig ist, weiß ich nicht weil ich den Code so nicht verstehe;
hab ich mir halt zusammengeklaut...

Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set colDrives = WshNetwork.EnumNetworkDrives

On Error Resume Next
If colDrives.Count > 0 Then
For i = 0 To colDrives.Count - 1 Step 2
WshNetwork.RemoveNetworkDrive colDrives(i), blnForce
Next
End If
On Error GoTo 0

Dim objNetwork, objShell
Dim strMyName, strMyDriveLetter, strMyRemotePath
Set objNetwork = CreateObject("WScript.Network")
Set objShell = CreateObject("Shell.Application")

Public Function mapMyDrives(strMyName, strMyDriveLetter, strMyRemotePath, strUsername, strPassword)

objNetwork.MapNetworkDrive strMyDriveLetter, strMyRemotePath, FALSE, strUsername, strPassword
objShell.NameSpace(strMyDriveLetter).Self.Name = strMyName
mapMyDrives = ""

End Function

On Error Resume Next
mapMyDrives "Bilder", "B:", "\\192.168.100.80\photo", "Username", "pw"
mapMyDrives "Musik", "M:", "\\192.168.100.80\music", "Username", "pw"
mapMyDrives "Eigene Dateien", "N:", "\\192.168.100.80\own", "Username", "pw"
mapMyDrives "Software", "S:", "\\192.168.100.80\software", "Username", "pw"
'mapMyDrives "Web-Baruse", "T:", "\\192.168.100.80\web", "Username", "pw"
'mapMyDrives "Test-Baruse", "U:", "\\192.168.100.80\test1", "Username", "pw"

Set objNetwork = Nothing
Set objShell = Nothing
Bitte warten ..
Mitglied: Biber
01.04.2006 um 02:46 Uhr
Na, sieht doch sauberst aus, baruse,

ich glaube, dann können wir mal einen Moderator rufen, um den Thread zu schließen.
@tomtetom: Falls Du noch noch mitliest, könnstest Du bitte den Beitrag auf "Gelöst" setzen?

Schönes Wochenende allen
Biber
Bitte warten ..
Mitglied: Baruse
01.04.2006 um 11:35 Uhr
Hallo nochmal,

ich hatte es jetzt schon 2 mal, daß bei Neustart eines der Rechner das Laufwerk M zwar verbunden wurde, aber nicht mit dem Namen "Musik" sondern als "Netzlaufwerk".
An was kann das denn jetzt liegen ?

Wäre es nicht doch sinnvoller, erst abzufragen ob das Laufwerk bereits existiert und nur wenn nicht neu zu verbinden ?
Wie müßte so eine Abfrage aussehen ?

Gruß
Jörg
Bitte warten ..
Ähnliche Inhalte
TK-Netze & Geräte

Verbind 2 Hauser mit Kupfer und einen Netzwerkisolator

Frage von Hampi7273TK-Netze & Geräte3 Kommentare

Ich hab gelesn das in der Medizin Technik oft mit Netzwerkisolator gebaut wird. Netzwerkisolatoren bilden innerhalb einer kupfergeführten Ethernet-Datenleitung ...

Windows 7

Tablett Funktion aktivieren

Frage von Adnan88Windows 71 Kommentar

Hallo, habe ein Win 7 - Pro 32 bit Edition, nun wollte ich einen TouchScreen Monitor nutzen allerdings ist ...

Microsoft Office

Excel Wenn-Funktion

gelöst Frage von freshman2017Microsoft Office2 Kommentare

Moin Moin und guten Abend, ich bräuchte da nochmal Eure Hilfe. Ich habe eine Exelliste mit verschiedenen Werten: Hier ...

Windows 7

Schreibgeschwindigkeit Netzlaufwerk

Frage von OlliMucWindows 79 Kommentare

Servus zusammen, ich arbeite in einer großen Firma und wir arbeiten quasi fast nur über Netzlaufwerke. In meinem Aufgabenbereich ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 7 StundenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 3 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 4 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 6 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server26 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware20 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server18 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update12 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...