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, 26433 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
Windows Server
Netzlaufwerke verbinden sich nicht
Frage von MyBRis4ShotWindows Server6 Kommentare

Hallo, wie der Titel schon sagt, habe ich aktuell Probleme mit dem automatischen Verbinden von Netzlaufwerken. Der Kunde arbeitet ...

Windows Server
Active Directory Netzlaufwerke verbinden
gelöst Frage von Florian86Windows Server2 Kommentare

Hallo, beim Netzlaufwerke verbinden über die AD im 2012 Server bekomme ich beim Anmelden immer die Fehler ID:1055 Fehler ...

SAN, NAS, DAS

Netzlaufwerk verbinden - komisches Verhalten

Frage von duschgasSAN, NAS, DAS15 Kommentare

Guten Tag, ich habe einen root-Server bei einem Hoster und dort einen Ordner freigegeben. Mit meinem Laptop im WLAN ...

Windows 10

Netzlaufwerk unter Windows 10 verbinden

gelöst Frage von TiTuxWindows 104 Kommentare

Hallo, leider habe ich nirgends die Möglichkeit im Explorer gefunden, mich dauerhaft mit einem Netzlaufwerk zu verbinden. Jemand eine ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 1 TagHumor (lol)4 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 1 TagExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 2 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 2 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Windows Server
Windows Server per Web auf Daten zugreifen und verwalten
Frage von matze2090Windows Server16 Kommentare

Hallo, ich würde gerne von außen auf meinem Windows Server zugreifen um auf meine Daten zu verwalten. Meine frage ...

DSL, VDSL
Router Neustarts
Frage von XerebusDSL, VDSL16 Kommentare

Hallo an alle, ich hab eine Problem mit dem Neustart von meiner Fritz Box wo ich einfach nicht mehr ...

Webbrowser
Neuer Tab Firefox
gelöst Frage von BleifussWebbrowser12 Kommentare

Hallo, via Strg + T öffnet man ja einen neuen Tab. Gibt es die Möglichkeit, dass der Tab sich ...

Windows Server
2 DCs Hierarchie umkehren
Frage von TuberPlaysWindows Server11 Kommentare

Hallo, wir hatten bisher 1 Domain Controller in einer VM. Nun kam noch ein zusätzlicher Domain Controller auf einem ...