Link to home
Start Free TrialLog in
Avatar of lseeman
lseemanFlag for United States of America

asked on

Citrix PNagent Pass-through Authentication Change & Re-Install Problem!

I have been using PNagent with prompting user credentials on a MetaFrame XPa farm for several years.

However, now we are moving to a Presentation Sever 4.5 farm and set the web-interface PNagent site to only accept Pass-through authentication and I have the following issues/questions:

[ISSUES]:
1.) After updating URL to new farm, properties of PNagent | Logon Mode reverts to blank and pass-through option does not take/save.

2) A reinstall of a custom packaged Citrix PNagent w/ new URL and local credentials enabled still prompts for login

3.) It seems only a manual full Uninstall of PNagent 8 and a reinstall works for Pass-through

[QUESTIONS]:
A.) How can I update the existing PNagent installation to migrate from Prompting to Pass-through of authentication without a manual uninstall/reinstall?

b.) Is there a way to script and/or silently uninstall the Citrix PNagent 8.0 using software deployment (i.e. SMS, DesktopAuthority, KACE)?

* I have exhausted myself and had NO luck with the below tips for automated silent method of uninstalling the PNagent 8.0 :

- MsiExec.exe /I{D8A8C84C-8095-4DF3-8C3D-38DD0772E00B}
- DesktopAuthority software deployment uninstall element
- Manual modify registry by injecting 'pnsson.dll' references
- Manually modify registry by verifying URL
- Verified domain name cache is accurate and domains exist

HELP WOULD BE GREATLY APPRECIATED!
Avatar of lseeman
lseeman
Flag of United States of America image

ASKER

To summarize my above issue:

Client: Program Neighborhood Agent 8.0
Server: Presentation Server 4.5

The only way I can get Pass-Through Authentication to work with my Citrix Presentation Server 4.5 Farm PNAgent Web Interface, is to uninstall the custom 8.0 Presentation Server client package with Password Prompt and then install the new custom package with allow local credentials enabled.

Objective:  To be able to silently redeploy new packaged client, or silently uninstall/reinstall PNagent get it to work w/o manually uninstalling.
Avatar of NDSSI
You have to change the installation off the installed PN Agent to use Pass Through. In this case with old clients my tip is to uninstall the clients like you tried. To do this silent some others maybe have the answer but not I. But to install the new client silent you can download the lates ICA client. XenAppHosted.msi Rund msiexec /a \\pathtomsifil.msi There you can configure it to one single MSI file and total silent installation. After this you can implement this msi file through script, SCCM, GPO etc.

Best regards
/AJ
Avatar of lseeman

ASKER

1.) The package was customized to use Pass-Through
2.) I don't want to manually uninstall all 150 clients
3.) I have tried the latest client XappHostes and it didnt work with either authentication method
4.) I did try to customize the XenAppHosted with the msiexec /a and #4 above was the outcome
5.) I am deploying it through GPO and 3rd party tools, that's not the issue

I need to know why I cannot reinstall PNAgent v8 over the existing version with new custom packages changes for Pass-through, OR how can I silently uninstall the existing version w/o user intervention (i.e. script)
Avatar of lseeman

ASKER

UPDATE:

If I uninstall the prior PNagent v8, I can deploy a custom package of XenAppHosted 11 via GPO just fine and it works like a charm.  HOWEVER, if I target a client with an existing v8 or v10.1, GPO installs the package, but leaves the client w/o the ability to open an ICA file as if there was not file extension association after logging in....

1.) How come a clean upgrade to a newer version with different features (pass-through) doesnt work?
2.) Is there a way to cleanly uninstall v8 silently via GPO, Script or 4rd party deployment tool?
Hi againt. You can also try this, Im not 100% sure if this will fix the passtrough problem. But it woth the try:)
Locate Appserv.ini in appdata folder for the user you will test. paste inn these two lines in the bottom.
SSOnUserSe tting=On
EnableSSOn ThruICAFile= On
Then try to restart PNAgent and try PassThrough. If this work you can script this file and upgrade via GPO.

/AJ
Avatar of lseeman

ASKER

Added only AppServ.ini missing value:   EnableSSOn ThruICAFile= On
(other value existed)

After closing all instances of PNagent client and reopening it, it still prompts for username/password/domain.  When I check options it shows it now keeps the Logon Mode set to Pass-Through....

Any other ideas anyone....
Avatar of lseeman

ASKER

Update:

