Go Premium for a chance to win a PS4. Enter to Win

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

Disk Quota With ASP

Hi,

To cut a long story short, I need an ASP page to give me the space/quota for a mapped network drive. So far I have this (i'm no expert):

<%

Set fsoObject = Server.CreateObject("Scripting.FileSystemObject")
Set hdrv = fsoObject.GetDrive (fsoObject.GetDriveName("H:\"))
TotalQuata = FormatNumber(hdrv.TotalSize / 1024000,0)
FreeQuota = FormatNumber(hdrv.Freespace / 1024000,0)
Response.Write(TotalQuota)
Response.Write(FreeQuota)

%>

This works fine for a local drive (i.e. C) but when I try to change it to H (our mapped home drive letter), it gives this error:

Microsoft VBScript runtime error '800a0044'

Device unavailable

Is there something really easy i'm missing, or is it not possible to do this with an ASP page???

Thanks! ;-)
0
w00tastic
Asked:
w00tastic
  • 6
  • 5
  • 3
  • +3
1 Solution
 
davidlars99Commented:
"H:" is a network drive right...? then you need to do this

Set WshNetwork = server.CreateObject("WScript.Network")
set NetDrive=WshNetwork.MapNetworkDrive("H:\", "\\Server\Share" )   'second parameter is optional

but I don't think you can get size of the network drive.




0
 
davidlars99Commented:
try this too...

dim fs,d,s
set fs=Server.CreateObject("Scripting.FileSystemObject")
set d=fs.GetDrive("H:")
s=d.totalsize
0
 
w00tasticAuthor Commented:
davidlars99,

Point 1: Wouldn't that be to map a network drive?, if so, the drive is already mapped at log on to \\studentserver\studentname$
Point 2: Same error as I was getting before.

Thanks anyway!
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
travisjhallCommented:
You don't have the drive already mapped on the server, where the ASP is running. You only have it mapped on the client. Remember, ASP stands for Active SERVER Pages. Nothing on the client computer matters when running ASP code.
0
 
w00tasticAuthor Commented:
You're right, I guess my head isn't screwed on straight today.
I thought it was working, but the C drive on the server just happens to be around the same size as on my machine here, and that's the size I was getting.

Okay, now what?

Is there some other way of doing this or not?

I want to put a number of things into a web page on the desktop that is mandatory on  all student profiles here, including how much space they have left in their H drive.

Thanks!
0
 
davidlars99Commented:
did you try this?

dim fs,d,s
set fs=Server.CreateObject("Scripting.FileSystemObject")
set d=fs.GetDrive("H:")
s=d.totalsize
0
 
w00tasticAuthor Commented:
Yeah, I did.
It works much the same as mine, gets the drive values from the server that the page is run from, rather than the client machine.

Any other ideas would be appreciated guys.

Thanks!
0
 
benbalboCommented:
How about running IIS on studentserver with a page that returns the quota info (which it can read) in XML, or other format, to the ASP page on your main web server.

Maybe a bit overkill though :-)
0
 
davidlars99Commented:
wow..! isn't that cool or what. I tryied WMI on XP and sadly it did not work
0
 
davidlars99Commented:
it's only supperted on NT platform
0
 
kmalhotraCommented:
I do not know how familiar you are with ActiveX. That would be perfect for this job. Ofcourse then it will work only with IE. You need to check something on the client's machine. ASP can not allow you to do that. Need something on the client's machine. Then you can have your ASP page interactign with the Activex page.

LEt me know if you need help with this.

Thanks
0
 
joeposter649Commented:
0
 
w00tasticAuthor Commented:
Thanks for all the suggestions guys, i'll look into them.
Now i'm thinking a bit clearer, i've decided my way of tackling this problem wasn't quite right.
What I need to do is extract data directly from the quota entries on the student server, which just happens to be running IIS.

Any idea's on this one?

I've seen a few bits of code about, and even some stuff on Experts Exchange..... but nothing that really suits what I want.
0
 
w00tasticAuthor Commented:
By the way, it's Server 2003 running IIS 6.0 and we only use Internet Explorer here.
0
 
kmalhotraCommented:
You can have a webservice running on the student server such that when you pass it a student id, it will return the size of the student's directory on the server. You will need to create a server objects to read files/folder and get their size.

Thanks
KM
0
 
joeposter649Commented:
Not quite sure what you're looking for.  Maybe this...

Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.UsernameResolution = 1
colDiskQuotas.Initialize "C:\", True

For Each objUser in colDiskQuotas
    response.Write objUser.LogonName & "<br>"
    response.Write objUser.QuotaLimit & "<br>"
    response.Write objUser.QuotaThreshold & "<br>"
    response.Write objUser.QuotaUsed & "<br>"
Next

Or this...

      Set oUser = GetObject("WinNT://yourdomain/username")
      Response.Write oUser.MaxStorage & "<br>"
0
 
w00tasticAuthor Commented:
Yep, that's it!!!
Well done, you have saved me.
Points well earned ;-)
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 6
  • 5
  • 3
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now