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

VBS vorhandene NetzLaufwerke auslesen

Mitglied: 53111

53111 (Level 1)

06.09.2007, aktualisiert 07.09.2007, 9997 Aufrufe, 8 Kommentare

Hi

wie kann ich mit VBS auslesen welche Netzlaufwerke vorhanden sind? Auch ein Prüfung ob ein bestimmtes Laufwerk vorhanden ist wäre schon schön?

ich habe folgendes

netzobjekt.RemoveNetworkDrive "N:", true, true
netzobjekt.mapnetworkdrive "N:", "\\..."

nun ist das Problem dass wenn kein Laufwerk N: vorhanden ist eine Fehlermeldung erscheint. ich möchte deshalb zuvor prüfen lassen ob das Laufwerk vorhanden ist. Falls es da ist wäre auch gut wenn der vorhandene Pfad des Laufwerkes gespeichert oder ausgegeben wird bevor man es löscht.

gruß saibonaut
Mitglied: bastla
06.09.2007 um 12:18 Uhr
Hallo saibonaut!

Aus der MS-Doku:
01.
Set WshNetwork = WScript.CreateObject("WScript.Network")
02.
Set oDrives = WshNetwork.EnumNetworkDrives
03.
WScript.Echo "Zuordnungen der Netzlaufwerke:"
04.
For i = 0 to oDrives.Count - 1 Step 2
05.
	WScript.Echo "Laufwerk " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
06.
Next
Grüße
bastla
Bitte warten ..
Mitglied: 53111
06.09.2007 um 14:22 Uhr
wieso geht das nicht mit -1?

wenn gar kein laufwerk vorhanden ist geht das programm ja dann nicht in den else teil. gibt es auch noch einen geschickteren weg wenn man mehrere laufwerke bearbeiten und verwenden will?

For i = -1 to test.Count - 1 Step 2


If test.Item(i) = "H:" Then

netzobjekt.RemoveNetworkDrive "H:", true, true

netzobjekt.mapnetworkdrive "H:", "\\Server2\Home\"&benutzername
wscript.Echo "if"

Else

netzobjekt.mapnetworkdrive "H:", "\\Server2\Home\"&benutzername
wscript.Echo "else"

End If
Next
Bitte warten ..
Mitglied: bastla
06.09.2007 um 16:07 Uhr
Hallo saibonaut!

wieso geht das nicht mit -1?
Ich nehme an, Du beziehst Dich auf Deinen Versuch mit dem Schleifenstartwert -1; wenn ja, dann musst Du berücksichtigen, dass es kein "test.item(-1)" gibt ...

gibt es auch noch einen geschickteren weg wenn man mehrere laufwerke bearbeiten und verwenden will?
Meinst Du zum Trennen und neu Verbinden der Laufwerke? Im Prinzip könntest Du einfach den Fehler beim Trennen eines gar nicht verbundenen Laufwerks mit einem "On Error Resume Next" abfangen, also etwa
01.
On Error Resume Next
02.
netzobjekt.RemoveNetworkDrive "H:", true, true
03.
On Error Goto 0 'um Fehler (zB beim Verbinden) wieder angezeigt zu bekommen
04.
netzobjekt.mapnetworkdrive "H:", "\\Server2\Home\"&benutzername
Wenn Du den Vorgang noch in ein Sub auslagerst, könnte das so aussehen:
01.
Set netzobjekt = WScript.CreateObject("WScript.Network")
02.
Verbinde "H:", "\\Server2\Home\"&benutzername
03.
Verbinde "O:", "\\Server1\Old"
04.
Verbinde "S:", "\\Server2\Sonstiges"
05.
 
06.
Sub Verbinde(Buchstabe, Pfad)
07.
On Error Resume Next
08.
netzobjekt.RemoveNetworkDrive Buchstabe, true, true
09.
On Error Goto 0
10.
netzobjekt.mapnetworkdrive Buchstabe, Pfad
11.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: 53111
06.09.2007 um 16:24 Uhr
hab es jetzt so gelöst:
scheint zu funktionieren
01.
Dim netzobjekt, benutzername, laufwerkarray 
02.
 