1.) If I deploy a custom packaged XenAppHostedClient via GPO to upgrade PNagent v8, after install/reboot I get the following 2 error messages whenever a Citrix app is called:

PNA3fl6622.ICA:  Action only valid for products that are currently installed

Could not launch registered application

HOWEVER, a clean install works fine!!??

I keep coming back to the question which I cannot find an answer to, How can I silently uninstalled PNagent v8 with a script, gpo or 3rd party software deployment tool?
Avatar of lseeman

ASKER

ANYONE HAVE ANY IDEAS???
Avatar of lseeman

ASKER

Well I appreciate you giving this attention, BUT I hope to get some support and insight soon....

I need to cut over to the new PS4.5 farm and this requires me to either upgrade all my clients PNagent 8 with new URL and Pass-through, which doesn't work, OR silently uninstall v8 and ver11.
Avatar of lseeman

ASKER

No!  Dont delete the question, rather leave it online for potential help.
This vbscript might do the trick. Having a similar issue myself (actually I just want to enforce pass-through authentication). I would run this vbscript using cscript.exe /nologo.


Const HKEY_CURRENT_USER = &H80000001
Set objRegistry = GetObject("Winmgmts:root\default:StdRegProv")
Set Shell = CreateObject("WScript.Shell")
 
strPath = "Software\Citrix\PNAgent"
 
Return = objRegistry.GetBinaryValue(HKEY_CURRENT_USER, strPath, "Configuration Model 000", arr)
 
 
If (Return = 0) And (Err.Number = 0) Then
    'Wscript.Echo "Binary value retrieved successfully"
Else
    ' An error occurred
    WScript.Echo "Problems getting registry value"
End If
 
 
' First we convert the array to a string
a=arr
For I = LBound(arr) To UBound(arr)
  a(I) = Chr(CInt(arr(I)))
Next
strRegValue = CStr(Join(a,""))
 
' Then we replace the prompt value with sson
Set regEx = New RegExp 
regEx.Pattern = "<key>LogonMethod</key><value>prompt</value>"
regEx.IgnoreCase = True
regEx.Global = True
regEx.MultiLine = True
strRegNewValue = regEx.Replace(strRegValue, "<key>LogonMethod</key><value>sson</value>")
 
' Then we convert back to integer array
Dim uBinary
ReDim uBinary(Len(strRegNewValue)-1)
For I = 0 To Len(strRegNewValue) - 1
  uBinary(I) = Asc(Mid(strRegNewValue,I+1,1))
Next
 
' Finally write back to the registry
Return = objRegistry.SetBinaryValue(HKEY_CURRENT_USER, strPath, "Configuration Model 000", uBinary)
 
If (Return = 0) And (Err.Number = 0) Then
    'Wscript.Echo "Binary value added successfully"
Else
    ' An error occurred
    WScript.Echo "Problems writing registry value"
End If

Open in new window

Forgot to say - i would run it at login - before pnagent starts. Haven't tested to run it at login myself. I have only run it to make sure it can update the registry key. Will update once I have tested 100%
I just notice that my script is not going to work if the "Configuration Model 000" value is not there already. I'll make a modification to it that will write a default registry value there in case this one is missing.

Anyway, add the below to the end of the above script to have it force specified URL to be used.

' And at the end we force PN Agent to use a specific URL:
Shell.RegWrite "HKCU\Software\Citrix\Program Neighborhood Agent\Config URL", "http://server-name/citrix/PnAgent/config.xml", "REG_SZ"

Open in new window

final? version... This will make sure the registry keys (folders) are there before writing the values etc... should be a bit more failsafe.
Const HKEY_CURRENT_USER = &H80000001
Set objRegistry = GetObject("Winmgmts:root\default:StdRegProv")
Set Shell = CreateObject("WScript.Shell")
 
strPath = "Software\Citrix\PNAgent"
strServerName = "server-name2"
 
Return = objRegistry.GetBinaryValue(HKEY_CURRENT_USER, strPath, "Configuration Model 000", arr)
 
 
If (Return = 0) And (Err.Number = 0) Then
	' We read a registry value. First we convert the array to a string
	a=arr
	For I = LBound(arr) To UBound(arr)
	  a(I) = Chr(CInt(arr(I)))
	Next
	strRegValue = CStr(Join(a,""))
