Thursday, April 24, 2014

Citrix, Internet Explorer and AppV

I wrote about the issue of Internet Explorer and AppV here before.  Long story short, Citrix changes the iexplorer.exe launch handle to point to its own stub of iexplore.exe.  I suggested changing the iexplore in the registry to point to the proper version of IE, but the Citrix version appears to be a FTA (File Type Association) stub of some sort.  Another solution would be to use the full path to iexplorer.exe (C:\Program Files (x86)\Internet Explorer\iexplore.exe) in the path of the published Citrix application.  This avoids the stub being launched.

Tuesday, April 22, 2014

Problems.txt file in Citrix Receiver 4.0/4.1 reports "Error 500"

Tuesday, April 22, 2014/1:13:53 AM Launch raw="-launch" "-s" "pnagent-8c72c230" "-CitrixID" "pnagent-8c72c230@@compFARM01:ORANGE Desktop" "-ica" "compFARM01:ORANGE Desktop" "-cmdline", state=Dazzle.AppMonitor.MainState silent=False res=pnagent-8c72c230@@compFARM01:ORANGE Desktop
Tuesday, April 22, 2014/1:13:53 AM Try launch type 0 of 1 = IcaLaunchInfo
Tuesday, April 22, 2014/1:13:53 AM Get ica file for 'pnagent-8c72c230@@compFARM01:ORANGE Desktop'
Tuesday, April 22, 2014/1:13:53 AM Creating AuthManager request context to "http://myappscomp.ca/Citrix/PNAgent/launch.aspx" under name "PNA" with flags "None"...
Tuesday, April 22, 2014/1:13:53 AM Prepared AuthManager request context with result: Continue
Tuesday, April 22, 2014/1:13:53 AM Got translated url from AuthManager: http://myappscomp.ca/Citrix/PNAgent/launch.aspx
Tuesday, April 22, 2014/1:13:54 AM GetICAFileRetryLoop: retrying due to possible bogus ResourceUnavailable error
Tuesday, April 22, 2014/1:13:54 AM GetICAFileRetryLoop: retrying in 00:00:02
Tuesday, April 22, 2014/1:13:56 AM Creating AuthManager request context to "http://myappscomp.ca/Citrix/PNAgent/launch.aspx" under name "PNA" with flags "None"...
Tuesday, April 22, 2014/1:13:56 AM Prepared AuthManager request context with result: Continue
Tuesday, April 22, 2014/1:13:56 AM Got translated url from AuthManager: http://myappscomp.ca/Citrix/PNAgent/launch.aspx
Tuesday, April 22, 2014/1:13:56 AM GetICAFileRetryLoop: retrying due to possible bogus ResourceUnavailable error
Tuesday, April 22, 2014/1:13:56 AM GetICAFileRetryLoop: retrying in 00:00:02
Tuesday, April 22, 2014/1:13:58 AM Creating AuthManager request context to "http://myappscomp.ca/Citrix/PNAgent/launch.aspx" under name "PNA" with flags "None"...
Tuesday, April 22, 2014/1:13:58 AM Prepared AuthManager request context with result: Continue
Tuesday, April 22, 2014/1:13:58 AM Got translated url from AuthManager: http://myappscomp.ca/Citrix/PNAgent/launch.aspx
Tuesday, April 22, 2014/1:13:59 AM GetICAFileRetryLoop: retrying due to possible bogus ResourceUnavailable error
Tuesday, April 22, 2014/1:13:59 AM GetICAFileRetryLoop: retrying in 00:00:02
Tuesday, April 22, 2014/1:14:01 AM Creating AuthManager request context to "http://myappscomp.ca/Citrix/PNAgent/launch.aspx" under name "PNA" with flags "None"...
Tuesday, April 22, 2014/1:14:01 AM Prepared AuthManager request context with result: Continue
Tuesday, April 22, 2014/1:14:01 AM Got translated url from AuthManager: http://myappscomp.ca/Citrix/PNAgent/launch.aspx
Tuesday, April 22, 2014/1:14:01 AM GetICAFileRetryLoop: retrying due to possible bogus ResourceUnavailable error
Tuesday, April 22, 2014/1:14:01 AM GetICAFileRetryLoop: retrying in 00:00:02
Tuesday, April 22, 2014/1:14:03 AM Creating AuthManager request context to "http://myappscomp.ca/Citrix/PNAgent/launch.aspx" under name "PNA" with flags "None"...
Tuesday, April 22, 2014/1:14:03 AM Prepared AuthManager request context with result: Continue
Tuesday, April 22, 2014/1:14:03 AM Got translated url from AuthManager: http://myappscomp.ca/Citrix/PNAgent/launch.aspx
Tuesday, April 22, 2014/1:14:04 AM Got Comms Error
Tuesday, April 22, 2014/1:14:04 AM The remote server returned an error: (500) Internal Server Error.
Tuesday, April 22, 2014/1:14:04 AM    at Dazzle.PNAgent.PNAgentClient.DoRequestOnce(Uri iurl, Uri nurl, String request, String requestB, Boolean isRequestForPreLaunch)
Tuesday, April 22, 2014/1:14:04 AM    at Dazzle.PNAgent.PNAgentClient.DoRequest(Uri iurl, Uri nurl, String request, String requestB, Boolean allowCredUI, Boolean isRequestForPreLaunch)
Tuesday, April 22, 2014/1:14:04 AM    at Dazzle.PNAgent.PNAgentClient.Dazzle.Model.IICAProvider.GetICAFile(String InName, String retryKey, Boolean allowCredUI, String& url, Boolean isRequestForPreLaunch)
Tuesday, April 22, 2014/1:14:04 AM    at Dazzle.Launcher.ICARunner.GetICAFileRetryLoop(IICAProvider icastore, String resourceId, LaunchProgressUI launchProgressUI, String& url, Boolean isRequestForPreLaunch)
Tuesday, April 22, 2014/1:14:04 AM    at Dazzle.Launcher.ICARunner.Launch(IProvider store, IGlobalState state, String resourceId, String citrixId, String cmdline, ReconnectAction icaReconnectAction, Boolean isRequestForPreLaunch)



