User profiles, especially where the desktop is concerned, are indispensable. In many ways, these profiles are the centerpiece of an end-user's experience and the key to their productivity. If they can't get on a computer they most likely can't get any work done. However, this has a down side as well. When a user logs onto a computer and gets a new profile, the profile doesn't go away. I'm limiting my discussion here to local profiles. Roaming profiles are another animal.

So if Don comes to work, but his desktop is down, he might hop on to Greg's computer so he can check email and finish editing a Word document. Later that day Jeremy from corporate, who is visiting the office, also logs on to Greg's computer for a few hours. Even if Don and Jeremy never logon to Greg's computer again, profiles remain. These profiles consume disk resources and increase the size of the registry. If you have an environment where there is a lot of desktop sharing you can imagine how quickly this can get out of hand.

What we need is a way to remove obsolete user profiles. The best approach I believe is to take advantage of Group Policy. It doesn't cost you anything extra and is easy to set up. Create a new GPO and open the Computer configuration node. Navigate to – Administrative Templates – System – User Profiles. Open the policy setting titled "Delete user profiles older than a specified number of days on system restart".

This policy requires Windows Vista or later which means you could also set a policy to apply to newer member servers. There's not much to configure here except the number of days that a profile can go unused before it is deleted. In Figure 1 this policy will delete profiles that haven't been used in 30 days. But pay close attention to the fine print. Profiles aren't deleted as soon as the clock runs down. If the policy applies the clean-up happens when the computer restarts. For desktop computers this shouldn't be an issue because they are most likely getting shut down periodically, if not daily. Obviously for member servers you don't see the benefit until your maintenance window.

To learn more about how to best manage user profiles, check out my full-length article, Manage & Purge Local Windows User Profiles, which also includes a PowerShell module I wrote for finding and removing profiles. The accompanying video, Use PowerShell & WMI to Manage User Profiles, shows the module in action. What do you do to keep user profiles in check? Is this a real issue or in the days of multi-terabyte drives totally irrelevant?