http://www.archy.net

Comments: (0)

Remote Desktop published application – Double upper case issue

Category : Citrix, EdgeSight, Microsoft, Presentation Server 4.5, Web Interface 5, WebInterface, Windows 2003, Windows 2008, XenApp, XenApp 5

At one of my customer place, we need to publish mstsc.exe (RDP Client) through XenApp 4.5 on Windows 2008 x64. Users complained about a weird keyboard behaviour. While typing in their session, users stated using shift for the first letter, the second letter was upper case as well. I’va made a quick video to show you this issue, you can watch it bellow :

 

On the Citrix Web Interface, one ICA file is used as a template for ICA file creation, default.ica. I edited this file to check what was in :

[WFClient]
COMAllowed=Off
CPMAllowed=On
ClientName=
KeyboardTimer=50
MouseTimer=10
OutBufCountClient=118
OutBufCountHost=118
OutBufLength=512
PersistentCacheEnabled=On
ProxyFavorIEConnectionSetting=Yes
ProxyTimeout=30000
ProxyUseFQDN=Off
RemoveICAFile=yes
TransparentKeyPassthrough=Local
TransportReconnectEnabled=On
UpdatesAllowed=Off
VSLAllowed=On
Version=2
VirtualCOMPortEmulation=Off

In the WFClient (section bellow) I found the line KeyboardTimer=50 which mean at the end of the specified time period the keyboard data are sent to the server. I didn’t wanted to modify this value without beeing able to test it before, so I right clicked on the published Remote Desktop icon to download the launch.ica file (generated with the defgault.ica and the 50ms value) saved it and the edited it changing the keyboardTimer value to 25 then 15 then 10 and finnaly 5. I had the issue until the last value 5ms tested.

Now I need to make some more test to check if the bandwith consumed is really highter compare with the 50ms default value. I will update this post with the statistics result (Edgesight)

Update : 1st July 2010

I’ve used Citrix Edgesight to check what’s going on while I run some test toward ICA Session Traffic and ICA Session I/O. To run this test I created a script which open notepad and type a text (about 30/40 lines) so the same text input will be use for all the tested values.

I made this test with KeyboardTimer=50 (default), KeyboardTimer=25 and KeyboardTimer=5 and here are the results :

 

I did blank the “non needed” data to avoid confusion and as you might notice, there is not a huge difference between these different values. I decided to commit the change for wan users and I will check in deeper statistics will real usage on weeks/month, before/after the change.

I wanted to blog this issue because this is an annoying one and you might search a long time around the mstsc configuration, registry tips and tunning before finding out this was the KeyboardTimer value in the default.ica file on the Citrix WebInterface. You can also add the line KeyboardTimer=## (your value) to your WFCLIENT.INI file in your user profile directory, it should make the trick if you don’t want to commit this change for everyone using the WebInterface.

Sources : http://support.citrix.com/article/CTX103444


Join the forum discussion on this post

Comments: (5)

EventLog parser (WMI) and export to Excel vbscript

Category : Citrix, Microsoft, Windows 2003, XenApp

Today my need was very simple, I needed to build a script to collect logs in application event log on many XenApp servers. The goal with the following script it to use MFCom to get the target XenApp server list and export everything from the last 7 days and a specific keyword to an Excel file. This is very far to be perfect but it works and it did the job I needed :)

Let’s share !

Set objFSO = CreateObject("Scripting.FileSystemObject")
 
'Path and name of the Excel file
FileExport = "d:\temp\yourfile.xls"
'Name of your management Server (Must have MFCOM SDK if not a XenApp Server
CtxFarms = Array("XenappManagementserver.domain.inc")
'Folder in the XenApp Management Console, must begin with Servers/ ex : Servers/APPLICATION1
TargetPool = "Servers/ApplicatioForlder"
 
If (objFSO.FileExists(FileExport)) Then
	objFSO.DeleteFile(FileExport)
End If
 
