none
UAC File Virtualization "%localappdata%\virtualstore" no longer working with fslogix? RRS feed

  • Question

  • We have some legacy applications installed to %ProgramFiles(x86)%\programx. The user requires persistence of preference files stored in %ProgramFiles(x86)\programx. Before fslogix, we relied on UAC File Virtualization to store those preference files in %localappdata%\virtualstore\Program Files (x86)\programx\* when programx attempted to store them in %ProgramFiles(x86)%\programx. Now with fslogix it appears the maybe the filter driver of fslogix is inhibiting the UAC File Virtualization?

    If this is true, how do we change this behaviour?

    I came across this post and ran through some tests. https://stackoverflow.com/questions/8852967/force-an-existing-application-to-always-run-with-uac-virtualization-on I confirmed that a local user who does not have fslogix applied can run the app as expected with writes being redirected to virtualstore.

    @micah adamson

    This seems to confirm the therory that fslogix is causing the problem. Now, how to fix it?

    I'll disable fslogix per this post https://social.msdn.microsoft.com/Forums/en-US/af82773e-65c8-4c05-a9bc-2cc58ce5275e/how-to-disable-fslogix-to-see-if-an-issue-is-fslogix-related?forum=FSLogix

    I'll also leave fslogix enabled and collect the logs using the fslogix support tool and open a ticket.

    Too many times have my posts to Microsoft forums been "answered" and closed with some random unrelated and unhelpful response. I will not allow that to happen here with fslogix.


    • Edited by havealoha Thursday, March 12, 2020 4:55 AM
    Sunday, March 8, 2020 9:55 PM

All replies

  • Hi havealoha

    We have the same problem with an Application build with the Eclipse-Gui. Our Workaround is to move the Application and Disable the UAC Virtualization in the Executable. You can disable the UAC-Virtualization in the .manifest Resource of the File. Here a short description:

    • You need a PE Explorer like from www.heaventools.de
    • Open the Executable, click to the Resources in the View-Menu. Open the Manifest 
    • Now you must insert the following Snipset to the Manifest XML.
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
          </requestedPrivileges>
        </security>
      </trustInfo>
    

    Save Everything and now your Executable has the UAC-virtualization Disabled (Look to the Taskmanager)
    Now move or install the Application to a different Folder, and everything is OK.

    Tuesday, September 15, 2020 11:54 AM
  • No way to handle legacy vendor's code. Just need FSLogix behavior to be consistent with UAC behavior (whichever way one decided to configure it)
    Wednesday, October 21, 2020 2:15 PM