Citrix receiver uninstallation of old versions

Topics: Archive - General
Nov 20, 2013 at 9:21 PM
i am currently working on an installation of CitrixReceiver and so far I have the installation part down. I am looking for a good way to remove any old versions without needing to restart.

I have the ReceiverCleanupUtility.exe but this is not allowing me to run tryuly silently and everything i read about it really wants you to restart.

has anyone run across this and found a solution?

Thanks in advance

Joe Noxon
Coordinator
Nov 22, 2013 at 3:13 PM
My colleague did it using the toolkit recently. The process was pretty simple:

Shutdown the following running processes:
  • Receiver.exe
  • SelfServicePlugin.exe
And then run Citrix Receiver Uninstall process C:\ProgramData\Citrix\Citrix Receiver\TrolleyExpress.exe /uninstall /cleanup /Silent

Hope this helps, Dan.
Nov 22, 2013 at 4:21 PM
Edited Nov 22, 2013 at 5:00 PM
i did see that earlier when I was checking the uninstall strings. I was a bit worried that it was not a consistent string in the earlier versions. Regardless i think I can use it. I put a little logic around it and have come up with this as a pre-installation task:
# Remove Previous Citrix Installations
    $strAllUsersProfile=(get-content env:ALLUSERSPROFILE)
    $strExistingInstall="$strAllUsersProfile\Citrix\Citrix Receiver\TrolleyExpress.exe"
    If (Test-Path $strExistingInstall){
        Execute-Process -FilePath "$strExistingInstall" -Arguments "/uninstall /cleanup /Silent"
        }Else{
        }
or possibly
# Remove Previous Citrix Receiver Installations
    $strAllUsersProfile=(get-content env:ALLUSERSPROFILE)
    $strExistingInstall="$strAllUsersProfile\Citrix\Citrix Receiver\TrolleyExpress.exe"
    If ((Test-Path $strExistingInstall) -eq $true) {
        Execute-Process -FilePath "$strExistingInstall" -Arguments "/uninstall /cleanup /Silent"
        }
    # Remove Previous Citrix Receiver Enterprise Installations
    $strExistingEnterpriseInstall="$strAllUsersProfile\Citrix\Citrix Receiver (Enterprise)\TrolleyExpress.exe"
    If ((Test-Path $strExistingEnterpriseInstall) -eq $true) {
        Execute-Process -FilePath "$strExistingInstall" -Arguments "/uninstall /cleanup /Silent"
        }
Hopefully this is consistent. I'll try to download some older versions of the client and test this out.

Thanks to Steve Hardie for the code to check for a file. As I said I am new to PS though I have muddled through with batch files. Sometime the problem for me is converting the old way to the new way.

Joe