Close

April 12, 2016

Enabling App-V & UE-V in Windows 10 Enterprise 14316

PowerShell Windows 10 Version

Enabling the App-V client and UE-V client in Windows 10 Enterprise Build 14316 via PowerShell and viewing the behaviour of filter drivers for each client.

If you’re following Microsoft App-V and User Experience Virtualization (UE-V), then you’re probably aware that these products are being built into Windows 10 Enterprise (and presumably Windows Server 2016). This means no longer having to download and install each client – it will already be available in Windows and just requires enabling to use.

I previously tweeted a view of the App-V and UE-V client files available in the latest build:

Filter Drivers

Before we enable the clients, let’s take a quick look at the filter drivers in Windows 10 build 14136 (note, I’m looking at a VM with the Office 365 apps installed, so I may have picked up a filter driver or two already). The fltmc command from an elevated Command Prompt or PowerShell instance displays the currently running filters:

Viewing filter drivers before enabling App-V and UE-V clients.

Viewing filter drivers before enabling App-V and UE-V clients.

Enabling the App-V Client

If we take a look at services on the client, we can see that the App-V Client service exists, but is not enabled. To view the status of the service run:

The App-V client service is there but not enabled.

The App-V client service is there but not enabled.

The App-V PowerShell module included in Windows 10 includes an Enable-AppV command. To use the command to enable the App-V client, first run an elevated PowerShell prompt. Import the AppvClient module and run the command:

Unfortunately at this time, the cmdlet does not return anything – neither True or False or anything else depending on the result. This will be important for validating automation, so hopefully Microsoft will fix that before release. Once the cmdlet is successful the App-V Client service will be enabled an running, so it is possible to check whether the service has been enabled to see whether Enable-AppV was succsessful.

Unlike fellow MVP Ryan Bijkerk, I did not run into issues running this command, but if the cmdlet fails to enable the App-V client, you can enable the the service with the following commands:

If we again take a look at the filter drivers running, a number of App-V related drivers have been added. Here we can see that the following filter drivers have been enabled:

  • AppvVfs (App-V virtual file system)
  • AppvStrm (App-V streaming driver)
  • AppvVemgr (App-V virtual environment manager)
Filter drivers after the App-V client has been enabled.

Filter drivers after the App-V client has been enabled.

Enabling the UE-V Client

Just like the App-V client, we can see that the UE-V client service exists, but is disabled. Use the Get-Service command to see the status of the service:

Viewing the UE-V client service.

Viewing the UE-V client service.

Use the Enable-Uev cmdlet to enable the UE-V client:

Again, like Enable-AppV, Enable-Uev returns nothing, you can view the status of the UE-V Client service to see whether it was successfully enabled. If the command fails for whatever reason, enable the UE-V client service directly:

Now lets again look at the filter drivers that have been added – just a single driver for UE-V:

  • UevAgentDriver
Filter drivers after enabling both the App-V and UE-V clients.

Filter drivers after enabling both the App-V and UE-V clients.

Disabling the App-V and UE-V Clients

As you would expect with Enable-AppV and Enable-UEV, there are cmdlets for disabling both clients. Again from an elevated PowerShell instance, run:

Once run the services for both clients will be stopped:

Both services stopped after disabling the clients.

Both services stopped after disabling the clients.

Once disabled, we would expect the filter drivers to be unloaded – the UE-V filter driver is unloaded immediately; however the filter drivers for App-V are not unloaded until Windows restarts.

From what I understand, even though the client services are stopped, request will still be passed through the filter drivers (I reserve the right to be wrong though…). To unload the filter drivers immediately, use the fltmc unload command:

This approach might break applications, so use for testing purposes only. A reboot after disabling these clients is recommended.

Finally

This is the first build of Windows 10, available to testers, where the App-V and UE-V clients are built in. While Group Policy will also be an option for enabling these services en masse, doing via PowerShell is still useful for some scenarios.

In going through this exercise, there are two things that stand out:

  • The Enable and Disable cmdlets should return a True or False if the command was successful or not. This is expected to be fixed before release. [24th April 2016 – build 14328 has updated the cmdlets to return a status]
  • I would like to see the App-V and UE-V clients enable and disabled as Windows Features (to enable/disable via DISM or ‘Programs and Features’), rather than just be in-box disabled. I’m not confident that this approach will change.

If you are a Windows Insider, I would recommend testing the App-V and UE-V functionality delivered as a part of this build. In addition, if you encounter challenges or bug, be sure to log them on Connect.