Lets continue with the details of the User Configuration-files!
Most of the pre-generated content of the file has been removed – the scripting part is what this post will mostly deal with! Now we can deploy a per-user configuration – which will allow us to configure all options and deploy a package with a different configuration for a set of users! As opposed to the one common OSD-file, we can now have a single package and create several different sets of configuration files for different user groups. Shortcuts, protocol handlers, Apppaths, FTAs, scripts, COM-isolation – can now all be configured with different configuration for any per-machine deployment and per-user deployment! There we rarely need to clean-up the shortcuts in a package, but can rather do a post-packaging clean-up on whats get published on a client using a configuration file!
See the sample script that has been automatically generated from the App-V 5 beta – we can initiate quite a few different options and hopefully this can provide an even more valuable asset when it comes to setup our applications environment!
<!-- User Scripts Example - customize and uncomment to use user scripts -->
<!--
<UserScripts>
<StartProcess RunInVirtualEnvironment="true">
<Path>VFS\ProgramFilesX86\App\dosomething.exe</Path>
<Arguments>-WithArgs</Arguments>
<Wait RollbackOnError="true"/>
<ApplicationId>[{AppVPackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
</StartProcess>
<ExitProcess>
<Path>VFS\ProgramFilesX86\App\UnDoSomething.exe</Path>
<Arguments>-WithArgs</Arguments>
<Wait RollbackOnError="false"/>
<ApplicationId>[{AppVPackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
</ExitProcess>
<StartVirtualEnvironment RunInVirtualEnvironment="true">
<Path>[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\DoSomething.exe</Path>
<Arguments>-WithArgs</Arguments>
<Wait RollbackOnError="true"/>
</StartVirtualEnvironment>
<TerminateVirtualEnvironment>
<Path>[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\UnDoSomething.exe</Path>
<Arguments>-WithArgs</Arguments>
<Wait RollbackOnError="false"/>
</TerminateVirtualEnvironment>
<PublishPackage>
<Path>\\server\share\foobar.exe</Path>
<Arguments>-WithArgs</Arguments>
<Wait RollbackOnError="true" Timeout="30"/>
</PublishPackage>
<UnpublishPackage>
<Path>\\server\share\barfoo.exe</Path>
<Arguments>-WithArgs</Arguments>
<Wait RollbackOnError="false" Timeout="30"/>
</UnpublishPackage>
</UserScripts>
-->
</UserConfiguration>