Deploy with Citrix - how to determine end-users' platform

Rx_

Nothing In Moderation
Local time
Today, 16:10
Joined
Oct 22, 2009
Messages
2,803
My Access applications run on both PC Desktops and the Apple tablets. From WAN/LAN and wireless.
My existing Log function keeps track of differnt parts of the application being used. The question is, how to determine the end-users platform.

The application runs on a Windows server and uses Citrix to deploy Access. So with the Citrix shell, would anyone have an idea what parameters to use in order to find out (Windows vs Apple) the platform and possibly WAN / LAN vs Wireless?
 
LOL - good one! I put this in a module, ran this on my desktop in the Immediate Window and this is what was returned:
Code:
? fOSName()
Windows XP (Version 5.1) Build 2600 (Service Pack 3)

Of what made me laugh is that my desktop PC is Windows 7.
Going through the code, it appears that it might not be Windows 7 compatible. If there is an updated version of this, it would actually be useful.

The problem is, my code will be running on a Windows 2008 citrix server. What I need to know is the platform that the citrix PNAgent client side running on.
 
This code won't solve my citrix client problem.
Posted a question to the Citrix Blog - in case they actually answer it.
http://forums.citrix.com/thread.jspa?threadID=309555

Here is the code for later Windows versions.
Code:
Public Function winVer()
On Error Resume Next
  Dim strMessage As String
  
  strComputer = "."
  Set objWMIService = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate}!\\" _
      & strComputer & "\root\cimv2")
  Set colOperatingSystems = objWMIService.ExecQuery _
      ("Select * from Win32_OperatingSystem")
  For Each objOperatingSystem In colOperatingSystems
      strMessage = objOperatingSystem.Caption & _
      "  " & objOperatingSystem.Version
  Next
  
  Set objWMIService = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate}!\\" _
      & strComputer & "\root\cimv2")
  Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", , 48)
  For Each objItem In colItems
  strMessage = strMessage & "  " & objItem.AddressWidth & "  Bit"
  Next
  
  MsgBox strMessage
  End Function
 
What problem are you actually having? Citrix itself uses the OS of the machine Citrix is installed on. It doesn't have anything to do with the OS on the client machine. The programs all run on the Citrix server and the part that the client gets is essentially screenshots through the Citrix client.

So, I am wondering why you are needing this.
 
excellent question that is very appreciated!
The users are getting those apple tablets things for travel and home use.
We have had many experiences where they log off of the tablet. Then come back to the PC and the application is still up and running. A little strange. I would like to know if it is just by chance or something else.

Also, since tables are run by wireless, they asked if I can do some trending to determine if there is any data loss.
In most cases, I use implicit transactions on a recordset. That hasn't been a problem on WAN/LAN. Knowing if it was a Apple would imply it was wireless and that would help.

As you point out, it all basically looks the same from many points of view since that is what Citrix was built and designed for.

As always, I am very interested in any ideas from another citrix user with your expertiese level.
 
The processes are ALL running on the Citrix Server. There should be no data loss unless the connection between the Citrix Server and File Server gets interrupted, and whether or not they are on one machine and then go get on from another machine, even Apple to PC, there should be no difference or problem.

We use Citrix extensively and I've been forced to understand it way more than I ever wanted. Our servers are located in Cleveland but I am in Portland, so anytime I fire up an app from Citrix it is all happening there in Cleveland on that Citrix Server there.
 
Citrix itself uses the OS of the machine Citrix is installed on. It doesn't have anything to do with the OS on the client machine.

Rigth-O, Opening a Citrix app, I find that it appears Citrix is actually hosted on a VM:

Code:
[B]OS Name    Microsoft(R) Windows(R) Server 2003, Standard Edition
Version    5.2.3790 Service Pack 2 Build 3790[/B]
Other OS Description     R2
OS Manufacturer    Microsoft Corporation
System Name    HOSTNAMEOFSERVER
[B]System Manufacturer    VMware, Inc.
System Model    VMware Virtual Platform[/B]
System Type    X86-based PC
Processor    x86 Family 6 Model 15 Stepping 1 GenuineIntel ~3000 Mhz
BIOS Version/Date    Phoenix Technologies LTD 6.00, 9/22/2009
SMBIOS Version    2.4
Windows Directory    C:\WINDOWS
System Directory    C:\WINDOWS\system32
Boot Device    \Device\HarddiskVolume1
Locale    United States
Hardware Abstraction Layer    Version = "5.2.3790.3959 (srv03_sp2_rtm.070216-1710)"
User Name    Not Available
Time Zone    Eastern Daylight Time
Total Physical Memory    3,071.41 MB
Available Physical Memory    1,022.48 MB
Total Virtual Memory    4.85 GB
Available Virtual Memory    2.35 GB
Page File Space    2.00 GB
Page File    C:\pagefile.sys
 
Rigth-O, Opening a Citrix app, I find that it appears Citrix is actually hosted on a VM:

It may be, depending on your configuration but it doesn't have to be. It can be on a Physical Server as well. We used to use VM's for our situation but found they just didn't work for us so we had to go get 5 Physical Servers and have them dedicated to just us.
 
I meant, For sure Citrix will report the OS of the server it is running on, including what ever processor details which in my example happened to be powered by VMware.
 
Amen to that! We Access users learn more about Citrix than we ever expected.

The Windows client vs iPad client is more related to tracking LAN/WAN vs wireless.
User perception and user habits plays into this too. The loss of data may be more of a "user perception".
Regarding the Apple IPad, unlike a Windows desktop, users are on wireless and they close the lid midway through filling out a form. Users have different habits than those in an office with a desktop. If they key in data and then tab out of the field, they are use to the data saving. In a low bandwidth wireless environmnet, perhaps the keystroke not being recieved is the problem along with the user not watching for the update.

I agree 100% that all processing take place on the Citrix server. Every key stroke is sent and every screen pixel change returned from the server. My log files measure the time between Access events run on the server. The server event response time for VBA processing is really fast.

Your comments are very appreciated. It is rare to find people who can converse with the Citrix / Access conversation.

It would be useful if this Access site added a Virtualization section. My issue is very minor to the larger success story that Citrix really works extremely well with Access.
 
Even if the laptop users are on wireless, it would have no effect on the session running on the server except that the Citrix Server might possibly disconnect them and reset once they are no longer "connected." So, whoever is your Citrix admin might be able to set a longer timeout which might help those users.
 
As luck had it, my junior IT guy just got back yesterday from a 3 day Citrix Admin training last week. We are going to try the extended timeout to see if it makes any difference.
In my case, the wireless are the phone systems in remote areas including North Dakota to California.
Thanks again. Your experience and comments are greatly appreciated.
 

Users who are viewing this thread

Back
Top Bottom