Else
	' The registry value didn't already exist
	strRegValue = "<User Blob><Item><Key>DesktopDisplayEnabled</Key><Value>true</Value></Item><Item><Key>DesktopName</Key><Value>Published Applications</Value></Item><Item><key>LogonMethod</key><value>sson</value></Item><Item><Key>ServerURLEntered</Key><Value>http://server-name/Citrix/PNAgent/Config.xml</Value></Item><Item><Key>ServerURLListUsers</Key><Value><LSOption>http://server-name/Citrix/PNAgent/Config.xml</LSOption></Value></Item><Item><Key>StartMenuDisplayEnabled</Key><Value>false</Value></Item><Item><Key>StartMenuRoot</Key><Value></Value></Item><Item><Key>StartMenuDisplayRootFolder</Key><Value></Value></Item><Item><Key>SystemTrayDisplayEnabled</Key><Value>false</Value></Item></User Blob><Primary Server Blob><Item><Key>DesktopName</Key><Value>Published Applications</Value></Item><Item><Key>DesktopNameModifiable</Key><Value>false</Value></Item><Item><Key>ServerIndex</Key><Value>0</Value></Item><Item><Key>ServerURL</Key><Value>http://server-name/Citrix/PNAgent/Config.xml</Value></Item><Item><Key>ServerURLModifiable</Key><Value>true</Value></Item><Item><Key>ServerURLListBackup</Key><Value></Value></Item><Item><Key>StartMenuDisplayRootFolder</Key><Value></Value></Item><Item><Key>StartMenuRootFolderModifiable</Key><Value>false</Value></Item></Primary Server Blob>"
	Set regEx = New RegExp 
	regEx.Pattern = "server-name"
	regEx.IgnoreCase = True
	regEx.Global = True
	regEx.MultiLine = True
	strRegValue = regEx.Replace(strRegValue, strServerName)
End If
 
 
' We replace the prompt value with sson if necessary
Set regEx = New RegExp 
regEx.Pattern = "<key>LogonMethod</key><value>prompt</value>"
regEx.IgnoreCase = True
regEx.Global = True
regEx.MultiLine = True
strRegValue = regEx.Replace(strRegValue, "<key>LogonMethod</key><value>sson</value>")
 
' Then we convert back to integer array
Dim uBinary
ReDim uBinary(Len(strRegValue)-1)
For I = 0 To Len(strRegValue) - 1
  uBinary(I) = Asc(Mid(strRegValue,I+1,1))
Next
 
' Make sure some registry keys are there
Return = objRegistry.CreateKey(HKEY_CURRENT_USER, "Software\Citrix")
Return = objRegistry.CreateKey(HKEY_CURRENT_USER, strPath)
Return = objRegistry.CreateKey(HKEY_CURRENT_USER, "Software\Citrix\Program Neighborhood Agent")
 
' Finally write back to the registry
Return = objRegistry.SetBinaryValue(HKEY_CURRENT_USER, strPath, "Configuration Model 000", uBinary)
 
If (Return = 0) And (Err.Number = 0) Then
    'Wscript.Echo "Binary value added successfully"
Else
    ' An error occurred
    WScript.Echo "Problems writing registry value"
End If
 
 
' This is the value that the new PN Agent will pick up on and convert to binary automatically.
Shell.RegWrite "HKCU\Software\Citrix\Program Neighborhood Agent\Config URL", "http://" & strServerName & "/citrix/PnAgent/config.xml", "REG_SZ"

Open in new window

Avatar of lseeman

ASKER

WOW!  I appreciate your time and effort.  I'll give it a try and post back soon...
Avatar of lseeman

ASKER

I assume I should replace 'servername' with my actual FQDN/Server address of the PS 4.5 WI?
Avatar of lseeman

ASKER

Besides doing a find/replace in your script to replace 'server-name' with my actual servername, is there anything else i have to change in it?
you dont need to replace "server-name" - only "server-name2" variable in the beginning. The others are replaced by the script automatically. That should be all. This is no solution to any uninstall/install issues of course. It simply make sure you have pass-through and the correct URL in use
Avatar of lseeman

ASKER

I added a BAT to call the your VBS using 'cscript' and it had the following effect on a client with an existing PNAgent v8 with a URL to XPa WI and Prompt Auth:

1.) URL changed to new PS 4.5 farm WI
2.) Logon Mode left blank with Single-signon/Pass-through available for selection
3.) Upon selecting it and OK, it prompts for logon and reverts back to blank logon mode...

Any more ideas?
The script is written for the XenApp client 10+ which uses new registry keys. Just tested with v11 here and works.
Older versions of the agent user a DWORD registry value "HKCU\Software\Citrix\Program Neighborhood Agent\Login Option". Set it to 2 for pass-through login.
If you current account doesn't authenticate with the citrix server (for example if you are logged on as local administrator) then it will revert back to prompt. If your password has been changed then it will revert back to prompt.
Avatar of lseeman

