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

Frage zu Anmeldeskript

Frage Entwicklung VB for Applications

Mitglied: s.wiesenbacher

s.wiesenbacher (Level 1) - Jetzt verbinden

16.05.2005, aktualisiert 29.12.2010, 25100 Aufrufe, 31 Kommentare

Hi

ich verbinde in einem Anmeldeskript Netzlaufwerke, die dann z.B. Programme an Servername heißen. Ich möchte jetzt, dass Diese Laufwerk aber nur Programme heißt. Kann ich den Namen des Laufwerks im Skript irgendwie mitgeben?

Vielen Dank im Voraus
31 Antworten
Mitglied: gemini
16.05.2005 um 16:29 Uhr
From a Newsgroup post http://www.mcseboard.de/showthread.php?threadid=22357
Vielleicht hilft dir das.

"Schau mal in der Registry unter [HKEY_Current_User\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]
...
Also erstellst Du mal auf Deinem Rechner ein solches Netzwerklaufwerk und benennst es so, wie Du es haben willst. Dann ab in die Registry und den Key exportieren. Anschließend kannst Du ihn per Logon-Script einfach auf jeder Workstation importieren.
...
Hmm, setzt Dich mal zu so einer Maschine, verbind das Netzlaufwerk und benenne es im Explorer um. Dann suchst Du dir nochmal den Registry-Key raus und exportierst ihn. Anschließend löscht Du den Key aus der Registry, verbindest das Laufwerk neu und machst einen Doppelklick auf den exportierten Key..."
Bitte warten ..
Mitglied: s.wiesenbacher
16.05.2005 um 16:36 Uhr
Danke für die schnelle Hilfe. Werde das gleich mal ausprobieren
Bitte warten ..
Mitglied: s.wiesenbacher
16.05.2005 um 16:56 Uhr
Hab jetzt noch ein kleines Problem. Wie kann ich im vorfeld prüfen lassen, ob ein netzlaufwerk bereits besteht oder nicht?

im moment sieht das skript so aus, ohne das rem natürlich
01.
@echo off 
02.
 
03.
rem net use M: \\edv-f1.de\DFS\Musik /persistent:no 
04.
rem net use S: \\edv-f1.de\DFS\Software /persistent:no 
05.
rem net use F: \\w2k3srv02\e$\Download /persistent:no 
06.
rem net use H: \\edv-f1.de\DFS\Basisverzeichniss\%username%
Danke
Bitte warten ..
Mitglied: gemini
16.05.2005 um 17:15 Uhr
01.
@echo off 
02.
 
03.
net use M: /d /y 
04.
net use S: /d /y 
05.
net use F: /d /y 
06.
net use H: /d /y 
07.
 
08.
net use M: \\edv-f1.de\DFS\Musik /persistent:no 
09.
net use S: \\edv-f1.de\DFS\Software /persistent:no 
10.
net use F: \\w2k3srv02\e$\Download /persistent:no 
11.
net use H: \\edv-f1.de\DFS\Basisverzeichniss\%username%
Das löscht erstmal alle Verbindungen und baut sie neu auf.

Evtl. geht auch eine Abfrage auf die Laufwerksbuchstaben
01.
If Not Exist M: ( 
02.
net use M: \\edv-f1.de\DFS\Musik /persistent:no 
03.
)
usw.
Ob das funktioniert kann ich nicht sagen, normalerweise wird mit Exist das Vorhandensein von Dateien abgefragt.
Bitte warten ..
Mitglied: s.wiesenbacher
16.05.2005 um 17:35 Uhr
super, vielen dank. kannst du mir eventuell nur noch kurz die parameter /d und /y erlätern? ich find zu denen im bezug auf net use nirgens was.

danke
Bitte warten ..
Mitglied: gemini
16.05.2005 um 17:39 Uhr
/d = /DELETE = löschen
/y = yes

