Quantcast
Channel: The knack
Viewing all 153 articles
Browse latest View live

The AppV Book


RemoteFX Performance Counters

$
0
0

This is a pure copy-and-paste article from a Spanish blog about Performance Counters regarding the RemoteFX protocol within Windows Server 2012. Took me a long time to google it – so saving it here for use later on.

 

RemoteFX Graphics

  • Average Encoding Time: Average frame encoding time
  • Frame Quality: Quality of the output frame expressed as a percentage of the quality of the source frame
  • Frames Skipped/second – Insufficient Client Resources: Number of frames skipped per second due to insufficient client resources
  • Frames Skipped/second – Insufficient Network Resources: Number of frames skipped per second due to insufficient network resources
  • Frames Skipped/second – Insufficient Server Resources: Number of frames skipped per second due to insufficient server resources
  • Grphics Compression Ratio: Ratio of the number of bytes encoded to the number of bytes input
  • Input Frames/second: Number of sources frames provided as input to RemoteFX graphics per second
  • Output Frames/second: Number of frames sent to the client per second
  • Source Frames/second: Number of frames composed by the source (DWM) per second

RemoteFX Network

  • Base TCP RTT: Base TCP round-trip time (RTT) detected in milliseconds
  • Base UDP RTT: Base UDP round-trip time (RTT) detected in milliseconds
  • Current TCP Bandwidth: TCP Bandwidth detected in bits per second (bps)
  • Current TCP RTT: Average TCP round-trip time (RTT) detected in milliseconds
  • Current UDP Bandwidth: TCP Bandwidth detected in bits per second (bps)
  • Current UDP RTT: Average TCP round-trip time (RTT) detected in milliseconds
  • FEC Rate: Forward Error Correction (FEC) percentage
  • Loss Rate: Loss percentage
  • Retransmission Rate: Percentage of packets that have been retransmitted
  • Set Rate P0: Rate in bits per second (bps) at which data is sent with priority 0
  • Set Rate P1: Rate in bits per second (bps) at which data is sent with priority 1
  • Set Rate P2: Rate in bits per second (bps) at which data is sent with priority 2
  • Set Rate P3: Rate in bits per second (bps) at which data is sent with priority 3
  • TCP Received Rate: Rate in bits per second (bps) at which data is received over TCP
  • TCP Send Rate: Rate in bits per second (bps) at which data is sent over TCP
  • Total Received Rate: Rate in bits per second (bps) at which data is received
  • Total Send Rate: Rate in bits per second (bps) at which data is sent
  • UDP Packets/Received/sec: Rate in packets per second at which packets are received over UDP
  • UDP Packets/Send/sec: Rate in packets per second at which packets are sent over UDP
  • UDP received Rate: Rate in bits per second (bps) at which data is received over UDP
  • UDP Send Rate: Rate in bits per second (bps) at which data is sent over UDP

Keyboard Layouts–cleanup the languagebar

$
0
0

Want to get rid of excess language settings? In an European environment it can be quite nasty and if your organization truly spans across the globe – multiple settings can conflict. Here is to set the record straight and cleanup things properly from a default / mandatory profile along with some major HKLM cleanup to smoothly offer the right keyboard layout for users.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{0000897b-83df-4b96-be07-0fb58b01c4a4}\LanguageProfile\0x00000000\{0001bea3-ed56-483d-a2e2-aeae25577436}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{03B5835F-F03C-411B-9CE2-AA23E1171E36}\LanguageProfile\0x00000411\{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{241A9AFE-5045-43a8-9F86-1B5E3814095C}\LanguageProfile\0x00000404\{0AEC109C-7E96-11D4-B2EF-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{241A9AFE-5045-43a8-9F86-1B5E3814095C}\LanguageProfile\0x00000404\{0B883BA0-C1C7-11D4-87F9-0080C882687E}]

“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{241A9AFE-5045-43a8-9F86-1B5E3814095C}\LanguageProfile\0x00000404\{B2F9C502-1742-11D4-9790-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{241A9AFE-5045-43a8-9F86-1B5E3814095C}\LanguageProfile\0x00000404\{F3BA907A-6C7E-11D4-97FA-0080C882687E}]

“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{3FC47A08-E5C9-4BCA-A2C7-BC9A282AED14}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{3FC47A08-E5C9-4BCA-A2C7-BC9A282AED14}\LanguageProfile\0x00000804\{F3BA9077-6C7E-11D4-97FA-0080C882687E}]