ASKER

I will do an in place upgrade of PNagent v8 to XenAppHosted 11.x and run your script again.

NOTE: User is logged on as domain user with permissions to the farm.  If user manually enter credentials at PNAgent prompt, Auth succeeds.

I'll update you shortly...
Another thing to notice is that valid authentication methods are specified in the config.xml file on the pnagent web server...
Avatar of lseeman

ASKER

Yes, I already verified that my config.xml on the PS4.5 WI Server is accurate.  As mentioned above, all my clients that received a [clean] install of XenAppHosted v11 client work fine with Pass-Through/SSO.

I'll try your script again a client which received an in place upgrade from v8 to v11 and report back ....
Avatar of lseeman

ASKER

As mentioned in earlier posts to this thread, this is what I am getting after upgrading PNAgent v8 to XenAppHosted v11 (attached error).

vkroslid, will your script fix this or do you know what can?

NOTE: A clean install of XenAppHosted works fine.
xenapphosted11upgrade.GIF
THAT error is not handled by my script. The script is simply for forcing a specific URL and pass-through authentication to be used on an otherwise working client installation. I
Avatar of lseeman

ASKER

Well this is the error I get every time when trying to open a Citrix published app AFTER upgrading PNAgent v8 with XenAppHosted client v11.....?
I found this elsewhere:

ret1=sho.Run("C:\WINNT\ISUNINST.EXE" & Chr(34) &"-fC:\PROGRA~1\Citrix\ICACLI~1\Uninst.isu" &Chr(34) & "-cC:\PROGRA~1\Citrix\ICACLI~1\uninstpn.dll" & Chr(34) & "-a",HIDE_WINDOW,true)
'Above - Uninstalls 6.30, 6.31,7.0,8.0

ret3=sho.Run("msiexec.exe /x" & Chr(34) & "{76E4A642-BC3E-438A-8450-0C15A36B5B18l}" & Chr(34) & " REBOOT=ReallySuppress /qb!-", HIDE_WINDOW, true)
'Above - Uninstall 8.1
Here's the complete vbs file
On Error Resume Next
 
Set sho = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set nwo = CreateObject("WScript.Network")
 
FN = wscript.scriptfullname 'Grabs the full path and name of this script
LenFN = Len(FN) 'Gets the length of FN
N = wscript.scriptname 'Gets the only the name of this script
LenN = Len(N) 'Gets the length of N
DiffN = LenFN - LenN - 1 'Gets the differnce in length between FN and N
PathN = Mid(FN,1,DiffN) 'Takes the full name and removes DiffN characters
 
'Uninstallation
 
ret10 = sho.run(chr(34) & PathN & "\pskill.exe" & Chr(34) & "-t wfcrun32.exe",,true)
 
ret1=sho.Run("C:\WINNT\ISUNINST.EXE" & Chr(34) &"-fC:\PROGRA~1\Citrix\ICACLI~1\Uninst.isu" &Chr(34) & "-cC:\PROGRA~1\Citrix\ICACLI~1\uninstpn.dll" & Chr(34) & "-a",HIDE_WINDOW,true)
'Above - Uninstalls 6.30, 6.31,7.0,8.0
ret3=sho.Run("msiexec.exe /x" & Chr(34) & "{76E4A642-BC3E-438A-8450-0C15A36B5B18l}" & Chr(34) & " REBOOT=ReallySuppress /qb!-", HIDE_WINDOW, true)
'Above - Uninstall 8.1
ret4=sho.Run("msiexec.exe /x" & Chr(34) & "{4E21223F-8D6C-446E-9CD3-587D206A8400}" & Chr(34) & " REBOOT=ReallySuppress /qb!-", HIDE_WINDOW, true)
'Above - Uninstall 9.0
ret5=sho.Run("msiexec.exe /x" & Chr(34) & "{E92B7A19-5FD5-4AEE-9FEF-7AD5DD3A675E}" & Chr(34) & " REBOOT=ReallySuppress /qb!-", HIDE_WINDOW, true)
'Above - Uninstall 9.1
ret6=sho.Run("msiexec.exe /x" & Chr(34) & "{D989BCC0-757C-4FB6-893C-512DF4382656}" & Chr(34) & " REBOOT=ReallySuppress /qb!-", HIDE_WINDOW, true)
'Above - Uninstall 9.2
ret7=sho.Run("msiexec.exe /x" & Chr(34) & "{7A1FB67F-A340-472A-97C3-A6AFFE078AAE}" & Chr(34) & " REBOOT=ReallySuppress /qb!-", HIDE_WINDOW, true)
'Above - Uninstall 9.3
ret=ret1+ret2+ret3+ret4+ret5+ret6+ret7
ret=0
 
