mowgly
Goto Top

Netzwerklaufwerke abfragen

Ziel : Gemappte Linuxverzeichnisse abfragen nach belegtem Speicherplatz in BgInfo

Hallo,
ich habe es gehabt und nun ist es weg... 4ever face-sad

Ich habe bginfo drauf und neuinstaliert und es hat mit vorher alle Netzwerkfreigaben und deren belegten Speicher angezeigt.
Der Server ist ein Linux-Samba Server : IP: 192.168.1.90
Die Verzeichnisse liegen auf einer HDd. D.h,. wenn feier Speicherplatz angezeigt wird, wird bei allen gemappen Laufwerken der gleiche Platz angezeigt. Was für mich interessant ist, ist die Größe des eigentlichem Mappings...
P: für programme , H: Home etc. und wieviel Platz ist steht dem Mapping noch zur Verfügung und
das in erner vernünfigten Anzeige in GB und nicht in Bytes face-smile evtl. kann da jemand helfen? unter der WMI-Abfrage bekomme ich es nicht hin Beitrag im Sysinternal Forum Da hatte dem User keiner geantwortet.

Hier steht das man (Size / 1024 / 1024 / 1024) zu Abfrage SELECT Size FROM Win32_DiskDrive verwenden soll doch ich bekome dort die Meldung (Query not in form 'SELECT xxx FROM ...') => geht nicht.
Evtl kann es einer mit VBS realisieren...

Vielen Dank im voraus für eure Hilfe ..

Gruß
Mowgly

Content-Key: 92999

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

Printed on: April 19, 2024 at 11:04 o'clock

Member: iammixi
iammixi Jul 28, 2008 at 01:08:44 (UTC)
Goto Top
Hi Mowgly,

ich vermute du hast den SELECT falsch formuliert. Er heißt richtig:

SELECT Size / 1024 / 1024 / 1024 FROM Win32_DiskDrive

Michi
Member: Mowgly
Mowgly Jul 28, 2008 at 19:08:01 (UTC)
Goto Top
nö geht leider nicht .. gleiche Meldung
(Query not in form 'SELECT xxx FROM ...')

ein SELECT 'Size / 1024 / 1024 / 1024' FROM Win32_DiskDrive
und
'SELECT Size / 1024 / 1024 / 1024 FROM Win32_DiskDrive'

geht leider auch nicht face-sad
Member: iammixi
iammixi Jul 29, 2008 at 16:22:23 (UTC)
Goto Top
Hallo Mowgly,

hier deine Frage in VBS beantwortet:

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

For Each strComputer In arrComputers
Set objWMIService = GetObject("winmgmts:\\localhost\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems
WScript.Echo "Availability: " & objItem.Availability
WScript.Echo "CreationClassName: " & objItem.CreationClassName
WScript.Echo "Description: " & objItem.Description
WScript.Echo "DeviceID: " & objItem.DeviceID
WScript.Echo "InterfaceType: " & objItem.InterfaceType
WScript.Echo "MediaType: " & objItem.MediaType
WScript.Echo "Size: " & (objItem.Size / 1024 / 1024 / 1024) & " GB"
WScript.Echo "Status: " & objItem.Status
WScript.Echo "StatusInfo: " & objItem.StatusInfo
WScript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
WScript.Echo "SystemName: " & objItem.SystemName
WScript.Echo
Next
Next

Es listet schlicht alle Laufwerke deines Rechners auf dem du es ausführst.

Michi
Member: Mowgly
Mowgly Jul 29, 2008 at 19:51:44 (UTC)
Goto Top
nope nicht wirklich.... es sollte auch nicht die Localhostlaufwerke auflisten sondern die von einem Localen Server. Vielleicht hätte es nicht Win32_DiskDrive sondern Win32_LogicalDisk sein sollen das listet wirklich alle auf.... es verwirrt etwas sorry.
Evtl funktioniert dein Script ja bei dir aber unter dem bginfo geht es nicht... es zeigt nichtmal einen Fehler an... Danke dir aber trotzdem für deine Mühe..

Gruß
Mowgly
Member: bastla
bastla Jul 29, 2008 at 22:56:28 (UTC)
Goto Top
... nur als Anmerkung: Bei Verwendung von VBScript für "BGInfo" nicht "WScript.Echo", sondern nur "Echo" für die Ausgabe verwenden ...

... wie etwa in diesem Beispiel:
LW = "H:"  
K = "GB"  
EH = 1024*1024*1024

Set fso = CreateObject("Scripting.FileSystemObject")  
Set d = fso.GetDrive(LW)
Echo "Verwendet:  " & Int(fso.GetFolder(LW).Size/EH) & " " & K & "; " _  
    & "frei: " & Int(d.FreeSpace/EH) & " " & K  
... oder doch als Übersicht über alle Netzlaufwerke:
K = "GB"  
EH = 1024*1024*1024

Set fso = CreateObject("Scripting.FileSystemObject")  
For Each d In fso.Drives
    If d.IsReady Then
        If d.DriveType = 3 Then
        Out = Out & vbCrLF & vbTab _
            & d.DriveLetter & ":\ " _  
            & FormatNumber(fso.GetFolder(d.DriveLetter & ":\").Size/EH,2) _  
            & " " & K & "; frei: " _  
            & FormatNumber(d.FreeSpace/EH,2) _
            & " " & K  
        End If
    End If
Next
Echo Mid(Out,4)
Grüße
bastla
Member: Mowgly
Mowgly Jul 30, 2008 at 21:53:32 (UTC)
Goto Top
Super ... vielen Dank das ging... Mein Held :D

Den anderen aber auch vielen Dank für die Bemühungen.