Contact Info

Crumbtrail

ActiveXperts.com » Administration » VBScript Collection » Disks and File Systems » Disk Quotas

Disk Quota Scripts

Adding a Disk Quota Entry
Configuring Disk Quota Settings
Deleting a Disk Quota Entry
Enabling Disk Quotas
Enabling Disk Quotas on the Local Computer
Enumerating Disk Quotas
Enumerating Disk Quota Settings
Enumerating Disk Quota Settings on the Local Computer
Enumerating Disk Quotas on the Local Computer
Enumerating Disk Space by User Using Disk Quotas
Modifying a Disk Quota Entry

Adding a Disk Quota Entry


Creates a custom disk quota entry for a user named jsmith. This script must be run on the local computer.
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:\", True
set objUser = colDiskQuotas.AddUser("jsmith")
set objUser = colDiskQuotas.FindUser("jsmith")
objUser.QuotaLimit = 50000000

Configuring Disk Quota Settings


Changes the warning threshold and default quota limits for drive C.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuotaSettings = objWMIService.ExecQuery _
    ("Select * from Win32_QuotaSetting")
For each objQuotaSetting in colQuotaSettings
    objQuotaSetting.DefaultLimit = 10000000
    objQuotaSetting.DefaultWarningLimit = 9000000
    objQuotaSetting.Put_
Next

Deleting a Disk Quota Entry


Deletes the disk quota entry for a user named jsmith. This script must be run on the local computer.
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:\", True
set objUser = colDiskQuotas.FindUser("jsmith")
colDiskQuotas.DeleteUser(objUser)

Enabling Disk Quotas


Turns on disk quotas for drive C.
Const ENFORCE_QUOTAS = 1
StrComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_QuotaSetting Where VolumePath = 'C:\\'")
For Each objDisk in colDisks
    objDisk.State = ENFORCE_QUOTAS
    objDisk.Put_
Next

Enabling Disk Quotas on the Local Computer


Enables disk quotas for drive C on the local computer. Requires Windows 2000 or later, and cannot be run against a remote computer (unless you use the WSHController object). To enable disk quotas for a different drive, change C:\ in line two to the appropriate drive letter (for example, D:\). To disable disk quotas, set the value of the constant ENABLE_QUOTAS to 0. To enable, but not enforce, disk quotas, set this value to 1.
Const ENABLE_QUOTAS = 2
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:\", True
colDiskQuotas.QuotaState = ENABLE_QUOTAS

Enumerating Disk Quotas


Enumerates disk quota information (including user name, warning and quota limits, and disk space used) for each disk quota entry on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskQuotas = objWMIService.ExecQuery _
   ("Select * from Win32_DiskQuota")
For each objQuota in colDiskQuotas
    Wscript.Echo "Disk Space Used: " & vbTab &  objQuota.DiskSpaceUsed
    Wscript.Echo "Limit: " & vbTab &  objQuota.Limit   
    Wscript.Echo "Quota Volume: " & vbTab &  objQuota.QuotaVolume     
    Wscript.Echo "Status: " & vbTab &  objQuota.Status 
    Wscript.Echo "User: " & vbTab &  objQuota.User     
    Wscript.Echo "Warning Limit: " & vbTab &  objQuota.WarningLimit
Next

Enumerating Disk Quota Settings


Enumerates the disk quota settings for each drive on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuotaSettings = objWMIService.ExecQuery _
    ("Select * from Win32_QuotaSetting")
For each objQuotaSetting in colQuotaSettings
    Wscript.Echo "DefaultLimit: " & vbTab &  objQuotaSetting.DefaultLimit
    Wscript.Echo "DefaultWarningLimit: " & vbTab &  _
        objQuotaSetting.DefaultWarningLimit    
    Wscript.Echo "ExceededNotification: " & vbTab &  _
        objQuotaSetting.ExceededNotification   
    Wscript.Echo "State: " & vbTab &  objQuotaSetting.State    
    Wscript.Echo "VolumePath: " & vbTab &  objQuotaSetting.VolumePath
    Wscript.Echo "WarningExceededNotification: " & vbTab &  _
        objQuotaSetting.WarningExceededNotification    
Next

Enumerating Disk Quota Settings on the Local Computer


Enumerates the disk quota settings for drive C on the local computer. Requires Windows 2000 or later, and cannot be run against a remote computer (unless you use the WSHController object). To enumerate disk quota settings for a different drive, change C:\ in line two to the appropriate drive letter (for example, D:\).
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:\", True
 
If colDiskQuotas.QuotaState = 2 Then
    Wscript.Echo "Quota state: Enabled and enforced"
ElseIf colDiskQuotas.QuotaState = 1 Then
    Wscript.Echo "Quota state: Enabled but not enforced"
Else
    Wscript.Echo "Quota state: Disabled"
End If



Wscript.Echo "Default quota limit: " & colDiskQuotas.DefaultQuotaLimit
Wscript.Echo "Default warning limit: " & _
    colDiskQuotas.DefaultQuotaThreshold
Wscript.Echo "Record quota violations in event log: " & _
    colDiskQuotas.LogQuotaLimit
Wscript.Echo "Record warnings in event log: " & _
    colDiskQuotas.LogQuotaThreshold

Enumerating Disk Quotas on the Local Computer


Enumerates the disk quota entries for drive C on the local computer. Requires Windows 2000 or later, and cannot be run against a remote computer (unless you use the WSHController object). To enumerate disk quota entries for a different drive, change C:\ in line two to the appropriate drive letter (for example, D:\).
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:\", True
 
For Each objUser in colDiskQuotas
    Wscript.Echo "Logon name: " & objUser.LogonName
    Wscript.Echo "Quota limit: " & objUser.QuotaLimit
    Wscript.Echo "Quota threshold: " & objUser.QuotaThreshold
    Wscript.Echo "Quota used: " & objUser.QuotaUsed
Next

Enumerating Disk Space by User Using Disk Quotas


Uses disk quotas to report the amount of disk space being used by each individual user on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuotas = objWMIService.ExecQuery _
    ("Select * from Win32_DiskQuota")
For each objQuota in colQuotas
    Wscript.Echo "Volume: "& vbTab &  objQuota.QuotaVolume
    Wscript.Echo "User: "& vbTab &  objQuota.User      
    Wscript.Echo "Disk Space Used: "& vbTab &  objQuota.DiskSpaceUsed
Next

Modifying a Disk Quota Entry


Modifies the disk quota warning threshold and disk space limit for a user named jsmith. This script must be run on the local computer.
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:\", True
set objUser = colDiskQuotas.FindUser("jsmith")
objUser.QuotaThreshold = 90000000
objUser.QuotaLimit = 100000000