Office 2010 and App-V 5

Sequencing Office 2010 with App-V 5 is quite simple and actually less of a hassle compared to the instructions for the previous version of App-V (4.6). The instruction still requires full attention of the person executing them, but there are less steps to mix-up things with. Most likely – this is due to the new Virtual Extensions in App-V 5 that can more easily integrate any product into the operating system.

There is a known issue list posted by Microsoft that details some topics that are quite interesting and will present a few gotchas to any one deploying this.

And, as always; Read Aaron Parkers whitepaper regarding the virtualization of Office 2010 with App-V. It is a long document, but then again – if you fail to deliver office properly the negative spiral from end-users will drown you in work.

However, its quite a big task to virtualize Office and even with the simplified and more enabled virtual extensions – there are a few gotchas. Like this;

image

There are two Mail Control Panel applets published with the App-V 5.0 integration kit. The 64-bit version doesn’t work out of the box, most likely because its not supposed to be used at all if you are deploying a 32-bit version of Outlook. I can’t say that the same is true for the 32-bit applet if deploying 64-bit version of Outlook – that you may test on your own.

You can manually correct this by locating the following registry key;

HKEY_CLASSES_ROOT\CLSID\{005CB1F2-224F-4738-B051-91A96758F50C}\shell\open\command

Set the default value to REG_EXPAND_SZ to;

C:\ProgramData\App-V\CAA7FF95-824E-461C-8DBB-0FCB2431415D\F7ABB870-0634-445A-867A-5AB1D09C7BE5\Root\Client\AppVLP.exe" rundll32.exe shell32.dll,Control_RunDLL "C:\ProgramData\App-V\CAA7FF95-824E-461C-8DBB-0FCB2431415D\F7ABB870-0634-445A-867A-5AB1D09C7BE5\Root\Office14\MLCFG32.CPL

Well – actually don’t. The above reference is the specific path to the unique guid of my personal package.  Pick up _your_ specific path from the 32-bit key;

HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{72F3C31D-95DE-4d79-9979-FB899BB89427}\shell\open\command
Tagged

Identify App-V 5 errors

App-V 5 has provided us with many granular logs to identify issues, but when troubleshooting there needs to be an overview of errors. For the last few days quite a lot of effort on my own part has been in browsing through the logs, so as opposed to manually traverse individual logs or filtering all of them we can leverage PowerShell to identify errors quite easily. The below piece of code will traverse all but one of the logs and quickly identify any errors.

#Nicke Källén – 2013-05-08
#Define App-V logs
$appvlogs = Get-WinEvent -ListLog *AppV* -Force
#Define start-time - suggested time yesterday
$starttime = (Get-Date).AddDays(-1)
#Define end-time - now
$endtime=[datetime]::Today
#Set Culture to en-US, otherwise Message goes blank
$orgCulture = Get-Culture
[System.Threading.Thread]::CurrentThread.CurrentCulture = New-Object "System.Globalization.CultureInfo" "en-US"

#Loop through all log-files
foreach ($log in $appvlogs) {
write-host “Log; ” $log.LogName
#Skip operational log as it most contains informational messages and is heavy
if ($log.Logname -ne "Microsoft-AppV-Client/Operational") {
#Select only errors (level = 2) and select time and message of the event
Get-WinEvent -FilterHashTable @{Logname=$log.LogName;starttime=$starttime;endtime=$endtime} -Oldest -ErrorAction SilentlyContinue| ?{$_.Level -eq "2"} | Format-List TimeCreated, Message
}}
# Reset Culture to orginal
[System.Threading.Thread]::CurrentThread.CurrentCulture = $orgCulture
Tagged ,

App-V 5; Enable or disable all debug-logs

Been diving into the App-V 5 logs for a few days and got tired of enabling the debug and analytic log files. Made a small sample to enable them in a loop;

Enable all App-V 5 logs;

##Nicke Källén 2013-05-08
##Enable all logs
$appvlogs = Get-WinEvent -ListLog *AppV* -force | Where-Object {$_.IsEnabled -eq $false}
foreach ($logitem in $appvlogs) {
     write-host “Log enabled: ” $logitem.LogName
     $logitem.IsEnabled = $true
     $logitem.SaveChanges()
}
##Disable all logs
$appvlogs = Get-WinEvent -ListLog *AppV* -force | Where-Object {$_.IsEnabled -eq $true}
foreach ($logitem in $appvlogs) {
if (($logitem.LogName -ne "Microsoft-AppV-Client/Admin") -or ($logitem.LogName -ne "Microsoft-AppV-Client/Operational") -or ($logitem.LogName -ne "Microsoft-AppV-Client/Virtual Applications"))
{
     write-host “Log Disabled: ” $logitem.LogName
     $logitem.IsEnabled = $false
     $logitem.SaveChanges()
}}