Const CONVERT_TO_LOCAL_TIME = False
Set dtmStartDate = CreateObject("WbemScripting.SWbemDateTime")
Set dtmEndDate = CreateObject("WbemScripting.SWbemDateTime")
DateToCheck = CDate(Date)
'Number of day back to check here 7
dtmStartDate.SetVarDate DateToCheck - 7, CONVERT_TO_LOCAL_TIME
dtmEndDate.SetVarDate DateToCheck, CONVERT_TO_LOCAL_TIME
 
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add
Set objRange = objExcel.Range("A1","Z1")
objRange.Font.Size = 12
objRange.Font.Bold = True  
 
objExcel.Cells(1, 1).Value = "Server"
objExcel.Cells(1, 2).Value = "Event Source"
objExcel.Cells(1, 3).Value = "Event Type"
objExcel.Cells(1, 4).Value = "Event ID"
objExcel.Cells(1, 5).Value = "Event Message"
objExcel.Cells(1, 6).Value = "Event Date"
 
lign = 2
 
For i = 0 To UBound(CtxFarms)
	Set theFarm = CreateObject("MetaFrameCOM.MetaFrameFarm", "\\" & CtxFarms(i))
	theFarm.Initialize 1
 
	For Each aServer In theFarm.Servers
		If aServer.ParentFolderDN = TargetPool Then
			objExcel.Cells(lign, 1).Value = aServer.ServerName
			TargetSource = "Application"
			Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & aServer.ServerName & "\root\cimv2")
 
'This line is to query the Security event log
'			Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'Security' and SourceName = '" & TargetSource & "' and Type = 'Error' and TimeGenerated >= '" & dtmStartDate & "' and TimeGenerated < '" & dtmEndDate & "'")	

'This line is to query the System event log
'			Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' and SourceName = '" & TargetSource & "' and Type = 'Error' and TimeGenerated >= '" & dtmStartDate & "' and TimeGenerated < '" & dtmEndDate & "'")	

'This line is to query the Application event log
			Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'Application' and SourceName = '" & TargetSource & "' and Type = 'Error' and TimeGenerated >= '" & dtmStartDate & "' and TimeGenerated < '" & dtmEndDate & "'")
						For Each objEvent in colLoggedEvents
'                                   Change here to find event using a keyword in the main message
				MyPos = Instr(1, ucase(objEvent.Message), UCase("KeyWord"))
				If MyPos > 0 Then
					objExcel.Cells(lign, 1).Value = aServer.ServerName
					objExcel.Cells(lign, 2).Value = objEvent.SourceName
					objExcel.Cells(lign, 3).Value = objEvent.Type
					objExcel.Cells(lign, 4).Value = objEvent.EventCode
					objExcel.Cells(lign, 5).Value = objEvent.Message
					objExcel.Cells(lign, 6).Value = WMIDateStringToDate(objEvent.TimeGenerated)
					lign = lign + 1
				End If
			Next
		End If
	Next
Next
 
objExcel.ActiveWorkbook.SaveAs FileExport
objExcel.Quit
 
EnvoiMail()
 
Wscript.Quit
 
Function WMIDateStringToDate(dtmInstallDate)
    WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
            & " " & Mid (dtmInstallDate, 9, 2) & ":" & Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, 13, 2))
End Function
 
Function EnvoiMail()
	Const SendUsingPort = 2
 
	' Set the variables used to send the message
	SMTPServer = "smtp.server.com"
	FromName = "administrator@admin.com"
	ToName = "me@admin.com" 
 
	' Setup the configuration for the message to use
	Set Conf = CreateObject("CDO.Configuration")
	With Conf.Fields
	    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = SendUsingPort
	    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
	    .Update
	End With
 
	'Setup the message
	Set Message = CreateObject("CDO.Message")
	With Message
	Set .Configuration = Conf
 
    'Set email adress, subject And body
    	.To = ToName
    	.Subject = "Email Subject"
    	.TextBody = "Hello World !"
    	.From = FromName
    	.AddAttachment FileExport
    	.Send
	End With
 
End Function

At the end I added a function to send this Excel file by email so I can schedule this check and genrerate this report.