“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{3FC47A08-E5C9-4BCA-A2C7-BC9A282AED14}\LanguageProfile\0x00000804\{FA550B04-5AD7-411f-A5AC-CA038EC515D7}]

“Enable”=dword:00000000

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{4518B9B5-7112-4855-B64F-2EC0DD2831E6}\LanguageProfile\0x00000411\{54EDCC94-1524-4bb1-9FB7-7BABE4F4CA64}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}\LanguageProfile\0x00000404\{0B883BA0-C1C7-11D4-87F9-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}\LanguageProfile\0x00000404\{4BDF9F03-C7D3-11D4-B2AB-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}\LanguageProfile\0x00000404\{6024B45F-5C54-11D4-B921-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}\LanguageProfile\0x00000404\{761309DE-317A-11D4-9B5D-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}\LanguageProfile\0x00000404\{B2F9C502-1742-11D4-9790-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{531FDEBF-9B4C-4A43-A2AA-960E8FCDC732}\LanguageProfile\0x00000404\{F3BA907A-6C7E-11D4-97FA-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}\LanguageProfile\0x00000804\{F3BA9077-6C7E-11D4-97FA-0080C882687E}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}\LanguageProfile\0x00000804\{FCA121D2-8C6D-41fb-B2DE-A2AD110D4820}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{A028AE76-01B1-46C2-99C4-ACD9858AE02F}\LanguageProfile\0x00000412\{B5FE1F02-D5F2-4445-9C03-C568F23C99A1}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{AE43355F-D71A-4E19-BB94-C23CCBF88F74}\LanguageProfile\0x00000412\{48878C45-93F9-4aaf-A6A1-272CD863C4F5}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x00000404\{037B2C25-480C-4D7F-B027-D6CA6B69788A}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x00000404\{D38EFF65-AA46-4FD5-91A7-67845FB02F5B}]

“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x0000045e]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x0000045e\{8F96574E-C86C-4bd6-9666-3F7327D4CBE8}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x00000478\{409C8376-007B-4357-AE8E-26316EE3FB0D}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x00000804]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x00000804\{54FC610E-6ABD-4685-9DDD-A130BDF1B170}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x00000804\{733B4D81-3BC3-4132-B91A-E9CDD5E2BFC9}]
“Enable”=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}\LanguageProfile\0x00000804\{EF63706D-31C4-490E-9DBB-BD150ADC454B}]
“Enable”=dword:00000000

 

Looking at the user profile there can be several places in which configuration can be found.

Primary key for keyboard settings;

image

The language bar configuration can be seen under HKCU\Software\Microsoft\CTF and three places below this registry key contains configuration relating to what will be seen in the actual language bar. They are all expanded below.

image

Internet Explorer 10 fails to install

$
0
0

As I am still running Windows 7 simply due to the lack of time to update my main computer, beeing able to update to to Internet Explorer 10 was simply a great opportunity to improve my experience on browsing the web. Unfortunately the installation experience failed miserably. The install wizard looped through in no-time at all, restarted Internet Explorer. No error, unfortunately – no Internet Explorer 10 either.

To customize the experience for deploying it to an enterprise you can use the Internet Explorer Administration Kit. A more detailed explanation of howto provide it via an image is also available via Technet.