wscript.Quit(ret)

Open in new window

It needs pskill.exe in the same folder as you run it from it seems. This would be the automated way of removing any previous version of the Citrix ICA client.. then you can run an install afterwards
You could run this once through Desktop Authority and have a reboot command at the end? Then run the v11 install as the next step?
Avatar of lseeman

ASKER

This is great info., but I think I tried those MSI uninstall cmd's.   will verify that momentarily.

To address the .ICA file association issue, I have manually associated the .ICA file with 'wfcrun32.exe' and the published apps now work!

To address the above screenshot on upgraded clients, I will try and have this association made by importing the proper registry information at next login...
Avatar of lseeman

ASKER

We are getting close!  Trying your latest VBS now for complete uninstall....
Avatar of lseeman

ASKER

Your script post at: 12.03.2008 at 12:06PM EST, ID: 23087915, didn't perform the un-installation of PNAgent v8.  It doesnt appear to have done anything....

cscript.exe /nologo <full path to vbs file>

Should I run the MSIzap utility?  If so, what function should I perform with it?
Did some research for you with regards to uninstalling pnagent silently. Basically it seems like the setup is made in such a way that it is not possible. It is not MSI-based. That custom dialog asking for confirmation just won't go away. The good news is that I found a way to automate it with the free AutoIt3.

1. Get AutoIt3 from http://www.autoitscript.com/autoit3/index.shtml
2. Save the below code to something like pn8uninst.au3
3. Compile & build the script to an .exe
4. Run on a client with pnagent 8.00 to uninstall automatically (not completely silent - but dialog boxes disappear automatically)


ProcessClose ( "ssonsvr.exe")
ProcessClose ( "pnagent.exe")
 
Run('"C:\Program Files\InstallShield Installation Information\{26891DA7-0C7B-4F94-B2C4-239B96305045}\Setup.exe" /uninst /s /x')
 
WinWaitActive("Program Neighborhood Agent")
 
Send("Y")
 
Sleep(2000)
 
WinWaitActive("Program Neighborhood Agent")
 
Send("{ENTER}")

Open in new window

I tested it with pnagent 8.00 here and it worked as intended. You could run this with desktop authority instead of the earlier suggested script.
Avatar of lseeman

ASKER

This is a working thread and we are making progress towards a solution. DO NOT DELETE QUESTION
Avatar of lseeman

ASKER

I am impressed with your attention and focus on my issue!!!!!

I'll try what you said and report back shortly...

(I cannot compile and build executable packages with DesktopAuthority, b/c I dont have the addon modules for MSI studio.)
Avatar of lseeman

ASKER

i WILL INCREASE THE POINTS ON THIS QUESTION WHEN I REACH SUCCESS.....
the compile step is for autoit3. Just open up the .au3 file with the script in autoit3 and choose to compile and then build it. You will get an .exe file of about 256KB. I tried to upload that .exe in a .zip file on this site but somehow it didn't work.
Avatar of lseeman

ASKER

I took your code and saved it as a AU3, then converted it to an EXE with AutoIT.  When I manually ran it on a client with PNAgent v8, it removed the taskbar tray icon within seconds, but it the AutoID package icon is still in the task tray after 5min and the Citrix Program Group is still present and populated with the Agent....

Any ideas?
That sounds like it stalls on line 6 - waiting for a window named "Program Neighborhood Agent".
Perhaps your package is not exactly same same ID as mine? If you look in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ you should find the ID of your Citrix Program Neighborhood Agent package. You can just copy the uninstall string from this and paste into the RUN-command of the script. The WinWaitActive will wait for an active window named as specified. If your uninstall procedure doesn't produce this then you need to change it to whatever window name is used. When I tested I found that different uninstall parameters gave different window names.....
Avatar of lseeman

ASKER

This is the value I have: {2C42ED1E-6315-4E63-89E6-057EA114EBB8}

I'll modify the script and re-compile/convert the package, then run the script again....
Avatar of lseeman

ASKER

