1

I've been given the task of modifying a batch file for the installation of our software that sets certain registry values. The modification has to do with differences in the registry between Windows XP, and Windows Vista/7. Apparently in the newer OS's, there is a "shadow registry" of some sort that contains registry data that may be out of sync with the main one? I can't find any information on this.

Could this possibly be referring to the transactional nature of the registry in Vista/7? Would a simple "commit" resolve this? If so, what is the syntax for that?

EDIT:

By "syntax", I am referring to the syntax of doing so within a batch file? i.e. I've added keys/values, what command will "commit" the transaction?

4
  • 2
    have you tried the new batch file and did it fail in someway?
    – tony roth
    Oct 8, 2010 at 20:46
  • Have you thought about using Powershell? Oct 8, 2010 at 20:49
  • powershelll wouldn't change a thing in this case
    – tony roth
    Oct 8, 2010 at 22:14
  • Stackoverflow may be a better resource for this. Unless other admins here are doing a lot of registry writing? Oct 10, 2010 at 3:25

1 Answer 1

3

There is a virtual registry on Windows Vista / 7, it's basically for compatibility, as these OSes have changed the way that security is applied to the registry, and is per user.

"Prior to Windows Vista, many applications were typically run by administrators. As a result, applications could freely read and write system files and registry keys. If these applications were run by a standard user, they would fail due to insufficient access. Windows Vista improves application compatibility for these users by redirecting writes to a per-user location within the user's profile. For example, if an application attempts to write to HKEY_LOCAL_MACHINE\Software\Contoso\ it will automatically redirect to HKEY_USERS\< User SID >_Classes\VirtualStore\Machine\Software\Contoso."

And a major warning ...

"As virtualization is an interim application compatibility technology, Microsoft intends to remove this form of virtualization from future versions of the Windows operating system as more applications are migrated to Windows Vista. As a result it is imperative your application does not take a hard dependency on the presence of virtualization in the system."

http://msdn.microsoft.com/en-us/library/bb530198.aspx

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .