53111
Sep 06, 2007, updated at Sep 07, 2007 (UTC)
13614
8
0
VBS vorhandene NetzLaufwerke auslesen
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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 68053
Url: https://administrator.de/contentid/68053
Printed on: April 24, 2024 at 23:04 o'clock
8 Comments
Latest comment
Hallo saibonaut!
Aus der MS-Doku:
Grüße
bastla
Aus der MS-Doku:
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
WScript.Echo "Zuordnungen der Netzlaufwerke:"
For i = 0 to oDrives.Count - 1 Step 2
WScript.Echo "Laufwerk " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
Next
Grüße
bastla
Hallo saibonaut!
Wenn Du den Vorgang noch in ein Sub auslagerst, könnte das so aussehen:
Grüße
bastla
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 etwaOn Error Resume Next
netzobjekt.RemoveNetworkDrive "H:", true, true
On Error Goto 0 'um Fehler (zB beim Verbinden) wieder angezeigt zu bekommen
netzobjekt.mapnetworkdrive "H:", "\\Server2\Home\"&benutzername
Set netzobjekt = WScript.CreateObject("WScript.Network")
Verbinde "H:", "\\Server2\Home\"&benutzername
Verbinde "O:", "\\Server1\Old"
Verbinde "S:", "\\Server2\Sonstiges"
Sub Verbinde(Buchstabe, Pfad)
On Error Resume Next
netzobjekt.RemoveNetworkDrive Buchstabe, true, true
On Error Goto 0
netzobjekt.mapnetworkdrive Buchstabe, Pfad
End Sub
Grüße
bastla
Hallo saibonaut!
Ist zwar etwas sauberer, allerdings sind dadurch die Laufwerksbuchstaben redundant eingetragen ...
Vielleicht so:
Grüße
bastla
Ist zwar etwas sauberer, allerdings sind dadurch die Laufwerksbuchstaben redundant eingetragen ...
Vielleicht so:
set netzobjekt=wscript.createobject("wscript.network")
benutzername = netzobjekt.UserName
set test = netzobjekt.EnumNetworkDrives
laufwerkarray = Array( _
"H:", "\\Server2\Home\"&benutzername", _
"X:", "\\Server2\work", _
"Z:", "\\Server2\apps")
For j = 0 to UBound(laufwerkarray) - 1 Step 2
For i = 0 to test.Count - 1 Step 2
If test.Item(i) = laufwerkarray(j) Then
netzobjekt.RemoveNetworkDrive laufwerkarray(j), true, true
wscript.Echo test.Item(i) &" "& test.Item(i+1) & " wurde entfernt und wird neu belegt!"
End If
Next
netzobjekt.mapnetworkdrive laufwerkarray(j), laufwerkarray(j+1)
Next
Grüße
bastla
Hallo saibonaut!
Grüße
bastla
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?
netzobjekt.mapnetworkdrive laufwerkarray(0), laufwerkarray(1), True
Grüße
bastla