Can I sequence applications that update themselves?

There are applications out there that have an automated update mechanism built-in. These applications can be sequenced, but there are some things you should be aware of.

Applications that are SoftGrid enabled always run under the user-context. All changes being made by the user or by the application itself while using it are being saved in a Delta file (.pkg). The Delta files always are per user and per application. So an automatic update through the application itself is actually being saved per user. Per default this is even in the Windows User Profile in a SoftGrid Client folder.

So the advice is turn off these type of automatic updates during sequencing. Use the “Active Upgrade feature” of SoftGrid for application updates.

If you don’t the SoftGrid Client folder for each user could grow enormously and depending of the application even windup in the situation where user A uses version 1.1 and user B uses version 1.0, even on a shared machine. Also when there is a problem with the Windows User Profile or SoftGrid Client directory, or if it is unreachable, the application update and settings will be unavailable or lost, and the application is “reverted” to the version you started out sequencing.

Newbie on Microsoft Application Virtualization (SoftGrid)

If you are a newbie on Microsoft Application Virtualization you are probably looking for good documentation. Well on the SoftGridBlog’s documentation page I have enumerated most of the documentation that is out there. But especially when you are new, I highly recommend “Inside the Grid selfstudy” and “The Art of Sequencing”.

Infrastructure Planning and Design (IPD) guide for SoftGrid

Making a Infrastructure Design for SoftGrid? Use Microsoft’s Infrastructure Planning and Design Guide for SoftGrid. The IPD guides from Microsoft are the next version of what we know as the Windows Server System Reference Architecture (WSSRA).

Find the IPD guide at Source or on SoftGridBlog’s documents page.

SoftGrid Visio Stencils

Mike Burke made some Visio Stencils with some SoftGrid related shapes in it. They could be useful making designs involving SoftGrid.

Download here

Microsoft Application Virtualization (SoftGrid) 4.5 Trial Guide available

This trial guide walks you through a step by step creation of a Microsoft Application Virtualization 4.5 system including the Sequencing of two applications. Once you have completed these setup steps, you will be able to test the benefits of Microsoft Application Virtualization in your own environment.

Read more and download at Source or download at SoftGridBlog’s documents page

MSI Utility for Microsoft Application Virtualization tested and explained

Ment van der Plas did an outstanding job explaining and testing the MSI Utility for Microsoft Application Virtualization.

Check his posts here:

The MSI Utility explained

The MSI Utility explained - Part 2

What does the MSIDEPLOYMENT=TRUE do?

Deploying Microsoft Virtual Applications (SoftGrid) through GPO assignment

Remember, this MSI Utility is for Application Virtualization (SoftGrid) 4.1 and 4.2 only. In Application Virtualization 4.5 MSI support is a default component of the Sequencer.

I have received the Microsoft MVP Award for SoftGrid!

MVP stands for Most Valuable Professional and I received this for Virtualization - SoftGrid. I received the news on January 1st. So it’s a pretty good start of the year for me. I must say I am very proud of this and will continue my work for the SoftGrid community with more motivation then ever. 

My MVP profile can be found here. 

More information about the Microsoft MVP program can be found here.

SoftGrid 4.1 Post SP1 Hotfix Rollup Package 1 available

This cumulative update for SoftGrid v4.1 SP1 provides the latest updates to SoftGrid v4.1 SP1. In addition to stability improvements, this update contains the following changes: 

• Improvements to package upgrade when importing upgraded sequencings into the SoftGrid Server Management Console Snap-in.
• Improvements to package downgrade operation.
• Improvements to nonpaged pool usage when sequencing large applications.
• Improvements to sequencing of applications that use both Microsoft .NET Framework 1.1 and Microsoft .NET Framework 2.0.
• Improvements to command-line parameter handling of virtualized child processes. 

New capabilities

• Microsoft SoftGrid now provides support for the MSI Utility for Microsoft Application Virtualization.
• Microsoft SoftGrid now supports SoftGrid Server components running under WOW64 on 64-bit Windows. 

Read more and download at source

Deploying Microsoft Virtual Applications (SoftGrid) through GPO assignment

After several successful manual installations I wanted to test the quality of the MSI Utility through automatic distribution. First up: Group Policy Object Software installation.    

So I set up a Windows Server 2008 Active Directory and two clients: one Windows XP SP2 and one Windows Vista SP1 machine. I’m using SoftGrid client version 4.2.1.21 and downloaded three applications from instantapp.net because that´s the lazy guy I am.

In preparation I created three Group Policy Objects:

  • SoftGridClientInstall (for the automatic installation of the SoftGrid 4.2.1.21 client)
  • SoftGridMachAppsInstall (for installing assigned applications to a machine)
  • SoftGridUserInstall (for installing published applications to a user)

So how did the installation(s) go?

SoftGridClientInstall
First there is the installation of the SoftGrid client itself. Of course this client, at least older versions of it, has probably been installed many times through many different ESD sollutions so this shouldn’t give much trouble.

Well, in one of my previous posts I already came to the conclusion that I needed the MSIDEPLOYMENT=TRUE property te be set on the command line. Since you cannot add properties directly to a command line with Group Policy Software installation (nope also not in Windows 2008) I had to create the next best thing: a transform file and added the property there.