03.
 
04.
set netzobjekt=wscript.createobject("wscript.network")
05.
benutzername = netzobjekt.UserName
06.
 
07.
 
08.
Set test = netzobjekt.EnumNetworkDrives
09.
 
10.
laufwerkarray = Array("H:","X:","Z:")
11.
 
12.
	
13.
		
14.
	For i = 0 to test.Count - 1 Step 2
15.
 
16.
	
17.
		For j = 0 to UBound(laufwerkarray)	
18.
 
19.
 
20.
		
21.
			If test.Item(i) = laufwerkarray(j) Then
22.
 
23.
 				netzobjekt.RemoveNetworkDrive laufwerkarray(j), true, true 
24.
			
25.
 				wscript.Echo  test.Item(i) &" "& test.Item(i+1)   & " wurde entfernt und wird neu belegt!"
26.
		
27.
			End If
28.
		Next
29.
 
30.
	Next
31.
 
32.
 
33.
netzobjekt.mapnetworkdrive "H:", "\\Server2\Home\"&benutzername
34.
 
35.
netzobjekt.mapnetworkdrive "X:", "\\Server2\work"
36.
 
37.
netzobjekt.mapnetworkdrive "Z:", "\\Server2\apps"
[Edit Biber] Als Codeblock formatiert.[/Edit]
Bitte warten ..
Mitglied: bastla
06.09.2007 um 16:38 Uhr
Hallo saibonaut!

Ist zwar etwas sauberer, allerdings sind dadurch die Laufwerksbuchstaben redundant eingetragen ...

Vielleicht so:
01.
set netzobjekt=wscript.createobject("wscript.network")
02.
benutzername = netzobjekt.UserName
03.
set test = netzobjekt.EnumNetworkDrives
04.
 
05.
laufwerkarray = Array( _
06.
	"H:", "\\Server2\Home\"&benutzername", _ 
07.
	"X:", "\\Server2\work", _
08.
	"Z:", "\\Server2\apps")
09.
	
10.
For j = 0 to UBound(laufwerkarray) - 1 Step 2 
11.
	For i = 0 to test.Count - 1 Step 2
12.
		If test.Item(i) = laufwerkarray(j) Then
13.
			netzobjekt.RemoveNetworkDrive laufwerkarray(j), true, true
14.
			wscript.Echo test.Item(i) &" "& test.Item(i+1) & " wurde entfernt und wird neu belegt!"
15.
		End If
16.
	Next
17.
	netzobjekt.mapnetworkdrive laufwerkarray(j), laufwerkarray(j+1)
18.
Next
Grüße
bastla
Bitte warten ..
Mitglied: 53111
07.09.2007 um 08:27 Uhr
diese idee wir du hatte ich gestern auch. habe das jetzt so verwirklicht. die änderungen werden jetzt noch protokolliert und in einer datei gespeicher.
01.
Dim netzobjekt, benutzername, laufwerkarray 
02.
 
03.
 
04.
set netzobjekt=wscript.createobject("wscript.network")
05.
benutzername = netzobjekt.UserName
06.
 
07.
Name = "C:\Dokumente und Einstellungen\"&benutzername&"\Desktop\Info_zu_neuen_Netzlaufwerken.txt"
08.
 
09.
Set InfoDateiObjekt = CreateObject("Scripting.FileSystemObject")
10.
Set InfoDatei = InfoDateiObjekt.OpenTextFile(Name, 2, True)
11.
Set objFile = InfoDateiObjekt.GetFile(Name)
12.
 
13.
 
14.
Set test = netzobjekt.EnumNetworkDrives
15.
 
16.
laufwerkarray = Array(	"H:",_
17.
			"\\Server2\Home\"&benutzername,_
18.
			"X:",_
19.
			"\\Server2\work",_
20.
			"Z:",_
21.
			"\\Server2\apps"_
22.
		     )
23.
 
24.
 
25.
InfoDatei.WriteLine "Die folgenden Netzlaufwerke wurden gelöscht: "
26.
InfoDatei.WriteLine " "
27.
	