Lets continue with the installation issue… first of all, I  verified that all prerequisites were installed. This could easily be done by visiting a already available knowledgebase article that states all the prerequisites and provides easy to access links for all of them. Unfortunately this did not alter the behavior in anyway and the next article up is Troubleshooting a failed installation of Internet Explorer 10. The article did provide some general insights, but none of the steps did provide any alteration of the behavior – it seems to more provide content with an end-user in mind then an IT administrator. There, lets review the Technet article Troubleshooting Internet Explorer 10.

The following is listed in the article;

If Setup fails, you can troubleshoot errors by using the Setup log files:

  • IE10_main.log
  • IE10_NR_Setup.log
  • IE10_uninst.log
  • cbs*.log
  • WU_IE10_LangPacks.log

Great! Lets start digesting! I could only locate the IE10_main.log within C:\Windows

Here is a cut out of the log that seemed interesting;

image

Whats so special about the above? C:\Windows\sysnative is not a folder I have ever seen.

The first command-line looks like this;

00:03.214: ERROR:   Unable to create process ‘C:\Windows\SysNative\dism.exe /online /add-package /packagepath:C:\Windows\TEMP\IE147AE.tmp\IE10-neutral.Extracted.cab /quiet /norestart’, errorID = 0×00000000 (0)

The above tells me;

  • It installs Internet Explorer 10 using DISM
  • It extracts all files necessary to a specific sub-folder within c:\windows\temp\
  • I can most likely install this on my own

I restarted the installer, located the temp-folder and extracted all the files. I simply copied the entire lot to c:\windows\temp to ease my next step. This is what the folder looks like;

image

I removed the c:\windows\sysnative and the sub-folder from temp to get the following commands;

dism.exe /online /add-package /packagepath:C:\Windows\TEMP\IE10-neutral.Extracted.cab /quiet /norestart

dism.exe /online /add-package /packagepath:C:\Windows\TEMP\Spelling_en\Windows6.2-KB2764916-x86.cab /quiet /norestart

dism.exe /online /add-package /packagepath:C:\Windows\TEMP\Hyphenation_en\Windows6.2-KB2764913-x86.cab /quiet /norestart

The packages installed and after a reboot – finally!

image

European App-V User Group 2013 – video #1

European App-V User group 2013 – Video #2

$
0
0

Ment van der Plas – rocking the stage

European App-V User Group 2013 – Video #3

$
0
0

Rodney Medina – showing how its done;

European App-V User Group 2013 – Video #4


European App-V User Group 2013 – Video #5

Teamviewer 8, Licensing and App-V

$
0
0

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

Appsense Environment Manager–fast logon

$
0
0

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

App-V 4.6 SP2 sequencer

App-V troubleshooting–a common view of logs

$
0
0

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!

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

$
0
0

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;

$appvlogs = Get-WinEvent -ListLog *AppV* -force

foreach ($logitem in $appvlogs) {
write-host “Log enabled: ” $logitem.LogName
$logitem.IsEnabled = $true
$logitem.SaveChanges()
}

Disable all App-V 5 logs;

$appvlogs = Get-WinEvent -ListLog *AppV* -force
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.

Identify App-V 5 errors

$
0
0

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

Office 2010 and App-V 5

$
0
0

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

European App-V User Group 2013–Video #6

$
0
0

Not the entire presentation, but Roel made the video available on his own! Great work!

App-V 4.6 Manual uninstall

$
0
0

Did you ever get the dreaded error Error 25028.The Application Virtualization Client service could not be configured from the App-V installer? It should be effective enough to perform a manual cleanup according to the previously blog-post article by Microsoft, however there are some minor steps that eases the process in addition to what has been communicated.

A summary of steps according below;

Execute the following commands to remove the services;

sc delete sftvsa 
sc delete sftlist 
sc delete sftplay 
sc delete sftfs 
sc delete sftvol

Delete the following folders;
C:\ProgramData\Microsoft\Application Virtualization Client
c:\program files (x86)\microsoft application virtualization
%public%\documents\softgrid client
%appdata%\softgrid client
%localappdata%\softgrid client