Join the forum discussion on this post

Comment: (1)

Frankfurt 2010 – PubForum

Category : ArchY.net Site, Citrix

Here we are on the road again, I’m waiting for my plane to Frankfurt, Germany to attend Grand PubForum 2010. More information about this event here.

I will update my blog with what I think are the most important things I will learn to share with everyone who comes here.

I know I will again meet very interesting people and learn many things/tips while speaking with them.

This isn’t the biggest event of the year but the virtualization “elite” will be here and it’s always nice to have some point of view from different countries and other companies.

Comments: (3)

Mac OS X some tips

Category : Apple, Mac OSx Snow Leopard

Since I have my Apple computer, I needed to learn some basics like new shortcuts :

  • Command-Shift-3: Take a screenshot of the screen, and save it as a file on the desktop
  • Command-Shift-4, then select an area: Take a screenshot of an area and save it as a file on the desktop
  • Command-Shift-4, then space, then click a window: Take a screenshot of a window and save it as a file on the desktop
  • Command-Control-Shift-3: Take a screenshot of the screen, and save it to the clipboard
  • Command-Control-Shift-4, then select an area: Take a screenshot of an area and save it to the clipboard
  • Command-Control-Shift-4, then space, then click a window: Take a screenshot of a window and save it to the clipboard

In Leopard, the following keys can be held down while selecting an area (via Command-Shift-4 or Command-Control-Shift-4):

  • Space, to lock the size of the selected region and instead move it when the mouse moves
  • Shift, to resize only one edge of the selected region
  • Option, to resize the selected region with its center as the anchor point

To burn an ISO file :

  1. Insert a blank disc.
  2. Start Disk Utility.
  3. From the File menu, choose Open Disk Image and select the ISO to be burned.
  4. In the list of volumes, you will now see an item representing the ISO file. Select it.
  5. Click the Burn button and follow the instructions.

Very good and useful tool : http://www.titanium.free.fr/pgs2/french/onyx_snowleopard.html website is in french but the software in English.

Here’s a list of system start-up hot keys to press while Mac OS X is booting, and their various effects:

C – Boot from a CD/DVD
T – Boot in Target Disk mode (FireWire only)
N – Boot from an attached network server (NetBoot mode)
X – Attempt to force Mac OS X to boot
Shift – Boot up in ‘Safe Mode’ which has limited functionality
Command+V – Boot into Verbose mode
Command+S – Boot in Single user mode

Comments: (4)

Citrix Edgesight architecture scenario – part 2/2

Category : Citrix, EdgeSight, XenApp 5, XenApp 6, XenDesktop

If you need to build an EdgeSight architecture for more than 6000 agents, you need to know you will have to split your database and EdgeSight server (web server) associated with it. This next architecture doesn’t include Edgesight database broker you will need for XenDesktop VDI deployment. If some of you are looking forward a VDI deployment for EdgeSight just let me know, Twitter, Facebook, email, comment or phone, I can make it simple for you, and you won’t need to read the 300 documentation pages ! This is a slightly different approach with file share and database broker…

A typical data upload size for an EdgeSight for Endpoints agent is 80KB. EdgeSight for XenApp agent data uploads are typically larger due to the greater amount of data collected and can reach 300KB. These data upload sizes depend on a number of factors such as the agent properties and the usage profile of the system hosting the agent.

From Edgesight Admin guide page 22.

Of course it depend how your worker are configured and what data you need to collect. I’m still trying to figure our how to calculate the amount of data transferred from agents to the web server, this is a complex calculation and it take a lot of time for something Citrix should provide.

So architecture for large environment is the same as the one you could watch in the previous blog – Citrix Edgesight architecture scenario – part 1/2 – except you need to split database and EdgeSight server. Only one Citrix license server and you can also keep one SQL Reporting Services for both Edgesight servers.