/y verhindert die Abfrage, ob wirklich gelöscht werden soll
Bitte warten ..
Mitglied: s.wiesenbacher
16.05.2005 um 18:16 Uhr
super, vielen dank. das mit dem umbenennen klappt zwar leider nicht aber der rest geht ohne probleme.

danke nochmal für die schnelle hilfe
Bitte warten ..
Mitglied: gemini
16.05.2005 um 18:21 Uhr
Tut mir leid, ich hab das wie gesagt nicht getestet.
Bitte warten ..
Mitglied: fritzo
16.05.2005 um 21:12 Uhr
01.
' NameDrive.vbs 
02.
' VBScript to map a network drive. 
03.
' Authors Guy Thomas and Barry Maybury 
04.
' Version 1.3 - January 23rd 2005 
05.
' ----------------------------------------' 
06.
07.
Option Explicit 
08.
Dim objNetwork, strDrive, objShell, objUNC 
09.
Dim strRemotePath, strDriveLetter, strNewName 
10.
11.
strDriveLetter = "Y:" 
12.
strRemotePath = "\\alan\home" 
13.
strNewName = "GuyDives" 
14.
 
15.
' Section to map the network drive 
16.
Set objNetwork = CreateObject("WScript.Network") 
17.
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath 
18.
 
19.
' Section which actually (re)names the Mapped Drive 
20.
Set objShell = CreateObject("Shell.Application") 
21.
objShell.NameSpace(strDriveLetter).Self.Name = strNewName 
22.
 
23.
Wscript.Echo "Check : "& strDriveLetter & " for " & strNewName 
24.
WScript.Quit 
25.
 
26.
' End of script
Bitte warten ..
Mitglied: s.wiesenbacher
16.05.2005 um 21:36 Uhr
hi, das skript schat echt super aus, nur leider versteh ich nur ca die hälfte. kannst mir das ganze etwas erläutern, was für was gut ist? Damit ich das dann nachher auch so machen kann wie ich es für meine laufwerke brauch.

big thx im voraus
Bitte warten ..
Mitglied: fritzo
17.05.2005 um 03:20 Uhr
01.
Option Explicit
--> bei Fehlern Warnung

01.
Dim objNetwork, strDrive, objShell, objUNC 
02.
Dim strRemotePath, strDriveLetter, strNewName
--> Variablen vorher dimensionieren, sonst Fehler

01.
strDriveLetter = "P:" 
02.
strRemotePath = "\\Server1\Freigabe1" 
03.
strNewName = "Name_des_Laufwerks"
--> Variablen für das Laufwerk definieren

01.
' Section to map the network drive 
02.
Set objNetwork = CreateObject("WScript.Network")
--> ein Handle auf ein Network-Objekt erstellen, damit wir damit arbeiten können

01.
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath
--> mit dem Handle ein Share als Laufwerk anbinden
--> entspricht "net use P: \\Server1\Freigabe1"

01.
' Section which actually (re)names the Mapped Drive 
02.
Set objShell = CreateObject("Shell.Application")
--> ein weiteres Handle für einen Zugriff auf das Laufwerk erstellen

01.
objShell.NameSpace(strDriveLetter).Self.Name = strNewName
--> den Namen des Laufwerks ändern

01.
Wscript.Echo "Check : "& strDriveLetter & " for " & strNewName
--> einfache Stringausgabe zum Prüfen der Parameter, Hinweis

01.
WScript.Quit
--> Script beenden

Alles klar? Du mußt also einfach die drei Variablen oben ändern: strDriveLetter, strRemotePath und strNewName - dann sollte das funktionieren. Pass es also an, speicher das so in ein Textfile namens RenameDrive.vbs oder ähnlich und führ es aus. Aus Deinem Logonscript heraus kannst Du es mit dem Kommando "call RenameDrive.vbs" aufrufen (wenn es nicht im selben Ordner liegen sollte, pack den Pfad noch dabei).