28.
		
29.
	For i = 0 to test.Count - 1 Step 2
30.
		For j = 0 to UBound(laufwerkarray)			
31.
			If test.Item(i) = laufwerkarray(j) Then
32.
 
33.
				
34.
			        InfoDatei.WriteLine test.Item(i) &" "& test.Item(i+1) 				
35.
 
36.
 
37.
 				netzobjekt.RemoveNetworkDrive laufwerkarray(j), true, true					
38.
			End If
39.
		Next
40.
	Next
41.
 
42.
 
43.
 
44.
netzobjekt.mapnetworkdrive laufwerkarray(0), laufwerkarray(1)
45.
 
46.
netzobjekt.mapnetworkdrive laufwerkarray(2), laufwerkarray(3)
47.
 
48.
netzobjekt.mapnetworkdrive laufwerkarray(4), laufwerkarray(5)
49.
	
50.
InfoDatei.WriteLine " "
51.
InfoDatei.WriteLine " "
52.
InfoDatei.WriteLine "Die gelöschten Netzlaufwerke wurden mit folgen Pfaden neu verbunden: "
53.
InfoDatei.WriteLine " "
54.
InfoDatei.WriteLine laufwerkarray(0) &" "& laufwerkarray(1) 	
55.
InfoDatei.WriteLine laufwerkarray(2) &" "& laufwerkarray(3) 	
56.
InfoDatei.WriteLine laufwerkarray(4) &" "& laufwerkarray(5) 	
57.
 
58.
InfoDatei.Close 
59.
 
werde nun mal testen ob sich das Script vom server aus ausführen lässt. habt ihr eine idee wie man unterbinden kann dass das script bei jedem login ausgeführt wird - es soll nur bei ersten login des users verwendet werden?

wie würde ich z.B.: /PERSISTENT:YES mit VBS realisieren


gruß
saibonaut
Bitte warten ..
Mitglied: 53111
07.09.2007 um 14:48 Uhr
hat jemand noch eine idee wie ich verhinder kann das das script bei jedem neuen login diese datei schreibt. ich möchte eigentlich nur beim ersten login des nutzer die datei schreiben lassen.
auch denkbar wäre das ganze script nur einmal beim ersten login des nutzers ablaufen zu lassen und die laufwerke dann /PERSISTENT:YES zu machen. wie mach ich das mit vbs?
Bitte warten ..
Mitglied: bastla
07.09.2007 um 20:23 Uhr
Hallo saibonaut!

hat jemand noch eine idee wie ich verhinder kann das das script bei jedem neuen login diese datei schreibt.
Vielleicht, indem Du vorweg überprüfst, ob sie bereits existiert?

/PERSISTENT:YES zu machen. wie mach ich das mit vbs?
01.
netzobjekt.mapnetworkdrive laufwerkarray(0), laufwerkarray(1), True
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
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 ...

Windows Netzwerk
Netzlaufwerk verschwindet immer
Frage von crack24Windows Netzwerk4 Kommentare

Hallo, wir haben die Woche eine neue Maschine für die Produktion bekommen. Deren Rechner mit Windows XP soll auf ...

Windows 10
VPN Netzlaufwerk leer
Frage von EdaseinsWindows 106 Kommentare

Hallo Leute, Ich habe einen Kunden der Verbindet sich nach Leipzig per Windows VPN auf seinen Server. Dort nutzt ...

Netzwerkmanagement
Netzlaufwerk und Internet
gelöst Frage von geocastNetzwerkmanagement11 Kommentare

Hallo Zusammen Ich wollte euch mal fragen, wie eure Erfahrungen dazu sind. Wir werden in Zukunft recht viele Mitarbeiter ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)3 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 3 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 6 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 6 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
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore29 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server21 Kommentare

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

Linux
Info Monitor für eine Schule
gelöst Frage von CAT404Linux13 Kommentare

Moin, ich möchte einen Infomonitor betreiben; derzeit läuft da ein Windows 10 Rechner bei dem Firefox beim Start in ...