[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1996
  • Last Modified:

Drive space info on remote server in VB.NET?

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
HatchIT
Asked:
HatchIT
  • 2
  • 2
1 Solution
 
sj_hicksCommented:
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
 
armoghanCommented:
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
 
sj_hicksCommented:
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
 
armoghanCommented:
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
 
HatchITAuthor Commented:
Thanks for that, sj_hicks.  Now that I know where to look, I should be able to sort this out.
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now