This configuration means you need to configure agents with a different http address, for example, at one customer I had 4000 XenApp servers and 5000 Endpoint agents, so I choose to split Endpoint agents on one Edgesight server and all XenApp on the other. This is not very handy when you want to check from XenApp servers to the endpoint statistics, but this is the way it is for now.  By multiplying EdgeSight environment, complexity is getting stronger and find the good information is sometimes a matter of hours instead of minutes…

What Citrix should consider for the future of Edgesight :

  • Stop to check Citrix licenses on the Edgesight Servers, only agents is enough I think, then we would be able to load balance Edgesight Servers and SQL Reporting Services servers, spliting wouldn’t be necessary.
  • Since we don’t have Resource manager anymore, consider to bring at least the same level of information in EdgeSight we had with RM with the Advanced license.
  • Make available a complete EdgeSight database diagram.
  • Provide a simple tool to build 1,2,3 custom report.
  • Correct these annoying bug : When a Desktop is publish, no statistics are recorded, this is the same for an application with an argument in the command line…

Useful Links :
EdgeSight Wikipedia

EdgeSight Forums

EdgeSight Under The Hood

Comments: (2)

Citrix Synergy 2010 in San Francisco – Over

Category : ArchY.net Site, Citrix, Events, Synergy

After two very busy days at Citrix Summit 2010, and 3 days at Citrix Synergy in San Francisco, this massive event reach the end. I came here this year to watch, learn and share my everyday consultant life. I learned a lot, not from technical contents deliver from Citrix but by speaking to everyone around me and making some very interesting contacts.

Positive points :
I met many interesting people
I passed one Citrix certification for free
I know building a XenDesktop architecture is not so complicated
I was able to know more about XenClient
This event took place in a city I came for the first time
I learned some technical details at TechEdge events

Negative points :
Too many clouds, not in the sky…
I don’t think Summit and Synergy are the event Citrix should speak about cloud computing
I’m a bit worried about the future of Citrix System Integrators and resellers
Citrix should consider making level based sessions

This is it, I’m looking forward next Synergy in Berlin, I hope things will change a bit. Before I will attend PubForum in Frankfurt, Germany.

Comment: (1)

Citrix Synergy 2010 – Day 1

Category : Citrix, Events, Receiver, Synchronizer for XenClient, Synergy, XenClient

Citrix Summit is over, now this is Synergy with Citrix partners and customers.  There was twice and maybe more people in the same building, that was be huge. Sessions I attended this day were as follow.

Schedule for Wednesday, May 12
6:30 am- 8:00 am Breakfast (Marriott/Hilton)
Marriott/Hilton
7:00 am- 9:00 am Breakfast (Moscone West, 3rd Floor)
Moscone West Convention Center – Moscone Level 3
8:00 am- 8:50 am SYN308 – From A to XenApp: the comprehensive technical guide to optimal XenApp farm design (2010 Edition)
Moscone West Convention Center – Moscone 2007,2009,2020,2022
9:00 am- 9:50 am SYN321 – Supporting Macs and iPhones in your corporate infrastructure
Moscone West Convention Center – Moscone 2001
10:30 am-12:30 pm Synergy Opening Keynote
Moscone West Convention Center – Moscone 3000-3012
12:30 pm- 3:30 pm Solutions Expo Hall
Moscone West Convention Center – Moscone Level 1
12:30 pm- 2:30 pm Lunch
Solutions Expo Hall
2:00 pm- 5:00 pm SYN422D – Practical HDX – optimizations for the real world
San Francisco Marriott – Yerba Buena 1-2

I will be fast today, session are too average level, I think this is good session for XenApp, XenDesktop administrators on the way, there are many detailed architectures, a lot of debugging / troubleshooting tools explanations but that’s it.

Comment: (1)

Citrix Summit 2010 – Day 2

Category : Citrix, Events, Synergy

The second day was for me about technical stuffs in the morning and more oriented sales in the afternoon. I wan to attend some technical event as TechEdge ones because we always learning, even a small details from the editor, and I needed to go to sales because I’m very often in the front line trying to sell vendor’s solutions. So here is bellow my schedule for yesterday :