For an App-V 4.6 SP2 client, you need to remove this registry entry;

HKEY_CLASSES_ROOT\Installer\Products\C38408D5792D40E4E9FDDD8525E15956

It may be different for an App-V 4.6 SP1 client, but you can easily find it by searching for “Virtualization”.

Reboot the client and the installation should run cleanly afterwards.

App-V 5.0 SP2 – Visual C++

$
0
0

Since App-V 4.5 has been released into the wild there has been a couple of things I personally have been preaching to the community to get a high level of successful virtualized applications. One of these things is the deployment, and active updating of, Visual C++ Redistributable. All in all there is about 22 different versions to be deployed both onto any sequencing machine and any potential client. See the previous article Setup a VM for Packaging for a complete list that contains download links and in which order I install. them. Tim Mangan has gathered a more complete list that contains a lot more information about each and every version of the Visual C++ Redistributable. Now, this is all talk and no evidence that the native installation of all these different prerequisites will actually make life easier for anyone and perhaps just introduce a risk for us when deploying additional components natively.

I wrote a FAQ response on Aaron Parkers App-V 4.X FAQ regarding if you can virtualize VC Redist or .NET Framework – which conclusive says NO. In addition to the above generic response, I have personally dealt with SAP GUI (7.1 / 7.2), Adobe Photoshop CS6 (most likely applicable to all CS 6 software), Paint.NET, the error message 000036B1 and Autodesk Navisworks Freedom when it comes to recipes and specific error messages that all go back to missing Visual C++ Redistributable components as a root cause.

This is now a thing of the past.

App-V 5.0 SP2 changes this drastically as it will detect and virtualize all versions of Visual C++. In addition to this – the App-V 5.0 SP2 client will now detect VC++ Redist components part of packages produced in earlier versions of the App-V 5.0 sequencer and also allow those to be part of the virtual environment.

How does this work? It just works!

When you sequence a software, no “special” actions are necessary, no additional steps are required. Once you have completed the installation a report will inform you that the components are detected;

image

The details of the report looks like this. It tells us which components have been detected.

image

What does this mean for the previous written best practices?

It’s all in the trash

We can move back to a “lowest common denominator” for the Visual C++ Redistributable components and make sure that as much as possible are part of our packages. Stay tuned for an updated article on that!

One setting located under Options on the sequencer;

image

App-V 5.0 SP2–Shell Extensions

$
0
0

Since I first started looking at App-V (4.1) back in 2006 – there was one feature that has always been wished upon.

Right-click menus – aka shell extensions.

Aaron Parker has previously written a hack which could resolve this, but its not been widely used and requires a lot of work but does not provide all functionality. The initial idea came from VMware and howto leverage the MSI-file to “workaround” the issue

image

Why? Since day 1 – part of the App-V training has been to sequence a “simple” application. Such as WinZip, WinRar or any other common compression utility part of any standard desktop deployment. However, when deploying this in production a single topic always surfaced and gave App-V a bad reputation within all companies. Shell extensions were not supported as an extension. In essence – the knowledge the operating system had about any existence of a virtual application was shortcuts and file type associations. It has taken from 2006 and up until App-V 5.0 RTM in 2012 until this changed in anyway. App-V 5.0 introduced major feature changes in this area and this of course brought a lot of hope up.

This hope has now turned into reality.

I can not praise Microsoft enough to finally provide us with this feature request.

As you can see – both WinRar and Beyond Compare have been deployed to a client, and as soon as a right-click menu is presented with the options – the package is in use.

What do you need todo during sequencing to make this work? Nothing – it just works!

Finally – we can truly aim for that 100% virtualized applications scenario being in reach for any environment. Its not quite there, but it is not far away.

New extensions are;

ActiveX controls
Browser Helper Object
Context Menu Handler
Drag-and-drop Handler
Drop target handler
Data object Handler
Property sheet handler
Infotip handler
Column

Viewing all 153 articles
Browse latest View live