Still hangs in tasktray with new MSI ID string and no Events logged.....?
You need to make sure that the run command actually launches something. you can try run it from Start->Run. As I said earlier - you might have to copy the whole uninstall string from the registry.
Avatar of lseeman

ASKER

I manually ran it with the new ID locally on the client.  I will take another look at the "uninstall string" to see if it differs other than the ID...?
Avatar of lseeman

ASKER

I simply modified your code with the exact uninstall string from the registry for the following line and repackaged and converted to a .EXE with AutoIT:

Run('"MsiExec.exe /I{2C42ED1E-6315-4E63-89E6-057EA114EBB8}')


No dice/same hung result....
Are you sure you got PNAgent 8.00 ? That version is not using MSI I believe.
Whatever you put within the quotes MUST uninstall the client interactively when run from Start->Run menu.

As you can see in the script posted in "12.03.2008 at 06:06PM CET, ID: 23087915", Citrix clients up to 8.0 use InstallShield. Version 8.1 and up use MSI.
Avatar of lseeman

ASKER

Yes; 8.00.24737

That's whats in the registry for the uninstall string....
ASKER CERTIFIED SOLUTION
Avatar of vkroslid
vkroslid
Flag of Norway image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of lseeman

ASKER

Okay; good news!  The below cmd worked manually from RUN to silently uninstall the PNAgent v8 client:

msiExec.exe /x{2C42ED1E-6315-4E63-89E6-057EA114EBB8} /q /L"V*"c:\ica32remlog.txt

I don't think I need to use as an EXE package in AutoID, rather I'll just call the cmd directly above using DesktopAuthority

THANKS FOR YOU ALL YOUR INVALUABLE HELP!!!
Avatar of lseeman

ASKER

I wish I could give this Expert who assisted me 1,000+ points!  Thank you!
Avatar of lseeman

ASKER

So my solution to migrate all my Citrix MetaFrame v8 clients to the new Presentation Server 4.5 Farm will be:

1.) Deploy the below uninstall string via ScriptLogic DesktopAuthority (DA):
msiExec.exe /x{2C42ED1E-6315-4E63-89E6-057EA114EBB8} /q /L"V*"c:\ica32remlog.txt

2.) Deploy mew custom (SSO, URL change) packaged Citrix XenAppHosted Client v11 using DA
sounds good to me. glad to be of help.
The main goal with my initial vbs script is to change the URL and force passthrough for roaming profiles when we migrate to XenApps 5 shortly. Good luck with your upgrade.
Avatar of lseeman

ASKER

I confirmed step two using this cmd manually:

msiExec.exe /i \\servername\deploy\XenAppHosted.msi /q /forcerestart /L"V*"c:\XenAppInstallLog.txt
Avatar of lseeman

ASKER

So far I am 2:5, where 3 out of the 5 clients still retain the old Farm URL.  Does anyone know why this is being retained?  If I manually update the URL, everything works....
Don't know why that happens, but I would then just put in my first .vbs file (final version of it) as an additional step in application launcher after doing the upgrade steps.
Avatar of lseeman

ASKER

Some more helpful info.:

Manually uninstall previous versions with a script that looks like this:
 
@echo Uninstalling previous versions of the Citrix client. Please wait...
@echo off
MSIEXEC /x {4E21223F-8D6C-446E-9CD3-587D206A8400} /qn REBOOT=ReallySuppress
MSIEXEC /x {76E4A642-BC3E-438A-8450-0C15A36B5B18l} /qn REBOOT=ReallySuppress
MSIEXEC /x {7A1FB67F-A340-472A-97C3-A6AFFE078AAE} /qn REBOOT=ReallySuppress
MSIEXEC /x {94F321B9-45B0-4125-970D-DE3D98CBCA1C} /qn REBOOT=ReallySuppress
MSIEXEC /x {B2AE44CB-2AAB-4C08-A54B-D264BD604DA8} /qn REBOOT=ReallySuppress
MSIEXEC /x {D989BCC0-757C-4FB6-893C-512DF4382656} /qn REBOOT=ReallySuppress
MSIEXEC /x {DF1D5FEC-D67C-43C8-9230-41F5DF350196} /qn REBOOT=ReallySuppress
MSIEXEC /x {E92B7A19-5FD5-4AEE-9FEF-7AD5DD3A675E} /qn REBOOT=ReallySuppress
deltree /Y "c:\program files\citrix\ica client"
 
I included all of the ProductCodes that I could gather, and I think I've caught v7 through v10. If I've missed any, please add them to these notes.

Open in new window