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 Frage zu Anmeldeskript

Mitglied: s.wiesenbacher

s.wiesenbacher (Level 1) - Jetzt verbinden

16.05.2005, aktualisiert 29.12.2010, 26003 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 ..
Ähnliche Inhalte
Cloud-Dienste
Frag zu sftp und rsync
gelöst Frage von qwertz1Cloud-Dienste2 Kommentare

Hallo, ich habe eine Frage zu rsync im Zusammenspiel mit sftp. Ein Kunde hat sich bei Strato einen Online-Speicher ...

Batch & Shell
Anmeldeskript - Anmeldezeiten
Frage von Goldenone95Batch & Shell13 Kommentare

Hallo Community, ich will ein Skript verwenden um die Anmeldezeiten festzuhalten. Grundsätzlich funktioniert das auch schon ganz gut, jedoch ...

Netzwerkprotokolle
Anmeldeskript im Netzerk
Frage von ManneKLNetzwerkprotokolle3 Kommentare

Hallo, Habe ein NAS ins Netzwerk eingebunden und das Anmeldeskript - bat. Datei entsprechende Einträge z. Bsp: NET USE ...

Windows Server

Anmeldeskript in der Computerkonfiguration möglich?

Frage von goalgetter123Windows Server1 Kommentar

Guten Tag, ich habe schon erfolgreich Skripte angelegt, welche in eine Textdatei die Zeitangaben beim Hoch- und Herunterfahren der ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 3 TagenHumor (lol)6 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 4 TagenErkennung 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 7 TageniOS5 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 7 TageniOS5 Kommentare

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

Heiß diskutierte Inhalte
Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server23 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Windows Server
Kleine Umfrage: Windows Server Desktop oder Core?
Frage von doomfreakWindows Server18 Kommentare

Hey :) Ich wollte mal eine kleine Umfrage hier starten. Ich bin schon etwas länger auf dieser Seite hier ...

JavaScript
Javascript: WebSql
gelöst Frage von internet2107JavaScript17 Kommentare

Guten Morgen zusammen, zunächst einmal einen schönen dritten Advent. Ich habe ein Problem mit Javascript und WebSQL. Bisher habe ...

Microsoft
Lizenzplausibilisierung oder Spam?
Frage von lordimacMicrosoft14 Kommentare

Liebe Forengemeinde, uns erreichte die Tage eine Mail bezüglich einer Lizenzplausibilisierung durch einen Microsoft SAM Partner. Die Meldung im ...