App-V 5.0 SP3 Sequencer issue

There is a bug with the App-V 5.0 SP3 Sequencer that has just been release some days ago. When you try to install the MSI of a created App-V package created by the SP3 Sequencer, the installation only works when you run the MSI installation in an elevated cmd (start cmd.exe with “Run as Administrator”). If you deploy your apps with SCCM, you’re usually not affected when you run the installation by the system account.

The following error messages are shown when you install the msi without elevated cmd:

error1 error2

I created an mst that fixes the issue. Do the following steps to apply the fix :

  1. Download the mst that fixes the issue: http://www.notmyfault.ch/downloads/AppV5_SP3Fix.zip
  2. Extract the mst file and copy it into the same folder as your msi file
  3. Run the following command:
    msiexec /i YourAppvPackage.msi TRANSFORMS=AppV5_SP3Fix.mst

If you want to run it unattended, add /qb as parameter. Make sure your current directory is the one that contains the msi/mst or just add the full path to your msi and mst. Don’t rename your msi, use the original name that has been created by the sequencer.

You can also permanently apply the transform (mst) to the msi with Orca.

The root cause of the issue is a changed setting in the MSI. The custom actions responsible to publish and remove the App-V package won’t run under the local system account with full privileges (no impersonation)

AppV_SP3_sequencer_issue

The mst I created changes that configuration back so that these custom actions run under the local system account with full privileges (no impersonation) as it was prior to SP3. This change is done by changing the above marked type values from 1025 to 3073.

 

App-V 5.0 SP2 HF5 on Windows 10

Already tried using App-V 5.0 SP2 HF5 on Windows 10 Technical Preview or are you just before trying it? If yes, make sure you have at least installed Build 9860. There is a known issue with junctions. App-V 5.0 uses junctions, i.e. in “C:\ProgramData\Microsoft\AppV\Client\Integration”. You will get an error message when launch an App-V package thru the shortcut in the start menu because the file that is part of a junction folder cannot be found.

Other than that, App-V 5.0 SP2 HF5 worked perfectly on Windows 10, I haven’t experienced any issues so far with my packages….

App-v app knows its real path

Ever wondered what is being returned if a virtualized app in App-V 5.0 asks for its own path? I tested it with a simple C++ exe that I created for that particular case. It uses the GetModuleFileName API to get its own path on the system. When running the exe, the output is its path and the directory listing of the folder it’s located in.

I created an App-V 5.0 package with the exe twice in it, once in the VFS and once in the PVAD path (PVAD = c:\getPathOfExe):

– c:\getPathOfExe\getPathOfExe.exe (PVAD)
– c:\Program Files\getPathOfExe\getPathOfExe.exe (VFS)

There is nothing else in the App-V package than these 2 files.

So to finally test the behavior after having added and published the package, I opened a cmd.exe within its virtual environment and did run both of the exe files.

Running getPathOfExe.exe in PVAD:
getPathOfExe-PVAD

Right after running the exe, you see the output of the exe’s path itself. Although it has been installed to c:\getpathofexe\, it knows that the real location is in c:\programdata\app-v\…

The next output is the directory listing of the folder it’s located in. It automatically merges with the local folder c:\getpathofexe\. C:\getpathofexe\hahahaha\ exists on my system, so it merges the folder absolutely correct. Additionally I created the folder “test” within the virtual environment which is also shown as it should.

Running getPathOfExe.exe in VFS:
getPathOfExe-VFS

The behavior is the same in PVAD and VFS. GetPathOfExe.exe recognizes that it’s located in c:\programdata\app-v\… and not in the VFS c:\program files\getPathofExe\.

In the App-V package I configured to merge c:\program files\getpathofexe\ with the local folder, that why you see the folder “hahaha” shown in the directory listing. “test” folder has been, like in the PVAD test before, manually created within the virtual environment. Directory listing works as expected.

What is the take away of the lesson? Files running in a virtual environment exactly know their “real” location.

 

 

 

Change Appv 5.0 Beta Publishing interval

After some tests with the App-V Publishing Server and the Management Server, I noticed that there is a publlishing interval configured. Means that every change you do in the Management console (i.e. publish a a new App-V package) will take some time until it’s published for the App-V clients. I just published a new App-V package to a client and could see it. So I opened the xml file with the policies. You can open this file on the Ap-V publishing server. Just open the link you have configured during the installation:

http://appvpublishingserver:Port

Of course appvpublishingserver must be replaced by the real name of my App-V Publishing server and Port is the port I have configured during the installation.

As you can see on the screen shot, there is no configuration/package shown in the xml file. After I was waiting several minutes, I have seen that the xml files was updated. I found out that there is a refresh interval that can be set in the web.config file located at C:\Program Files\Microsoft Application Virtualization Server\PublishingService\Web.config (depending on your installation path of the publishing server). There is a default refresh of 10 minutes configured (600 seconds). You can change this value accordingly in order to have your changes published earlier and of course also later.

<add key=”metadataRefreshInterval” value=”600″/>

After I have change the value from 600 to 30 seconds, my policy changes were aplied within the next 30 secons which is much more confortable for me, especially in a test environment.

How to publish a App-V 5.0 Beta2 Package to a standalone client

I believe Application Virtualization will be used more and more in future and might be the new standard for all application installations. I will create another post explaining why I think that will be the case.

App-V 5.0 uses the new format .appv for the application packages. Follow these steps to use a App-V 5.0 package on a standalone Client.

  1. Install the App-V 5.0 Client on the client system.
  2. Copy the App-V package to a share or to a local folder on the Client system
  3. Run the following powershell commands in order to publish the App-V package on that client:
    a) Set-ExecutionPolicy Unrestricted
    b) Import-Module AppvClient
    c) Set-AppVClientConfiguration -EnablePackageScripts 1
    d) AppvClientPackage ‘C:\sources\vlc\vlc.appv’ | Publish-AppvClientPackage -Global

Replace “C:\sources\vlc\vlc.appv” with the path to your .appv file.

You then see that the package is created. In addition you see all the properties as on the screen shot:

Note that I have used the Get-AppvClientPackage command to get the properties of the App-V package. You can review the package properties if you know the PackageID and the VersionID.

When you open the installed App-V Client and refresh, you see that there is a new package available. Choose “Download all applications” to download it. As soon as this is done, you can start using it. Have fun!