Listing 1: User Quota Utility Excerpt

<script language="vbscript">

Sub Window_Onload
 self.Focus()
 self.ResizeTo 900,600
 qlimit.value = "5368709120"
End Sub

Sub RunMod
On Error Resume Next
statval.value = ""

If Right(usrlist.value,1) <> Chr(10) Then
 If Trim(usrlist.value) <> "" Then
  usrlist.value = usrlist.value&VbCrLf
 Else
  statval.value = statval.value & "No users listed " & now()
  Exit Sub
 End If
End If

ulist = usrlist.Value
spulist = Split(ulist,vbcrlf)
strComputer = Trim(Computer.value)
strDrive = Trim(Drive.value)
strDomain = Trim(Domain.value)

If trim(computer.value) = "" Then
 strComputer = "."
Else
 strComputer = Trim(computer.value)
End If

' BEGIN CALLOUT A
For f = 0 to UBound(spulist)-1
 UserID = Trim(spulist(f))
 If Trim(UserID) <> "" Then
  usr=UserID
  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
  If strDomain = "" Then
   Set colItems = _
    objWMIService.ExecQuery("Select Name from Win32_ComputerSystem",,48)
   For Each objItem in colItems
    strdomain = objItem.name
   Next
   Set colItems = nothing
  End If
  Set objQuota = objWMIService.Get("Win32_DiskQuota.QuotaVolume=" & _
   "'Win32_LogicalDisk.DeviceID=""" & strDrive & """'," & _
   "User='Win32_Account.Domain=""" & strDomain &""",Name=""" & usr & """'")
  If err.number <> 0 Then
   statval.value = statval.value & "Error " & usr & " " & err.Description & VbCrLf
   err.Clear
  Else
   objQuota.Limit = qlimit.value
   objQuota.Put_
  End If
 End If
Next
' END CALLOUT A

Set objquota = nothing
Set objWMIService = nothing
statval.value = "Finished - Errors if Any listed below " & now() & VbCrLf & statval.value
End Sub

Sub RunQuery
On Error Resume Next
statval.value = ""
strDrive = Trim(Drive.value)
do_once = True

If trim(computer.value) = "" Then
 strComputer = "."
Else
 strComputer = trim(computer.value)
End If

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Row = 1 : Col = 1

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
If err.number <> 0 Then
 statval.value = statval.value & err.description & " - Error " & err.number & _
  "Query Terminated"
 Set objWMIService = nothing
 Set wmiLocator = nothing
 WScript.Quit
End If

' BEGIN CALLOUT B
Set colQuotas = objWMIService.ExecQuery("Select * from Win32_DiskQuota" & _
 "Where quotaVolume='Win32_LogicalDisk.DeviceID=""" & strDrive & _
 """'", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
' END CALLOUT B

For Each objQuota in colQuotas
 If do_once Then
  Set XL = CreateObject("Excel.Application")
  XL.workbooks.add : XL.Visible = True
  Row = 1 : Col = 1
  XL.Cells(Row, Col).Value = "Status" : Col = Col + 1
  XL.Cells(Row, Col).Value = "Volume" : Col = Col + 1
  XL.Cells(Row, Col).Value = "User" : Col = Col + 1 
  XL.Cells(Row, Col).Value = "Limit" : Col = Col + 1
  XL.Cells(Row, Col).Value = "WarningLimit" : Col = Col + 1
  XL.Cells(Row, Col).Value = "Space Used Bytes" : Col = Col + 1
  Row =2 : Col = 1
  do_once = False
 End If
 statusconv = ConvStatus(objQuota.status)
 XL.Cells(Row, Col).Value = statusconv : Col = Col + 1
 XL.Cells(Row, Col).Value = objQuota.QuotaVolume : Col = Col + 1
 XL.Cells(Row, Col).Value = objQuota.User : Col = Col + 1
 XL.Cells(Row, Col).Value = objQuota.limit : Col = Col + 1
 XL.Cells(Row, Col).Value = objQuota.warninglimit : Col = Col + 1
 XL.Cells(Row, Col).Value = objQuota.DiskSpaceUsed : Col = Col + 1
 Row = Row + 1 : Col = 1
Next

Set objWMIService = nothing
Set colQuotas = nothing

XL.Cells.EntireColumn.AutoFit
XL.Rows("2:2").Select
XL.ActiveWindow.FreezePanes = True
XL.Range("A2").Select

Set XL = nothing

statval.value = statval.value & " Query Finished " & now()
End Sub

' BEGIN CALLOUT C
Function ConvStatus(fnStatus)
Select Case fnStatus
 Case 0
  ConvStatus = "OK"
 Case 1
  ConvStatus = "Warning"
 Case 2
  ConvStatus = "Exceeded"
End Select
End Function
' END CALLOUT C
</script>