An old friend, Michael Bilodeau, posted a blog last week about setting up an HTTP reporting portal for App-V. (See Technet blog https://blogs.technet.com/b/appv/archive/2011/11/10/how-to-create-a-sample-app-v-http-reporting-service.aspx). Michael might not be a familiar name to many of you, but he is to me. Michael was my development manager for the server side of the original SoftGrid server (now known as the traditional App-V server). So he knows what he is talking about.
Originally, SoftGrid clients reported application activity “real-time” with the server. Launch and Shutdowns of applications caused RTSP messages to the server which then recorded the event into the database for reporting.
When Microsoft updated the product in App-V 4.5, they changed the way this works. One thing they wanted to do was to be able to capture app usage when the client is offline. The early versions of SoftGrid didn’t support offline use at the client at all, that came in version 2.5 (I think). So reporting had never worked well for laptop users.
To fix this, Microsoft had the client record virtual application activity in an XML file. The next time the client talked to the App-V server, the server would ask for the file contents and the file would get cleared out.
For some time, I have wanted to be able to collect this metering information for clients not working with the Traditional App-V server. But the file wasn’t generated at those clients and Microsoft did not provide any documentation on how to turn it on. So no reporting for Stand-alone or SCCM clients.
As Michael’s post points out, the trigger for generating the data is in having a publishing server record in the Client Management Console. You don’t need to have a real App-V server, just an IIS page that performs a little magic, and his post documents that magic in C#.
This week I created a prototype of a web service loosely based on Michaels code. There is much more rich data contained in the XML file than he captured, and I chose to store it all into the database. I also eliminated the scheduled task, and produced some prototype web reports.
The first report you see here is a report on the use of a selected application (click on picture for blow-up):
Here is a report on a selected client machine:
And here is one on a selected user:
We can also calculate time spent in applications, and it should be possible to do much more. Interesting stuff to play with…