Symptoms
Certain features require both Citrix Presentation Server 4.0 and a Version 9.0 client.
If an earlier version client connects to a Presentation Server 4.0, functionality may be limited or nonexistent depending on the feature.
The following features in Presentation Server 4.0 require a 9.0 ICA client:
• Multi-Monitor Improvements
• TWAIN support
• PNA Roaming SmartCard
• Advanced Universal Printing
• PDA Synchronization
Troubleshooting
Determine if the users are running the correct version of the Citrix ICA client that the feature requires:
1. Open the Management Console (Real Time):

2. Run MFCOM script to determine (Real Time)
<package>
<job id="Sessions">
<comment>
File: Sessions.wsf
Description: List sessions in the farm.
Requirements: WSH 5.5 or higher.
Copyright (c) 2002 Citrix Systems, Inc.
</comment>
<runtime>
<description>
List sessions in the farm.
</description>
<example>
CScript //nologo Sessions.wsf
</example>
</runtime>
<reference object="MetaFrameCOM.MetaFrameFarm"/>
<script language="VBScript">
Dim theFarm, aSession, SessionState
Dim objFSO, objFolder, objShell, objTextFile, objFile
Dim strDirectory, strFile, strText
strDirectory = "c:\MFCOMreport"
strFile = "\session.txt"
strText = "Session Report"
' Create the File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Check that the strDirectory folder exists
If objFSO.FolderExists(strDirectory) Then
Set objFolder = objFSO.GetFolder(strDirectory)
Else
Set objFolder = objFSO.CreateFolder(strDirectory)
WScript.Echo "creating...... " & strDirectory
End If
If objFSO.FileExists(strDirectory & strFile) Then
Set objFolder = objFSO.GetFolder(strDirectory)
Else
Set objFile = objFSO.CreateTextFile(strDirectory & strFile)
Wscript.Echo "creating........ " & strDirectory & strFile
End If
set objFile = nothing
set objFolder = nothing
' OpenTextFile Method needs a Const value
' ForAppending = 8 ForReading = 1, ForWriting = 2
Const ForAppending = 8
SessionState = Array("Unknown", _
"Active", _
"Connected", _
"Connecting", _
"Shadowing", _
"Disconnected", _
"Idle", _
"Listening", _
"Resetting", _
"Down", _
"Init")
'
' Create MetaFrameFarm object
'
Set theFarm = CreateObject("MetaFrameCOM.MetaFrameFarm")
if Err.Number <> 0 Then
WScript.Echo "Can't create MetaFrameFarm object"
WScript.Echo "(" & Err.Number & ") " & Err.Description
WScript.Echo ""
WScript.Quit Err.Number
End if
'
' Initialize the farm object.
'
theFarm.Initialize(MetaFrameWinFarmObject)
if Err.Number <> 0 Then
WScript.Echo "Can't Initialize MetaFrameFarm object"
WScript.Echo "(" & Err.Number & ") " & Err.Description
WScript.Echo ""
WScript.Quit Err.Number
End if
'
' Are you Citrix Administrator?
'
if theFarm.WinFarmObject.IsCitrixAdministrator = 0 then
WScript.Echo "You must be a Citrix admin to run this script"
WScript.Echo ""
WScript.Quit 0
End If
'
' Print out the farm name.
'
WScript.Echo "MetaFrame Farm Name: " & theFarm.FarmName
WScript.Echo ""
Set objTextFile = objFSO.OpenTextFile _
(strDirectory & strFile, ForAppending, True)
' Writes strText every time you run this VBScript
' Display all sessions in the farm.
'
objTextFile.WriteLine("All sessions in the farm (" & Now & ")")
objTextFile.WriteLine ("------------------------------------------------")
For Each aSession In theFarm.Sessions
if Err.Number <> 0 Then
WScript.Echo "Can't enumerate sessions"
WScript.Echo "(" & Err.Number & ") " & Err.Description
WScript.Echo ""
WScript.Quit Err.Number
End if
objTextFile.WriteLine ("ServerName :" & aSession.ServerName)
objTextFile.WriteLine ("SessionName:" & aSession.SessionName)
objTextFile.WriteLine ("SessionID :" & CStr(aSession.SessionID))
objTextFile.WriteLine ("User :" & aSession.UserName)
objTextFile.WriteLine ("Client Name:" & aSession.ClientName)
objTextFile.WriteLine ("ClientBuild:" & aSession.ClientBuild)
objTextFile.WriteLine ("State :" & SessionState(aSession.SessionState))
objTextFile.WriteLine ("============================")
objTextFile.WriteLine ("")
Next
objTextFile.WriteLine( "Total Sessions : " & theFarm.Sessions.count)
objTextFile.Close
If err.number = vbEmpty then
Set objShell = CreateObject("WScript.Shell")
objShell.run ("Explorer" &" " & strDirectory & "\" )
Else WScript.echo "VBScript Error: " & err.number
End If
WScript.Quit
'
</script>
</job>
</package>
Usage
C:\>cscript session.wsf
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. A
creating...... c:\MFCOMreport
creating........ c:\MFCOMreport\session.txt
MetaFrame Farm Name: CPS4 Farm
Example Output
All sessions in the farm (8/18/2005 12:34:07 PM)
------------------------------------------------
ServerName :VMWIN2KCPS4-3
SessionName:ICA-tcp#3
SessionID :3
User :test1
Client Name:mydup
ClientBuild:32649
State :Active
============================
Resource Manager Summary Database (Historical Data) Query
/*
This SQL Resource Manager query will detect older win32 clients (pre 9.x) in the environment and identify users
Requires Presentation Server 3.0 or 4.0 only
*/
declare @clientversion nvarchar(64)
set @clientversion ='9.%'
select s.sessionstart,s.sessionend,c.clientaddress,c.clientname,u.username,cp.build as
[Client Build],cp.version [Client Version],ct.clienttypename as [Client Type],l.launcher as
[Connect By] from LU_Client c
join sdb_session s on c.pk_clientid = FK_clientid
join lu_user u on pk_userid = s.fk_userid
join sdb_clienthistory h on h.fk_sdb_sessionid = s.pk_sdb_sessionid
join lu_clientproperties cp on cp.pk_clientpropertiesid =h.fk_clientpropertiesid
join lu_clientTYPEMAPPINGS ct on ct.pk_clienttypeid = cp.fk_clienttypeid
join lu_launcher l on l.pk_launcherid = h.fk_launcherid
where ct.clienttypename='ICA Win32' and cp.version not like @clientversion
order by s.sessionstart desc
To identify a particular user, use the Resource Manager Web console located at:
http://support.citrix.com/article/CTX107026
Select in Query 2 Get User Details then enter user name and click Query2.


Resolution
Upgrade to the required ICA client:
http://www.citrix.com/English/SS/downloads/downloads.asp?dID=2755