[x]

Site Alert(s):

  • Server maintenance Saturday Nov 22, 2008, 12:00 PM - 3:00 PM. The Knowledge Center will be unavailable during this time.
Rate this Article:
You must be signed in to rate again
Article Feedback Print View
Alternate Languages: N/A

Citrix Presentation Server 4.0 Features Not Working for Some Win32 ICA Users

Document ID: CTX107849   /   Created On: Nov 22, 2005   /   Updated On: Oct 19, 2007
Average Rating: 5

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


Search
Knowledge Center
XenApp
XenApp Plugins (Clients)
XenServer
XenDesktop
NetScaler Application Delivery
Access Gateway
EdgeSight
Provisioning Server
WANScaler
Password Manager
Does it work with Citrix? Verify it - introducing the new Citrix Ready Community Verified