Grüße,
Arne (fritzo)
Bitte warten ..
Mitglied: s.wiesenbacher
17.05.2005 um 20:08 Uhr
hi vielen dank für deine Mühe. Werd das gleich mal ausproboeren. sag dann bescheid ob es geklappt hat.
big thx
Bitte warten ..
Mitglied: Babu
24.01.2007 um 13:48 Uhr
Hallo,

ich hab grade eben Dein Skript ausprobiert. Hab es, so wie beschrieben eins zu eins übernommen. Bis zur Zeile 20 funktioniert alles reibungslos. Dann erhalte ich eine Windows Fehlermeldung "Fehler: Objekt erforderlich: NameSpace(...)"

Ich bin ein absoluter vbs Laie, aber für mich hört sich dass an, als hätte ich eine Variable in den Zeilen zuvor nicht richtig definiert, was ich allerdings getan habe.
Bitte warten ..
Mitglied: Schnacker
02.03.2007 um 21:09 Uhr
Kann mir das jemand erklären: Das Skript läuft bei fast allen Rechnern sauber durch. Nur bei einem wird statt "Buero-Daten" meistens (aber nicht immer) "daten auf server" (Y angezeigt. Das ist eben komischerweise nur manchmal der Fall. Habe mich codeseitig (allein schon aus Unkenntnis) eng an die Vorlage gehalten. Nur die Abfrage zum Schluß habe ich auskommentiert weil das auf Dauer nervt. Mache ich was falsch oder ist beim Rechner was nicht richtig?
Hier der Code:

01.
' VBScript to map a network drive. 
02.
' Authors Guy Thomas and Barry Maybury 
03.
' Version 1.3 - January 23rd 2005 
04.
' ----------------------------------------' 
05.
'Option Explicit 
06.
Dim objNetwork, strDrive, objShell, objUNC 
07.
Dim strRemotePath, strDriveLetter, strNewName 
08.
09.
 
10.
strDriveLetter = "Y:" 
11.
strRemotePath = "\\server\daten" 
12.
strNewName = "Buero-Daten" 
13.
 
14.
' Section to map the network drive 
15.
Set objNetwork = CreateObject("WScript.Network") 
16.
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath 
17.
 
18.
' Section which actually (re)names the Mapped Drive 
19.
Set objShell = CreateObject("Shell.Application") 
20.
objShell.NameSpace(strDriveLetter).Self.Name = strNewName 
21.
 
22.
'Wscript.Echo "Check : "& strDriveLetter & " for " & strNewName 
23.
WScript.Quit 
24.
 
25.
' End of script.
Bitte warten ..
Mitglied: fritzo
03.03.2007 um 12:19 Uhr
Hi,

eventuell funktioniert "objShell.NameSpace(strDriveLetter).Self.Name = strNewName" nicht, weil er mit MapNetworkDrive noch nicht durch ist. Versuch mal, vor dem Umbenennen eine Pause einzufügen --> "Wscript.Sleep 3000"

@Babu
Welche Version des WSH ist bei Dir installiert? 5.6?
Bitte warten ..
Mitglied: Babu
06.03.2007 um 12:27 Uhr
Hi Fritzo,

hab das Problem anderweitig (mit einer Batch Datei und einigen Registry-Einträgen) gelöst. Ich hab in anderen Foren rausgefunden, daß es wohl an meiner WSH Version liegt. Leider weiß ich nicht wo ich das nachschauen kann. Wie gesagt, bin ein absoluter Laie. Betriebssystem ist Windows 2000 Professional, falls Dir das was nutzt.

Gruß
BaBu
Bitte warten ..
Mitglied: fritzo
06.03.2007 um 23:37 Uhr
W2K hat soweit ich weiß eine niedrigere Version. Du kannst Dir die Version ausgeben lassen - öffne mal mit "cmd.exe" eine Dosbox und gib da "cscript" ein und drück Return - in der folgenden Ausgabe sollte ganz oben die Versionsnummer des Windows Script Hosts genannt sein.

Hier kannst Du den WSH 5.6 downloaden, falls Du willst: Download WSH 5.6

Grüße,
fritzo
Bitte warten ..
Mitglied: Babu
07.03.2007 um 07:06 Uhr
Hi Fritzo,

vielen Dank. Wieder was gelernt...........! Ich hab die Version 5.6 bereits. Das heißt Dein Script müsste, rein technisch gesehen, funktionieren oder?

Gruß
Babu
Bitte warten ..
Mitglied: Schnacker
07.03.2007 um 22:51 Uhr
@fritzo:
Die Pause wars, ganz ans Ende vom Skript eingefügt, klappt es jetzt. Danke!

5min später:
Ha, zu früh gefreut! Wenn ich das Laufwerk (Bsp. X öffne und wieder schließe, ist wieder "Daten auf server... " zu lesen. Es ist doch zum Mäusemelken. Was kann das denn man bloß sein?
Bitte warten ..
Mitglied: fritzo
08.03.2007 um 19:23 Uhr
Hi Fritzo,

vielen Dank. Wieder was gelernt...........!
Ich hab die Version 5.6 bereits. Das
heißt Dein Script müsste, rein
technisch gesehen, funktionieren oder?
Gruß Babu

Rein technisch ja. Bei mir funktionierts. Wir werden aber wahrscheinlich so zuviel Zeit mit der Suche verschwenden. Manchmal ist es schlauer, einfach was alternatives zu versuchen. Versuch mal dieses Script; es ist einfacher und sollte daher besser funktionieren:
01.
strDrive = "P:"  
02.
strPath = "\\server\share" 
03.
boolPersistent = True ' True = Persistent ; False = Not Persistent 
04.
set objNetwork = WScript.CreateObject("WScript.Network") 
05.
objNetwork.MapNetworkDrive strDrive, strPath, boolPersistent 
06.
WScript.Echo "Drive gemappt"
Bitte warten ..
Mitglied: fritzo
08.03.2007 um 19:27 Uhr
Ha, zu früh gefreut! Wenn ich das
Laufwerk (Bsp. X öffne und wieder
schließe, ist wieder "Daten auf
server... " zu lesen. Es ist doch zum
Mäusemelken. Was kann das denn man
bloß sein?

@Schnacker
Wirklich keinen Plan; ich kriege es hier nicht nachgestellt.

Gruß
fritzo
Bitte warten ..
Mitglied: fritzo
08.03.2007 um 19:42 Uhr
Wegen des Umbenennens - habt ihr das Posting von gemini gelesen, das auf http://www.mcseboard.de/showthread.php?threadid=22357 verweist, wo erklärt ist, wie man die gemappten Drives mittels regkey umbenennt?
Bitte warten ..
Mitglied: Babu
09.03.2007 um 08:29 Uhr
Ja hab ich gelesen. Hab das ganze in eine Batch-Datei gepackt. Diese wird bei mir per GPO verteilt. Funktioniert alles super!
Danke trotzdem für Deine Mühe mit dem neuen Skript. Wenn ich mal wieder Luft hab probier ich es aus.
Bitte warten ..
Mitglied: Schnacker
09.03.2007 um 13:16 Uhr
Bei mir geht es nicht. Er vergißt die Einstellungen (auch wenn man sie bei Mountpoints2 manuell einträgt) nach kurzer Zeit und dann heißt es wieder "xxx auf Server". Da das aber mit dem Skript nix zu tun hat. werde ich mal mein Problem in einem neuen Fred anprangern.
Danke allen für die bereits geleistete Hilfe
Bitte warten ..
Mitglied: konces
29.12.2010 um 12:10 Uhr
hallo zusammen,

das scrpt von frizto ist genial, endlich kann ich meine netzlaufwerke umbenennen,
allerdings würde ich es gerne um weitere netzlaufwerke erweitern, da ich keine ahnung
habe von vbs wäre es super, wenn mir jemand sagen könnte, wie das script ausehen
sollte, des weiteren wäre es super, wenn man vorher abfragen würde, ob die
laufwerke vorhanden sind, und nur verbunden werden soll, wenn das netzlaufwerk
nicht existiert, macht ja sonst kein sinn. momentan sieht es so aus:
01.
' NameDrive.vbs 
02.
' VBScript to map a network drive. 
03.
' Authors Guy Thomas and Barry Maybury 
04.
' Version 1.3 - January 23rd 2005 
05.
' ----------------------------------------' 
06.
07.
Option Explicit 
08.
Dim objNetwork, strDrive, objShell, objUNC 
09.
Dim strRemotePath, strDriveLetter, strNewName 
10.
11.
strDriveLetter = "Z:" 
12.
strRemotePath = "\\192.168.1.100\arbeit" 
13.
strNewName = "ARBEIT" 
14.
 
15.
' Section to map the network drive 
16.
Set objNetwork = CreateObject("WScript.Network") 
17.
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath 
18.
 
19.
' Section which actually (re)names the Mapped Drive 
20.
Set objShell = CreateObject("Shell.Application") 
21.
objShell.NameSpace(strDriveLetter).Self.Name = strNewName 
22.
 
23.
Wscript.Echo "Check : "& strDriveLetter & " for " & strNewName 
24.
WScript.Quit 
25.
 
26.
' End of script.
Bitte warten ..
Mitglied: fritzo
29.12.2010 um 15:57 Uhr
Hallo, hier fritzo.

Um mehrere Laufwerke anzubinden, könntest Du mehrere Scripts erstellen. Eleganter aber ist es, wenn man das alles in einem einzigen Script macht, und zwar so:

Als erstes lagern wir die Routine, mit der die Laufwerke angebunden werden, in eine Subroutine (Sub) aus und benennen diese "MapDrive".
Diese Subroutine füttern wir mit dem Laufwerksbuchstaben (drv) und dem Pfad (drvpath).
Im Hauptteil des Scripts brauchen wir nun nur noch die Subroutine aufrufen und jeweils das Laufwerk und den Pfad als Argument mitzugeben.

Unten das fertige Script - Du mußt nur noch die Daten für die Laufwerke entsprechend ändern, also diese Zeilen hier:
MapDrive "I:", "\\192.168.1.100\bilder", "Bilder"

Wenn Du mehr Laufwerke anbinden willst, füg eine weitere dieser Zeilen ein und ändere sie für Deine Belange um. Wenn Du weniger brauchst, lösch einfach die Zeilen, die Du nicht brauchst.

Ok, ich hoffe, Du kommst so zurecht - wenn nicht, meld Dich.

Viele Grüße,
fritzo

01.
' MapDrives.vbs 
02.
' by fritzo@stop1984.org in 12/2010 
03.
' VBScript to map multiple network drives 
04.
' enhancement of namedrive.vbs by Guy Thomas and Barry Maybury 
05.
' ----------------------------------------' 
06.
 
07.
Option Explicit 
08.
Dim objNetwork, objShell, 
09.
Dim drv, drvpath, drvname 
10.
 
11.
' Syntax is MapDrive "DriveLetter", "UNC-Path", "DriveName" 
12.
MapDrive "H:", "\\192.168.1.100\arbeit", "Arbeit" 
13.
MapDrive "I:", "\\192.168.1.100\bilder", "Bilder" 
14.
MapDrive "J:", "\\192.168.1.100\mp3", "Musik" 
15.
MapDrive "K:", "\\192.168.1.100\angeln", "DankeFuerDenFisch" 
16.
 
17.
' End of script. 
18.
Wscript.Quit 
19.
 
20.
 
21.
Sub MapDrive (drv, drvpath, drvname) 
22.
 
23.
	' Section to map the network drive 
24.
	Set objNetwork = CreateObject("WScript.Network") 
25.
	objNetwork.MapNetworkDrive drv, drvpath, asc (drvname) ' --> have to use asc to change drvname to ascii, otherwise you will get type conversion error 
26.
	 
27.
	' Section which actually (re)names the Mapped Drive 
28.
	Set objShell = CreateObject("Shell.Application") 
29.
	objShell.NameSpace(drv).Self.Name = drvname 
30.
 
31.
	Wscript.Echo "Check : "& drv & " for " & drvname 
32.
 
33.
	Set objNetwork = Nothing 
34.
	Set objShell = Nothing 
35.
 
36.
End Sub
[Edit Biber] Ich finde es schöner mit Codeformatierung.[/Edit]
Bitte warten ..
Mitglied: konces
29.12.2010 um 21:02 Uhr
hallo fritzo,

erstmal vielen Dank für Deine schnelle Hilfe

ich habe jetzt mal Deinen Code getestet, allerdings erhalte ich noch
eine Fehlermeldung:

Skript: D:\test.vbs
Zeile: 8
Zeichen: 26
Fehler: Bezeichner erwartet
Code: 800A03F2
Quelle: Kompilierungsfehler in Microsoft VBScript.

Aber vielleicht sage ich Dir noch kurz was ich vorhab:

- prüfe zuerst ob folgende Netzlaufwerke vorhanden sind:

Laufwerk Z: \\192.168.1.100\arbeit
Laufwerk Y \\192.168.1.100\bilder

wenn ja, mache nichts. wenn nein, mappe bitte oben aufgeführten
netzlaufwerke, und benenne diese bitte um:

Z: ARBEIT
Y: BILDER
Bitte warten ..
Mitglied: fritzo
30.12.2010 um 16:53 Uhr
Hallo konces,

Fehler beseitigt (das Komma am Ende von Zeile 8 war zuviel) und die beiden von Dir genannten Laufwerke sind jetzt drin. Wenn die Laufwerke bereits vorhanden sind, passiert nichts; wenn sie nicht vorhanden sind, werden die Shares angebunden.

hf,
fritzo

01.
' -------------------------------------------------------' 
02.
' MapDrives.vbs 
03.
' by fritzo@stop1984.org in 12/2010 
04.
' VBScript to map multiple network drives 
05.
' enhancement of namedrive.vbs by Guy Thomas and Barry Maybury 
06.
' -------------------------------------------------------' 
07.
Option Explicit 
08.
Dim objNetwork, objShell, objFile 
09.
Dim drv, drvpath, drvname 
10.
 
11.
Set objNetwork = CreateObject("WScript.Network") 
12.
Set objShell = CreateObject("Shell.Application") 
13.
Set objFile = CreateObject("Scripting.FileSystemObject")	 
14.
 
15.
MapDrive "Z:", "\\192.168.1.100\arbeit", "Arbeit" 
16.
MapDrive "Y:", "\\192.168.1.100\bilder", "Bilder" 
17.
 
18.
Set objNetwork = Nothing 
19.
Set objShell = Nothing 
20.
Set objFile = Nothing 
21.
Wscript.Quit 
22.
 
23.
Sub MapDrive (drv, drvpath, drvname) 
24.
	If objFile.DriveExists(drv) Then 
25.
		WScript.Echo "Drive already exists" 
26.
		Exit Sub 
27.
	Else 
28.
		objNetwork.MapNetworkDrive drv, drvpath, asc (drvname) 
29.
		objShell.NameSpace(drv).Self.Name = drvname 
30.
		Wscript.Echo "Check : "& drv & " for " & drvname 
31.
	End If 
32.
End Sub
Bitte warten ..
Mitglied: GT6VSBBBB
15.11.2011 um 16:19 Uhr
Hallo! Ich finde das Skript richtig praktisch, bei mir funktioniert alles bestens.
Leider kenne ich mich mit vbs nicht so gut aus, wäre es möglich eine PRÜFUNG einzubauen ala'

WENN SERVER ONLINE --> DANN MOUNTEN
WENN SERVER OFFLINE --> SKRIPT ABBRECHEN / NICHT MOUNTEN

Vielleicht kann jemand weiterhelfen? LG
Bitte warten ..
Mitglied: fritzo
30.01.2012 um 18:03 Uhr
Hallo,

da ich eine Anfrage von GWeidt erhalten habe mit der Bitte, seine Version des Mapping-Scripts so zu ändern, daß es zusätzlich
1. erst prüft ob das Netzwerk aktiv ist..
2. ob das Laufwerk bereits belegt ist..

... hier eine überarbeitete Version.

Bitte vor Einsatz in der Produktion testen, ich bin hier momentan an einem Standalone-Rechner.

Gruß,
fritzo


' schnipp

Option Explicit

' Variablen dimensionieren
DIM objNetwork, objShell
DIM strDrive, strRemotePath, strServer
DIM strNewName, colAllDrives
DIM i, AlreadyConnected
DIM objShellApp

' Variablen belegen
strDrive = "X:"
strServer = "Server"
strNewName = "sharename"
strRemotePath = "\\" & strServer & "\share"

' Objekte referenzieren
Set objNetwork = CreateObject("WScript.Network")
Set colAllDrives = objNetwork.EnumNetworkDrives()
Set objShellApp = CreateObject("Shell.Application")

'
' Loop: sind wir am Netz?
' Wenn nein, 1000ms warten und erneut prüfen
'
Do While Online (strServer) = False
WScript.Sleep 1000
Loop

'
' Prüfen, ob Laufwerk X: bereits belegt ist
'
AlreadyConnected = False
For i = 0 To AllDrives.Count - 1 Step 2
If AllDrives.Item(i) = strDrive Then AlreadyConnected = True
Next

'
' AlreadyConnected = True = Laufwerk bereits belegt
'
If AlreadyConnected = True Then
objNetwork.RemoveNetworkDrive strDrive ' diese beiden Zeilen auskommentieren
WScript.Sleep 2000 ' 2000ms Pause ' wenn nichts passieren soll
Else
'
' AlreadyConnected = False = Laufwerk bereits belegt
'
objNetwork.MapNetworkDrive strDrive, strRemotePath, false, "Benutzername der Freigabe", "Passwort"
' 2000ms Pause
WScript.Sleep 2000
' Netzlaufwerk umbenennen
objShellApp.NameSpace(strDrive).Self.Name = strNewName
End if

' Objekte destruieren
Set objShell = Nothing
Set objNetwork = Nothing
Set objShellApp = Nothing

' Script Ende
WScript.Quit


'
' Funktionen
'

Function Online(strComputer)
DIM wmiQuery, objWMIService, objPing, objStatus
wmiQuery = "Select * From Win32_PingStatus Where Address = '" & strComputer & "'"

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set objPing = objWMIService.ExecQuery(wmiQuery)
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) Or objStatus.Statuscode<>0 Then
Online = False
Else
Online = True
End If
Next
End Function

' schnipp
Bitte warten ..
Mitglied: fritzo
30.01.2012 um 18:07 Uhr
Nachsatz: Ansonsten ein kleiner Tipp: steigt um auf MS PowerShell v2.0, wenn Ihr könnt.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

Ähnliche Inhalte
LAN, WAN, Wireless
gelöst HP Switches - Frage zu Spanning Tree bzw. Loop Back Protection (12)

Frage von chfran zum Thema LAN, WAN, Wireless ...

Hyper-V
Grundsatz Frage Anbindung Hyper V Hosts ans Netzwerk (7)

Frage von Eifeladmin zum Thema Hyper-V ...

Windows Netzwerk
gelöst Frage zu den Netzwerkfreigaben mit Bild (8)

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

Windows Userverwaltung
gelöst Anmeldeskript fragt für das mappen nach einem User und Pw unterdrücken (9)

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

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

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

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

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

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...