Solved

Drive space info on remote server in VB.NET?

Posted on 2004-09-21
5
1,835 Views
Last Modified: 2012-06-21
After going through alot of MSDN and EE, I can't seem to find an answer to my problem.  I'm trying to write a VB.NET app that will check on various things on servers, and return all the information in an Excel spreadsheet.  I've got most of it working, but can't seem to figure out how to get the drive information from a remote computer.  I got it to check my local PC with the following code:

  Sub CheckDiskSpace(ByVal strServer As String)

    Dim fsoDrive As Scripting.FileSystemObject
    Dim drvDrives As Scripting.Drives
    Dim drvDrive As Scripting.Drive
    Dim FreeSpace, PercentUsed
    Dim Rindex, Cindex

    exlRow = exlRow + 2
    exlSheet.Range(exlRow & ":" & exlRow).Font.Bold = True
    exlSheet.Range(exlRow & ":" & exlRow).HorizontalAlignment = xlHAlignCenter
    exlSheet.Range("A" & exlRow).Value = "Drive"
    exlSheet.Range("B" & exlRow).Value = "Free Space"
    exlSheet.Range("C" & exlRow).Value = "% Available"

    fsoDrive = CreateObject("Scripting.FileSystemObject", strServer)
    drvDrives = fsoDrive.Drives
    lblStatus.Text = "Checking drives"

    For Each drvDrive In drvDrives
      ' If the drive is a hard disk, check space; skips CD-ROMs and other drive types
      If drvDrive.DriveType = Scripting.DriveTypeConst.Fixed Then
        exlRow = exlRow + 1
        exlSheet.Range("A" & exlRow).Value = drvDrive.DriveLetter & ":"
        exlSheet.Range("B" & exlRow).NumberFormat = "#,##0.00"
        exlSheet.Range("B" & exlRow).Value = drvDrive.AvailableSpace / 1024 / 1024
        exlSheet.Range("C" & exlRow).NumberFormat = "0.00%"
        exlSheet.Range("C" & exlRow).Value = drvDrive.AvailableSpace / drvDrive.TotalSize
      End If
    Next

  End Sub

It seems like it tries to check the remote computer (I've tried on both Win2K Pro and Server computers), but fails.  Can anyone fix this, or tell me a better way to go about doing the same thing?  Most of the VB objects I've found will let you manipulate files and folders, but I can't find anything to get drive information.
0
Comment
Question by:HatchIT
  • 2
  • 2
5 Comments
 
LVL 7

Accepted Solution

by:
sj_hicks earned 50 total points
ID: 12109817
You can do it with WMI.  Check out the Win32_LogicalDisk class - it will give you lots of info including drive letter and free disk space.
0
 
LVL 18

Expert Comment

by:armoghan
ID: 12109822
Probably, I dont get it correctly.
Unless and untill we have full access to the network system and logged into it, we can just get the information of share, not the Drives?
Can we do it using windows?
0
 
LVL 7

Expert Comment

by:sj_hicks
ID: 12109861
You can run WMI queries against remote computers.  The account you are running the application to check disk space from needs to have access to the remote computer.  If it does, then you can query all WMI info and even run WMI methods to do groovy systems admin stuff.

If you are trying to get this info from a remote computer and you don't have the required access, any method will fail.
0
 
LVL 18

Expert Comment

by:armoghan
ID: 12110101
ohh i c
Interesting..
I looked into it and found this article.
this may be interesting for the author
http://www.publicjoe.f9.co.uk/csharp/articles/csh-wmi.html
0
 
LVL 1

Author Comment

by:HatchIT
ID: 12165543
Thanks for that, sj_hicks.  Now that I know where to look, I should be able to sort this out.
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This tutorial demonstrates one way to create an application that runs without any Forms but still has a GUI presence via an Icon in the System Tray. The magic lies in Inheriting from the ApplicationContext Class and passing that to Application.Ru…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question