Blog

Eastern is sharing technical stuff about IT

What is the problem with App-V on Windows 10 Anniversary Update
Microsoft released App-V as an add-on for Windows in the MDOP (Microsoft Desktop Optimization Pack). So I also run App-V to have some hands on experience with applications on my Windows 8.1 and later Windows 10 installation. Last week I upgraded to Windows 10 Anniversary Update 1607, and I run in to errors with App-V applications. My Total Commander session lost all the configuration settings, slow starting or even not starting App-V applications.

App-V is now part of Windows, but only for the Enterprise edition. I am running my private computers on Windows 10 Professional unfortunately. For me it wasn’t such a big problem for missing App-V, but the applications can not be removed as well without a running client.

In this blog I will show how to enable the App-V client again. Be aware that this probably not allowed in the EULA, but you are at least able to remove the packages and stop using App-V.

What are the symptoms of a disabled App-V client
Some of the App-V applications will still start, but it take ages to start. And also the settings and files which are stored in the %appdata% of the Virtual File System are inaccessible:

AppV Error on Windows 10

Running the PowerShell command Enable-AppV is giving the error message ‘Enable-Appv : App-V is not available on this edition of Windows’. The command Get-AppvClientPackage and Get-AppvClientPackage | Remove-AppvClientPackage are not functioning as well:

Enable-AppV not working on Windows 10 Professional

Starting the Microsoft App-V Client is not possible, even after setting the service to start manual or automatic.

Start App-V service width=

How to fix the App-V client and let it start again
The fix is easy, open the registry editor and change the following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Enabled

To the value 1

2016-08-19_204305 ERIK-P50 erik

After this change the App-V client will start function, and you are also able to remove all the App-V packages and disable it again to be compliant ;-).

App-V running and working on Windows 10 Anniversary Update Professional

In case you want to get rid of all you’re App-V packages run this (be carefull):

Get-AppvClientPackage | Remove-AppvClientPackage

The clock application with milliseconds which run always on top! This little tool is build to capture the exact time in case of an performance problem. With an extra tool for video recording it can help to record the screen of the user, and see the probably performance slowness.

Download here: clock.exe

Why to have detailed logon information from Citrix?
Sometimes anyone is asking you, the performance is not what we like. Within a Citrix environment it is easy to get into the director to see the overview of the logon times.
By default Citrix Director gives the following information about the logon:

citrix director

However average is a good indication, average is not always the best method to measure something. Digging in to the numbers can be needed to get the exceptions clear.
This blog will shortly explain how to get more detailed information from your database.

What kind of results do you get?
My final report shows the following:

graph

This gives more detailed information about how long users need to wait for a logon. The data in this graph is based on the field InteractiveDesktop from the query below.

But also any table with detailed information can be made. Or query on user, query on VDI name, e.g.

My baseline tools
I used the following tools to create this graph:

  • Microsoft Excel
  • SQL Server Management Studio

The results of the query in SQL Server Management Studio can easily copied into Excel. With Pivot tables you can create this kind of graphs.

SQL code
When you run the following query on the Monitoring Database it will give a lot of output.

/* Citrix Director only gives Average information about logon. 
This query gives detailed and calculated information about the logontimes. */

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT LogonDuration = DATEDIFF(Second, [LogOnStartDate], [LogOnEndDate])
      ,[BrokeringDuration]
      ,[AuthenticationDuration]
      ,GpoDuration = DATEDIFF(Second, [GpoStartDate], [GpoEndDate])
      ,InteractiveDesktop = DATEDIFF(Second, [BrokeringDate],[InteractiveEndDate])
      ,FORMAT([BrokeringDate] , 'dd-MM-yyyy') AS EasyDate
      ,FORMAT([BrokeringDate] , 'HH') AS EasyHour
      ,[Name] AS VM
      ,[ClientName]
      ,[ClientAddress]
      ,[ClientVersion]
      ,[ConnectedViaHostName]
      ,[ConnectedViaIPAddress]
      ,[LaunchedViaHostName]
      ,[LaunchedViaIPAddress]     
      ,[LogOnStartDate]
      ,[LogOnEndDate]
      ,[BrokeringDuration]
      ,[BrokeringDate]
      ,[DisconnectCode]
      ,[DisconnectDate]     
      ,[ClientSessionValidateDate]
      ,[ServerSessionValidateDate]
      ,[EstablishmentDate]     
      ,[AuthenticationDuration]
      ,[GpoStartDate]
      ,[GpoEndDate]
      ,[LogOnScriptsStartDate]
      ,[LogOnScriptsEndDate]
      ,[ProfileLoadStartDate]
      ,[ProfileLoadEndDate]
      ,[InteractiveStartDate]
      ,[InteractiveEndDate]     
  FROM [MonitorData].[Connection]
  LEFT JOIN [MonitorData].[Session]
  ON ([MonitorData].[Connection].[SessionKey] = [MonitorData].[Session].[SessionKey] )
  LEFT JOIN [MonitorData].[Machine]
  ON ([MonitorData].[Session].[MachineId] = [MonitorData].[Machine].[Id])
  
  
  WHERE Convert(date,[LogOnStartDate]) = Convert(date,GETDATE())
            AND [IsReconnect] = 0

Conclusion
Citrix is logging a lot of information in the database, but unfortunately the Director is not showing the information. With SQL query’s there are a lot of options to query this information.
All details about the values in the database can be found here: support.citrix.com
Depending on the Citrix license which is purchased, more or less information is stored in the database. Please keep in mind that old records in the database will be cleared automatically. So make you’re report on time, or create something to save the data.