Using and understanding Proquota

A disk quota manager is a tool that lets you control how much server disk space a user can use. For the past year, I'd heard rumors that Service Pack 4 (SP4) would include a disk quota manager. Cool, I thought! Disk quotas weren't supposed to appear until Windows 2000 (Win2K). Well, disk quotas won't appear until Win2K, but SP4 contains a similar tool—Proquota. This tool won't change the way you think about Windows NT, but it might be useful.

Proquota is similar to a disk quota, but with three differences. First, Proquota lets you set a maximum size on a user's profile, whereas with a disk quota you set a maximum size on a user's files. Second, knowledgeable NT users can bypass Proquota. Third, and most important, Proquota is useful only for users who run NT as their desktop OS; Proquota doesn't control how much data a Windows for Workgroups (WFW), Windows 98, Win95, or Macintosh (via UNIX services) user saves on NT Server systems. The third limitation is big, and it might render Proquota useless for many users.

Proquota Under the Hood
You might think a tool that controls the size of a network resource would be a server-side tool rather than a client-side tool, but Proquota is a client-side application. The program, proquota.exe, runs on each user's workstation. The program constantly monitors the user's profile size against the maximum size (in kilobytes) in the user's Registry. If the profile exceeds the maximum size (actual disk quota management tools typically set hard limits for user disk usage), Proquota sends the user error messages until the user deletes enough files to reduce the profile size below the maximum size. Furthermore, Proquota won't let the user log off until the profile is the proper size.

Proquota can't give you iron-fisted control of your network, however. Proquota.exe, which is just an NT program on the user's workstation, enforces all the restrictions. A knowledgeable NT user can start Task Manager, click the Processes tab, choose proquota.exe, and click End Process. Task Manager then terminates proquota.exe, and the annoying messages disappear. Most users won't know about the Task Manager workaround, but it's still a weakness.

Setting Up Proquota
Setting up Proquota is a simple process that involves installation and configuration. First, install SP4 on all user workstations. Although you might not have to put SP4 on the servers, you probably want to. However, I've heard of situations in which putting SP4 on a server blew it up, so use normal precautions when installing new software on an important system. Second, tell NT to use Proquota and how much space to allot to each user. You store each user's maximum profile space quotas in the user's ntuser.dat Registry hive.

After you install and configure Proquota, you need to propagate changes to users' Registry settings. System policies provide an easy method for accomplishing this task. Among the many files SP4 modifies is winnt.adm, a policy template file that NT includes. Start the System Policy Editor (SPE) and open a user policy; the properties resemble those in Screen 1. Open the new section, Windows NT User Profiles, to find a screen that looks like Screen 2. Note two new check boxes: Limit profile size and Exclude directories in roaming profile.

Selecting the first check box displays the panel at the bottom of the dialog box. This panel contains the controls you use to rein in profiles. You need to select the first control, Limit profile size, for Proquota to load. Custom Message lets you tailor the message the user sees when exceeding the allotted profile space. When Proquota detects the user is over the limit, it opens a message box containing the Custom Message text. You can accept the default, or you can enter an alternative message. An over-quota user also sees a red circle with an X in the system tray, next to the time of day. When the user has profile space remaining, a profile icon reports how much space remains. The Include registry in file list option tells Proquota whether to count the size of the Registry file ntuser.dat when calculating the total number of bytes in the user's files. Users' Registry hives typically aren't large, but this option is important if you want to be exact. Notify user when profile storage space is exceeded tells Proquota to activate the dialog boxes the Custom Message entry refers to. This check box is just an on and off switch: If you don't select the check box, Proquota checks to see whether the profile is too large only at logoff. (As far as I know, you can't disable the profile size check that Proquota performs at logoff.) Remind user every X minutes tells Proquota not only to notify the users when they exceed the limit but also to nag about it. The field specifies the number of minutes between nags.

If you try to log off with a profile that's too large, a dialog box such as the one in Screen 3 shows you a list of files in your profile and how far over the line you are. The list helps you decide what to delete so you can log off. The dialog box only shows you the files. I expected I'd be able to right-click them or do something from the dialog box to delete them, but no such luck. You must delete the files in the typical way, from the command line or from NT Explorer.

Using Proquota
You can essentially make Proquota a disk quota management system by allowing users to save files only within their profiles. In other words, don't provide a home directory except perhaps a directory inside the user's desktop. If you install Internet Explorer (IE) 4.0 with Active Desktop on users' machines, the users get a folder on their desktop named My Documents. Tell users to save their data in My Documents. That way, their data roams with them when they go to other desktops, and the total bytes of files in My Documents counts against the profile quota. (I'm talking about storing profiles on central servers—roaming profiles.)

Suppose you have a roaming profile and you log on to a machine you've never used before. NT, by default, stores a local copy of your entire roaming profile on whatever computer you're using. Imagine your profile contains 20MB of other user data; your logon would be slower than usual.

Proquota Registry Values
The only way to control profile quotas is through system policies. Virtually every NT networking technology except Proquota gives you some type of management GUI. You must control Proquota through Registry entries in the user's profile, making system policies a must for Proquota administrators. See Table 1 for Proquota's otherwise undocumented Registry entries. These entries are in the HKEY_CURRENT_USER\Software\Microsoft\WindowsCurrentVersion\Policies\System Registry key.

Not a Showstopper ... Yet
Proquota probably won't change the NT networking world, but it's a step in the right direction. Those smug Novell NetWare administrators can remain smug—for now. But just wait until Win2K Server arrives. Then we'll show 'em!