Thursday 25 June 2015

Citrix XenApp error message: You do not have permissions to execute 16-bit applications


Background

When launching a 16-bit application on a 32-bit Windows Server 2008 Enterprise SP2 OS server running Citrix XenApp 5.0, the user receives a "wfshell.exe - System Error" dialog box that states the application executable "is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator".

After clicking OK to this error, another dialog box is displayed. This one, titled "Citrix XenApp" states that the application "failed to start. The Citrix server is unable to process your request to start this published application. Please try again. If the problem persists, contact your administrator".

Cause

This error happens because 16-bit applications have been restricted from running. This may be through Group Policy, the Local Policy, or a registry entry.

The user's roaming profile could have "caught this disease" after they logged onto a server that had disabled the running of 16-bit applications due to security reasons, and their roaming profile was updated as a result of this.

This issue can occur if any one of the following files are missing, damaged, or not located in the %systemroot%\System32 folder:

  • Autoexec.nt
  • Command.com
  • Config.nt


Resolution

There are a few potential resolutions to this problem.

One is the following Local or Group Policy setting:

Administrative Templates > Windows Components > Application Compatibility
Setting: Prevent access to 16-bit applications
State: Disabled

Another is the following Windows Registry settings:

Key: HKLM\System\CurrentControlSet\Control\WOW
Name: DisallowedPolicyDefault
Type: DWORD (32-bit)
Value: 0

Key: HKLM\Software\Policies\Microsoft\Windows\AppCompat
Name: VDMDisallowed
Type: REG_DWORD
Value: 0

Key: HKU\{Users_SID}\Software\Policies\Microsoft\Windows\AppCompat
Name: VDMDisallowed
Type: REG_DWORD
Value: 0

The last registry setting needs to be updated whilst the user is logged onto the Citrix server. They then need to log off and back on again for the changes to take effect. Another way would involve updating the user's roaming profile (NTUSER.DAT) by loading this hive in REGEDIT whilst the user is logged out of Citrix and making the changes before unloading the hive and asking them to log on again.

This could also be scripted by using REG.EXE if needed by running the following command:

REG ADD HKLM\Software\Policies\Microsoft\Windows\AppCompat /t REG_DWORD /v VDMDisallowed /d 0

Lastely, run a GPUPDATE /FORCE or reboot the server for good effect!

No comments:

Post a Comment