Schedule for Tuesday, May 11
6:30 am- 7:30 am Breakfast (Marriott/Hilton)
7:00 am- 8:30 am Breakfast (Moscone West, 3rd Floor)
8:00 am- 8:50 am SUM301 – Debugging a Citrix XenApp and XenDesktop environment
Moscone West Convention Center – Moscone 2003-2005
9:00 am- 9:50 am SUM302 – Troubleshooting XenDesktop deployments
Moscone West Convention Center – Moscone 2003-2005
10:00 am-10:50 am SUM118 – Grow your NetScaler business by targeting new use cases
Moscone West Convention Center – Moscone 2014
11:00 am-11:50 am SUM108 – Generate new revenue by upgrading Secure Gateway to Access Gateway VPX
Moscone West Convention Center – Moscone 2001
12:00 pm- 1:00 pm Networking Meeting with xxxx, Serge RAJEVIC
Level 2 Foyer, Table A1
1:30 pm- 2:20 pm SUM203 – The power of FlexCast delivery: any desktop to any user
Moscone West Convention Center – Moscone 2004-2006
2:30 pm- 3:20 pm SUM103 – Drive desktop virtualization sales with a smart strategy
Moscone West Convention Center – Moscone 2001
3:30 pm- 4:20 pm SUM214 – Build a site recovery demo from start to finish in one breakout session
Moscone West Convention Center – Moscone 2007,2009,2020,2022
4:30 pm- 6:45 pm SYN501L – Geek Speak Tonight!
Moscone West Convention Center – Moscone 2000-2002
7:00 pm-10:00 pm Synergy Welcome Reception
Moscone West Convention Center – Moscone Level 1

TechEdge : Debugging Citrix XenDesktop & XenApp was interesting nothing new about XenApp, some useful information but that’s it. Putting everyone who attended this session at the same level of understanding is nearly impossible, 25 first minutes are to explain a classic architecture and 25 to speak about debugging tools, not in deep. Some highlight for this session :

Comments: (4)

Citrix Summit 2010 – Day 1

Category : ArchY.net Site, Citrix, Events, Synergy

First day is over and I will report about session what I attended yesterday. My schedule was light compare to what I will attend today, the second day :

10:00 am-10:50 am SUM207 – The technology behind XenClient and the XenClient VM Synchronizer
Moscone West Convention Center – Moscone 2008,2010,2012
11:00 am-11:50 am SUM206 – Management, simplified – with XenApp
Moscone West Convention Center – Moscone 2004-2006
1:00 pm- 1:50 pm SUM201 – Migration from physical PCs to XenDesktop: a technical overview
Moscone West Convention Center – Moscone 2004-2006
4:30 pm- 6:00 pm SUM502 – EMEA Partner Forum
Moscone West Convention Center – Moscone 2008,2010,2012

The most important session for me was the first one about XenClient and the XenClient VM Synchronizer, I wrote a blog about that and I really can’t wait to be able to download this “new toy”.

Then the second session of the day was about Citrix XenApp6 combine with Microsoft SCVMM. For all partner, at least in EMEA, this is something déjà vue, there are white papers and technical guides about that and I won’t write too long about this subject (maybe a full blog about that)

Comments: (3)

Synergy : The Technology behind XenClient / Synchronizer for XenClient

Category : Citrix, Events, Synergy, XenClient

Citrix announce one fact : 72% of devices will be laptop.

Citrix XenClient is a type 1 hypervisor (bare metal) and can run in stand alone mode without the back end Citrix XenClient Synchronizer. This is build on the 64 bit open source technology used with XenServer and you can run multiple virtual desktops simultaneously. Different VMs are completely secure isolation from each other and are hardware independent VM. A named call Service VM Architecture has been develop for extensibility.

XenClient provide a good end user interaction and advanced security for your devices and you data. With centralized security policies you can for example allow one user to run a VM for 4 days in a offline mode and if the suer doesn’t connect on internet the VM will be shutdown until the user is able to connect and authenticate to request more time.

The XenClient SDK should be available in 2011


Join the forum discussion on this post