Make sure you go to the PNA agent web folder on the designated server and set RequireLaunchReference=Off and remove the # in the WebInterface.conf file.

http://support.citrix.com/article/CTX123003

Monday, April 21, 2014

Slow screen refresh with Citrix Receiver 4.0 or 4.1 with old Citrix Farms

I was having an issue with very slow screen redraws with Citrix Receiver 4.1 with a MetaFrame 4.5 farm (although I've read online it's applicable to Presentation Server 4.0).  The fix is to enable the following registry key:


:Fix for slow graphics performance on Legacy Farm
IF '%PROCESSOR_ARCHITECTURE%'=='x86' (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Seamless Windows" /v DeferredUpdateMode /d False /f
) ELSE (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Seamless Windows" /v DeferredUpdateMode /d False /f
)

Adding that key resolved the issue and now Citrix Receiver 4.1 now updates correctly on the 4.5 farm.

Friday, April 18, 2014

EdgeSight Load Testing with a Single User account (XenApp 6.5)

I've been doing some EdgeSight Load Testing with XenApp 6.5; which I haven't done in a few months.  We have updated our Citrix servers since then with the newer HotFix RollUp (HFRU) pack and now I'm testing a new application.  Our typical setup is to use a single generic account and connect it via multiple sessions to the same Citrix server and capture some metrics (CPU, Network, Memory, etc).  In the past, this seemed to work pretty flawlessly but in the last week I was having issues.  By the time the 3rd session was connecting to the Citrix server, instead of creating a new session it would 'steal' the 1st session.  This prevented me from having more than 2 sessions connected to a server.

Well, it turns out Citrix modified their behaviour a bit but allowed a registry key to be set to change it back.  The new value was introduced in HFRU 2 and is as follows:

http://support.citrix.com/article/CTX136248

On Windows Server 2003, you can specify whether a user can reconnect to a session from any client device or only from the originating client. The From originating client only option is not present anymore in the Remote Desktop Services settings of the Windows Server 2008 R2 edition.
This feature enhancement allows you to implement the same functionality on Windows Server 2008 R2 through XenApp. To enable the feature, you must set the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Citrix
Name: ReconnectSame
Type: REG_DWORD
Data: 1
Note that if Workspace Control is enabled on the Web Interface, enabling the "Automatically reconnect to sessions when users log on" feature can result in side effects and users might have to launch the session twice to open a session from the non-originating client device.

Enabling that registry key and I can immediately restart my load testing without any stolen sessions.

Thursday, April 10, 2014

Move ALL Windows 7/2008/2012 log files to another drive


# ===========================================================================================================
#
# Created by: Trentent Tye
#        Intel Server Team
#        IBM Canada Ltd.
#
# Creation Date: Apr 10, 2014
#
# File Name: Move-Log-Files.ps1
#
# Description: This script will be used to move all the log files from the default SYSTEMDRIVE to
#                   a drive of your choosing (in this case, D:\EventLogs).  We use this for non-persistent
#                   vDisks with a persistent write cache to keep these logs for troubleshooting purposes.
#
# ===========================================================================================================


# Change D:\EventLogs to some other destination if required.
$allLogs = Get-WinEvent -ListLog *
foreach ($logs in $allLogs) {
$filename = split-path $logs.LogFilePath -leaf
$logs.LogFilePath = “D:\EventLogs\$filename”
$logs.SaveChanges()
}