ah3n0bar6us
Goto Top

VBS Scrip - Datenbankabfrage für Netz-Laufwerke spezifizieren

Hallo zusammen,

Ich habe folgenden Code:

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
Set colDrives = objWMIService.ExecQuery ("Select * from Win32_NetworkConnection",,48)  
For Each objDrive in colDrives
	On Error Resume Next
	VolumeLetter = UCase(objDrive.LocalName)
	Path = LCase(objDrive.RemotePath)
	Set colDisks = objWMIService.ExecQuery ("Select * from Win32_MappedLogicalDisk WHERE Name = '" & VolumeLetter & "'",,48)  
	For each objDisk in colDisks
		Dim Space 
		Space = FormatPercent(objDisk.FreeSpace / objDisk.Size,0)
		Dim Size 
		Size = FormatNumber(objDisk.Size / 1073741824,2,-1) & " GB "  
	Next
	Echo "[ " & VolumeLetter & " ] " &	Space & " frei auf " & Size  
Next

Hier werden alle Netz-Lw ausgelesen und ausgegeben.

Wie kann ich das jedoch auf bestimmte (in meinem Fall vorerst auf ein U: ) Netz-Lw eingrenzen?

Danke für eure Prog-Unterstützung

Grüße

Content-Key: 274211

Url: https://administrator.de/contentid/274211

Printed on: April 25, 2024 at 10:04 o'clock

Mitglied: 114757
Solution 114757 Jun 10, 2015 updated at 13:51:04 (UTC)
Goto Top
Probiers mal mit einer anderen Query
Set colDrives = objWMIService.ExecQuery ("Select * from Win32_NetworkConnection where LocalName = 'U:'",,48)  
Gruß jodel32
Member: Ah3n0bar6us
Ah3n0bar6us Jun 10, 2015 at 12:41:22 (UTC)
Goto Top
Hi Jodel,

bei dieser Abfrage werden keine Werte angezeigt. Wenn ich für
 '" & VolumeLetter & "'   
 'U:'   
einsetze ändert sich komischer Weise gar nichts. Die Ausgabe bleibt dabei, dass alle Lw angezeigt werden.
Mitglied: 114757
114757 Jun 10, 2015 updated at 12:46:09 (UTC)
Goto Top
Nö hier gehts einwandfrei ...
Member: emeriks
emeriks Jun 10, 2015 at 12:54:44 (UTC)
Goto Top
Ich nehme an, Du hast das "LocalName" übersehen .... (Statt "Name")

E.
Member: Ah3n0bar6us
Ah3n0bar6us Jun 10, 2015 updated at 13:04:28 (UTC)
Goto Top
Leider nein.
Ich habe die Zeile kopiert und ebenfalls einige Variationen mit Name/LocalName, U:/U oder auch Win32_NetworkConnection/Win32_MappedLogicalDisk ausprobiert.

Gibt es denn eine Alternative über eien If-Anweisung, bei der ich nur U: mit Echo ausgebe?
Member: bastla
bastla Jun 10, 2015 updated at 13:46:33 (UTC)
Goto Top
Hallo Ah3n0bar6us!
Gibt es denn eine Alternative über eien If-Anweisung, bei der ich nur U: mit Echo ausgebe?
Gegenfrage: Was enthält denn bei Dir nach der Zeile 5 die Variable "VolumeLetter"? face-wink

Grüße
bastla
Member: Ah3n0bar6us
Ah3n0bar6us Jun 10, 2015 at 13:52:17 (UTC)
Goto Top
Schussligkeitsfehler sogar beim Merhfachen hinschauen ^^
Ihr hattest Recht, vor allem Jodel32. Sorry für die verwirrung.
Es läuft =)

Ergebnis:
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
Set colDrives = objWMIService.ExecQuery ("Select * from Win32_NetworkConnection WHERE LocalName = 'U:' ",,48)  
For Each objDrive in colDrives
	On Error Resume Next
	VolumeLetter = UCase(objDrive.LocalName)
	Path = LCase(objDrive.RemotePath)
	Set colDisks = objWMIService.ExecQuery ("Select * from Win32_MappedLogicalDisk WHERE Name = '" & VolumeLetter & "'",,48)  
	For each objDisk in colDisks
		Dim Space 
		Space = FormatPercent(objDisk.FreeSpace / objDisk.Size,0)
		Dim Size 
		Size = FormatNumber(objDisk.Size / 1073741824,2,-1) & " GB "  
	Next
	Echo "U: " &	Space & " frei auf " & Size  
Next

Danke dafür!
Member: Ah3n0bar6us
Ah3n0bar6us Jun 10, 2015 at 13:53:37 (UTC)
Goto Top
Ich hatte die Falsche SQL Abfrage. Also wenn ich die erste Abfrage nehme, hält die Variable "VolumeLetter" lediglich das U: =)
Member: bastla
bastla Jun 10, 2015 at 14:06:10 (UTC)
Goto Top
Hallo Ah3n0bar6us!
hält die Variable "VolumeLetter" lediglich das U:
... womit sich mit etwas gutem Willen (und nur zur Not - die sinvollere Lösung hast Du ja bereits) vielleicht auch ein If-Statement hätte basteln lassen ... face-wink

Grüße
bastla