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?


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?

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

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."


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.