Yup, this code works for me:


Code:
Private Sub Form_Load()


Form1.AutoRedraw = True 'Required for you to see the text on the form.

Form1.Print ShowAvailableSpace("c:")
Form1.Print ShowAvailableSpace("p:")
Form1.Print ShowAvailableSpace("\\ks1572ln01\c$")
Form1.Print ShowAvailableSpace("\\ks1572ln01\d$")
Form1.Print ShowAvailableSpace("\\ks1572ln01\public")

End Sub



Public Function ShowAvailableSpace(drvPath) As String

Dim fs, d, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(drvPath))
s = "Drive " & UCase(drvPath) & " - "
s = s & d.VolumeName & vbCrLf
s = s & "Available Space: " & FormatNumber(d.AvailableSpace / 1024, 0)
s = s & " Kbytes"
ShowAvailableSpace = s

End Function




In the example above, C is my local hard drive, P is mapped to \\ks1572ln01\public, and D$ is the drive on which public resides. The results of the queries, to p, public, and D$ all returned the same values. C and C$ gave the expected values.

So no need to map drives. You only need to get the list of computers and hard code those in quick and dirty. And the NET command will do that for you as I illustrated above.