Disk Quota Scripts
Adding a Disk Quota EntryConfiguring 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