Reprofiler

A tool for manipulating userprofiles on Windows 2000, Server 2003, XP, Vista ,Server 2008 and Windows 7.


There have been some reports of early releases of this utility failing to open, or giving strange error-messages at startup. It would seem that the problem area was with the WMI interface libraries, which have been updated to 3.2.6.1 in the current (0.3) release. This appears to have dealt with the problem, at least there have been no further instances on the platforms available for testing here.

A common issue encountered with all recent Windows versions is the unexplained loss of access to a user's data and settings.

This can happen for a number of reasons:
In most such circumstances, the problem arises because Windows no longer recognises the profile as belonging to its user. What will happen in this case is that the next time the user logs-on, a fresh, empty profile will be created, named 'user.domain' or 'user.computer' instead of just 'user' -and from that point on, the new profile will be used instead of the correct one.

It is possible to correct this type of problem manually, but this involves editing the registry and adjusting permissions, tasks which are painstaking and time-consuming, and are probably beyond the skill-level of the average user.  

Reprofiler offers a quick and easy way to see which profile is associated with which user. If a problem is evident, it then provides an intuitive and straightforward means of correcting the profile ownership.


Usage:


There will be a short delay on startup as the system is scanned for useraccounts and profiles. The main window should then appear,as shown.

The upper pane shows a list of users. If the computer is a domain-member these will be subdivided into two groups, local users and domain users. For a standalone computer, there will be just the local group.

For each user, the 'Assigned Folder' indicates where, on disk, that user's profile is being stored. Typically this will be a folder within 'C:\Documents and Settings' for XP, or 'C:\Users' for Vista/7.

Scrolling to the right will reveal that user's SID, should that information be needed. (If you're not sure what a SID is, don't worry.)

The lower pane lists the subfolders found inside to profile-root folder, which as we've mentioned is typically 'C:\Documents and Settings' for XP, or 'C:\Users' for Vista/7. It then shows the users which have been assigned to each profile, in the form 'logon_domain\username' (For a standalone computer the logon_domain will be the name of the computer itself)

Correcting a problem:


If it is obvious that something is amiss -such as a user having a assigned folder called 'username.000' whilst a 'username' folder also exists- then, having decided which folder is the correct one, highlight both the user in the top pane, and the folder in the lower pane. Press Assign, and check that the confirmation-message agrees with what you want done. The process of reassignment will typically take 15-30 seconds, and you may see four black rectangles (console windows) appear whilst this happens. Once completed the list should self-refresh to indicate the new assignments.

Controls:


Properties: This button always applies to the selected item in the profile (lower) pane. The information such as disk space and last-used date may be of help in deciding which profile is a genuine one containing data, or a blank one.

Assign: Performs several actions which, when combined, attach a profile to an account.

System Accounts: Check the tickbox between the user and profile lists if you wish to see the system-generated accounts and profiles. Normally these will not need touching, but the facility is there if needed.

Detach: Allows you to break the association between a user and the profile. What will happen here is that at next logon the user will be treated as a new account by the system, and will automatically be issued with a fresh profile based on the Default User profile's settings. This may be convenient if you wish to default the computer's settings whilst retaining the same accountname.

Delete: As it says on the tin. This deletes the profile-folder and all its contents. Only do this if you are sure the folder contains no wanted data. It does not delete the useraccount.

Exit: Leave the program without making any further changes. (Same as top-right X)

What Assign does:


The program checks to see if the user has logged-on previously, or if its a first-time logon. If the latter, and Windows Vista or 7 is in-use, you will be asked for the password, so that the account can be initialised. This initialisation step is important, since without it the account would be reassigned at next logon, losing the association.  Windows XP uses  different profile-creation logic, and here this step generally is not necessary.

This completed, the program looks-up the user's SID. It then modifies the registry ProfileImagePath variable under the appropriate account SID to point at the required profile. It then changes the ownership of the profile contents, and assigns the new owner as a trustee of its folder. Finally, it assigns trusteeship to the user's registry hive (NTUSER.DAT) and to the user Classes hive.

Notes:


No explicit restrictions are imposed on assigning two or more users to the same profile. Some discretion should be exercised in doing this. In some cases this may be desired, for example to allow a domain user and a standalone user to share the same settings. However, please be aware that this situation is not officially supported by Microsoft, and care should be taken to ensure that two accounts which share a profile are never simultaneously active.  A point to note here is that logging-off a user does not necessarily close all open files in the profile. The only reliable way to ensure this has been done is to restart the computer.

It is inadvisable to rename a profile folder. This is because the profile's registry may contain absolute references to data within it. In principle this is a problem which shouldn't arise; good programming practice dictates that all references to profile content should be relative to the profile. However, not all programmers adhere to these guidelines, hence no assumptions should be made. If you do rename a profile folder, you may find that data is still being saved to the old location, and since that may result in the data being excluded from any future backup of your profile, it could result in its loss.  

If you try to change the logged-on user's profile, you will receive a warning. If you proceed and then attempt to run other software under that user without rebooting, the results may include various kinds of trouble! Therefore if you wish to reassign the profile in-use, log off and change to an unrelated account, then attempt the change.  Or, if you are brave, reassign the profile and then immediately reboot.

Dependencies:


SetACL.exe by Helge Klein is required for correct operation. SetACL and its sourcecode may be downloaded from the author's site, or from Sourceforge.net. SetACL is released under the GPL.

Download Here (Version 0.3 Alpha)

Legal:


As ever, you use this system-level utility entirely at your own risk. Various forms of disaster are not excluded from the list of possible outcomes of its incorrect use. Or, even of its correct use.

This software may be duplicated any number of times, and used in private or commercial IT operations. The software may not be sold for profit in any shape or form. Third-party websites and P2P hosts may offer copies for download so long as these conditions are met.
 
The sourcecode and executables of this software are released under the GNU Public Licence, version 3. Icons and other graphics remain the intellectual property of IWR Consultancy, and may not be used in derivative works without permission.

It is not necessary to supply sourcecode with every downloaded copy, so long as a link to the publisher's website is included in some form or other at the download location.

The author supports the principle of the complete abolition of patents, and the review of copyright legislation to reduce its present levels of abuse.