But in previous testing I also noticed that, although the DoTimeOutMinutes key was set through the property above, the setting gets reverted to its original setting of 90 days. Which is not good. Although the value of the DoTimeOutMinutes key is a property named DOTIMEOUTMINUTES (go figure) and you can set this value on a command line or transform file, it doesn’t end up in the registry because an action inside the installer is triggered by the MSIDEPLOYMENT=TRUE property and is overruling it at install time. Arghh

There are several ways to work around the issue:

  1. Set the DoTimeOutMinutes key correct after the installation through a custom vbscript or Windows Server 2008 Group Policy Preferences, the latter being a very cool feature in Windows Server 2008 if I may say so.
  2. Remove the MSIDEPLOYMENT=TRUE property and set all the values correct in your transform file, either by customizing the registry table or setting several related properties.
  3. Leave the MSIDEPLOYMENT=TRUE property and edit the registry table in the transform file

I chose the last option. If you’re not familiar with Windows Installer internals you might want to choose another strategy.

First I edited the registry table at the location where the DoTimeOutMinutes key was located. The original value was #[DOTIMEOUTMINUTES] and I edited it to #[DOTIMEOUTMINUTES2].

Next I added the DOTIMEOUTMINUTES2 key to the property table and assigned it the value 16777215 (which is HEX:ffffff). You could also set this value directly in the registry table but be sure to assign the #sign in front of the number. This converts it into a REG_DWORD.

So now all I need is an “install” share (which I create on my DC for testing purposes) and copy my client package including the transform file I created to it. Btw don’t forget to add Domain Computers to the ACL of the install folder if you’re doing machines based software distribution, or it won’t work. I also noticed that by default in Windows Server 2008 the share permissions are set to Administrators only. You might wanna change that too!

Add the softgrid-wd-setup.msi to the Computer Configuration \ software installation portion of the GPO and add the transform file in the modifications tab (choose Advanced in the Deployment Method selection screen) and click ok.

Reboot the client and look what happens.

Check the registry key DoTimeOutMinutes and see if it’s set correctly!

SoftGridMachAppsInstall
Now that we have installed the SoftGrid client through GPO, let’s push some of those application down there as well.

I’ve copied the generated MSI’s to the install share where the SoftGrid client already was copied. I edited the SoftGridMachAppsInstall Computer Configuration \ Software installation section and added the three applications in there and selected the checkbox “uninstall this application when it falls out of scope of management” in the Deployment tab of the properties of the application.

 

Rebooted the machine and let’s see what happens.

Log in with a limited user

Removing the linked GPO to force the uninstall of the applications. Yep, they get uninstalled!.

SoftGridUserInstall
But does all this also work under limited user context?

Let’s disable the SoftGridMachAppsInstall GPO and enable the SoftGridUserInstall GPO so users should be able to get the applications that were published to them.

Normally a MSI that was published to a user would show up in the StartMenu, Desktop or as file association. However these are populated through several Windows Installer tables and in the MSI that was generated for the SoftGrid application these tables are not filled. So install on first use is not possible with this MSI.

We have to go to Add/Remove programs screen en click Add Program (in Windows XP) or Install a program from the network (in Windows Vista) to see the applications that are assigned to the user.

Click install and the application runs

And works :-)

Ok, VLC gave an error when I installed it on my Vista client. But this probably more related to Vista since it worked ok on XP. I won’t go into that right now.
The only thing I found is that when I set the Installation user interface options in the Deployment tab of the properties of the application to Maximum, I got some weird error on the client.

Don’t know what it means and what causes it, but setting this value to Basic solves the issue. Sadfully users are now not able to see the progress of loading the application, which I personally like very much.
Uninstalling the applications was as simple as installing them. Just remove the Group Policy link from the OU and make sure you select the checkbox “uninstall this application when it falls out of scope of management” in the Deployment tab of the properties of the application.

Summary
After some preparation on the deployment of the SoftGrid client itself, the individual applications had no trouble at all being deployed through Group Policy assignment. The installation and uninstall, performed both under machine and (limited) user context, went without any trouble.

Despite the fact that Maximum UI gave the “1:” error under user context, the MSI Utility for Microsoft Virtual Applications looks like a solid solution for software deployment!

What does the MSIDEPLOYMENT=TRUE do?

In my previous post I couldn’t find the reason for the MSIDEPLOYMENT=TRUE command line option of the recently released SoftGrid client 4.1.2.21 and 4.2.1.21.    

Some further investigation brought me to the following differences in the registry after successfully installing the client:

With MSIDEPLOYMENT=TRUE
“RequireAuthorizationIfCached”=dword:00000000
“AllowDisconnectedOperation”=dword:00000001
“Online”=dword:00000000
“ToggleOfflineMode”=dword:00000000
“DOTimeoutMinutes”=dword:0001fa40
“LimitDisconnectedOperation”=dword:00000000

Without MSIDEPLOYMENT=TRUE
“RequireAuthorizationIfCached”=dword:00000001
“AllowDisconnectedOperation”=dword:00000001
“Online”=dword:00000001
“ToggleOfflineMode”=dword:00000001
“DOTimeoutMinutes”=dword:0001fa40

It seems that the registry keys that are mentioned in the MSI Utility Admin Guide are set through the MSIDEPLOYMENT property.

BTW in neither situation the DOTimeoutMinutes key is set properly. Watch out for this one!

For more info on these registry key see my previous post.

Next Page »