No error handling is available, this is just a quick start to avoid loads of clicking.

(2013-05-05 – Added the Where-object to avoid getting errors…)

Tagged ,

App-V troubleshooting–a common view of logs

App-V 5 has gotten rid of the previously used text-based format for log-files and now provides multiple event logs, some hidden under the “Show analytic and debug logs”, which can be reviewed individually to identify issues.

In reality, we are still talking about a log to catch an issue and since its an issue – it might be hard to know where to look. When we enable analytic and debug logs there are two steps to get the output. First, we enable the debug logs to see the in the tree-list;

image

Once they are visible, we need to enable them to get any output. And oh boy, there is a lot of them.

image

Each log can be enabled, individually. You will always have to enable a log to view it anywhere, and to avoid excessive usage of the logging functionality – recommended approach is to disable the debug-logs once the troubleshooting scenario is completed.

So now there are X amount of individual event logs that we can jump between in order to identify what happens. Lets try to combine them into one common view – something that will make life easier;

image

We now have the option to select a few criteria to which can combine events from any log to a common view – allowing us to view a common timeline of all events.

image

App-V does provide us with a lot of logs (which is great!), so once we click OK – we get this warning;

image

Finally – we can name our view;

image

Now we have a custom view that have joined all the App-V events into a single view! Great for tracking in a difficult situation!

Tagged

App-V 4.6 SP2 sequencer

Tells me it did a good job

image

Appsense Environment Manager–fast logon

Some general rules of the Appsense Environment Manager and howto to implement a fast logon. Most of this is available in version 8.3 and upwards.

Personalize or Policy

The order of which things comes down is;

Personalization data
Policy

If a value is both persisted in personalization data and then enforced via policy – it is essentially beeing set twice. Pick one – don’t personalize or don’t enforce.

Avoid including to much in Global settings for Personalization or for each app. If you add an exclusion or remove an inclusion at a later stage – it will not clean out any settings already in the database. Whats in the database will always be brought down to the client.

(things can be cleaned out of the database – but that’s tedious)

Order items

Items in a policy can be placed in multiple ways and there aren’t any obvious structure todo it if you are brand new. Here comes some general rules of the trade;

Long running actions should start of early – so place them at the top. As early as possible.

Scripts needs to be extracted and then executed. They cost time. Avoid unless necessary. Appsense native functions are faster.

If one action fails (setting an environment variable as an example), all actions depending on that will be stopped. To avoid child nodes still executing, check Stop if failed. (correction by Bryan Chriscoli)

Since 8.1, the threads are dynamically created. You can have 100 parallel actions and it will create 100 threads, child’s actions/nodes are then limited to 10.
(correction by Brian Chriscoli)

Logon vs Process start

Avoid setting all application specific settings during logon, if its only effecting one (or a set of) applications use the Process Start (Office for example)

Use the condition to set a process trigger to only run once for the session to avoid additional startup time for applications

Tagged

Teamviewer 8, Licensing and App-V

If you sequence Teamviewer 8 with App-V 4.X there has previously been a recommendation to use the portable version to allow an easy path. The steps are outlined in a post on Appvirtguru and can be followed by anyone. As an alternative – you can use the traditional install, with a few recommendations that will ease the path forward.

As always – use MSI-files as the primary source for any installation. Retrieve Teamviewer MSI-files here from teamviewer.com

Pre-sequencing

Perform a traditional installation and setup your configuration. Once the setup is completed and all the configurations are as you like them – export them using the Advanced options;

image

Choose Export options to a *.reg-file and also choose to include your licensing information.

Name the file TeamViewer_Settings.reg and place it in the same folder as the Teamviewer MSI-file.

This will be your installation-kit.

Sequencing

Initiate the sequencing process and install the MSI-file for the Teamviewer Admin. Do not start the Teamviewer during the sequencing process at any stage.

Post-sequencing

The below registry key is part of the export performed in the pre-sequencing steps. You can extract that and insert it into the package. My recommendation is to set this within the OSD-file to ensure that its always present. There is no value here, this has to be retrieved from your own export.
The below key is from a 64-bit system


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432node\TeamViewer\Version8]
"LicenseKeyAES"=hex
Tagged

European App-V User Group 2013 – Video #3

Rodney Medina – showing how its done;

Tagged