I'm looking for Powershell (preferred) script, or .CMD or .VBS, to delete a specific user profile on a workstation (WinXP) or terminal server (2000, '03 or '08). I know all about the delprof utility... That only allows you delete based on a period of inactivity. I want a script to:
- prompt admin for a username
- delete that username's profile
- and to delete the entire profile - registry hive too (not just the folder structure within Documents and Settings).
- The same way it would if you went to My Computer> Properties> Advanced tab> User Profiles Settings> and deleted profiles from there.
Any ideas? All I can think of is doing an AD lookup to get the SID of the user specified, then using that to delete the correct registry hive too... something simpler would be nice though...
Basically, my HelpDesk used to be local administrators on our Citrix servers and a common fix for various issues was for them to delete a user's profile on the citrix server(s) and have that user log back in - voila, whatever issue they had was resolved. Going forward, in new Citrix environment, they will no longer be local admins on those boxes, but still need to be able to delete profiles (deleting the entire profile: folder and reg hive is key). thanks.
I wrote this VB script for a similar question on Server Fault. It will cycle through each Profile on the target machine, and prompt you (one by one) if you want to delete the profile. It does this the using WMI Win32_UserProfile, so it will be a clean removal.
It'll ask you for the FQDN of the target machine. If you are getting permissions errors, change the Username and Password to reflect an account that has Local Admin provs on the target machine.
It doesn't work using the same workflow you detailed (it requesting a username first). The problem with this approach is that the Win32_UserProfile doesn't contain the Username, only thr SID. When the user logs into the machine the SID is used to decide which profile is the correct one. This prevents problems with renaming a user accounts in AD.
tsprofilecleaner is a free gui that can remove a profile from a list of servers: link text
I think the Cntrl+Alt+Del Consultancy in Australia developed a tool that might help you. It's called REMPROF and with this command, you can just delete a single profile off a server. Of course, you would have to substitute the actual user name in the command:
I don't believe you can run this remotely from another server & you can't run this without administrative rights, unfortunately. I don't believe your support staff will be able to manage users & user profiles on the any server without being a member of the local admins group.
At any rate, you can download REMPROF & many other useful tools from the Cntrl+Alt+Del Consultancy web site here:
http://www.ctrl-alt-del.com.au/CAD_TSUtils.htm
I hope this helps.
Alicia
Well instead we decided there was no good enough reason to keep any profiles on Citrix servers (they're roaming anyway with any real data redirected) so we set policy to delete profile when user logs off. thanks all for the suggestions.
Powershell does it in pretty easy way if you are using windows 7 or windows 2008 computer.
http://techibee.com/powershell/powershell-script-to-delete-windows-user-profiles-on-windows-7windows-2008-r2/1556
We use User Profile Hive Cleanup Service + small script which remove all USER profile when server start. Working goood
You can use delprof or remprof for profile deletion. You can create a script from those commands or you can use
tsprofcleaner
.The users hive is located under their user directory (NTUSER.DAT) so deleting the directory with an
rmdir /s /q {username}
should suffice. The only part that wouldn't be deleted is under the profile list in the registryHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
but all that does is map the SID to a profile location.If the user logs in and the directory doesn't exist, it'll be created again.
Unfortunately, without having them elevate themselves as admins, they won't be able to delete user profiles.
Batch file: