I faced the following challenges while deploying this client:
1. I tried to avoid using the Client Packager because I don't like modifying shipping .msi files and losing track of the changes. But I found that every .mst file I tried to create was ignored at some level, resulting in the wrong features being installed. I tried AdminStudio Tuner and InstEd with similar results.
2. This version doesn't install cleanly over previous versions if the user is not an Administrator, even with elevated rights delivered by ZEN.
3. The MSI that results from the Client Repackager does not install correctly without Administrative rights, even with elevated rights delivered by ZEN. It appears to work, but all of the program files actually go to %userprofile%\Local Settings\Application Data instead of c:\program files.
I was able to overcome all of these challenges with the following steps:
1. Use the Client Repackager to build an MSI that met my installation needs.
2. Edit the MSI and change the ALLUSERS Property value from 2 to 1. This overcomes the rights problem that sends the files to the wrong location.
3. Manually uninstall previous versions with a script that looks like this:
Citrix has changed the install entirely for version 11.2. The install is now a large exe wrapped around several MSI and other files. To install I found the following command line worked:
Here is the vbscript I am using to detect and remove any Citrix Software that is installed. I have noticed that it will not detect the XenApp Plugin, but I have tested it to remove version 7 through 11 of the Program Neighborhood.
Caution: If you have software from Citrix that you don';t want removed, don't run this vbs as it will enumerate and remove all installed packages that have Metaframe or Citrix in the title.
Set objShell=CreateObject("WScript.Shell")
Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
objReg.EnumKey HKLM, strKey, arrSubkeys
WScript.Echo "Installed Applications" & VbCrLf
For Each strSubkey In arrSubkeys
intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, strEntry1a, strValue1)
If intRet1 <> 0 Then
objReg.GetStringValue HKLM, strKey & strSubkey, strEntry1b, strValue1
End If
If strValue1 <> "" Then
V=InStr(1,UCASE(strValue1),"CITRIX")
W=InStr(1,UCASE(strValue1),"METAFRAME")
X = V+W
If X<>0 Then
objReg.GetStringValue HKLM, strKey & strSubkey, strEntry5, intValue5
If intValue5 <> "" Then
arrCitrix = Split(intValue5," ")
Select Case UCASE(arrCitrix(0))
Case "C:\WINDOWS\ISUNINST.EXE"
WScript.Echo "Running command " & intValue5 & " -a"
objShell.Run intValue5 & " -a",0,True
Case "MSIEXEC.EXE"
arrMSIExec = Split(intValue5,"{")
WScript.Echo "Running command MSIExec.exe /qn /X{"&arrMSIExec(1)
objShell.Run "MSIExec.exe /qn /X{"&arrMSIExec(1),0,True
End Select
End If
End If
End If
Next
I used the following script with SMS/SCCM to take advantage of using the SMS/SCCM Distribution Points (DP's) in area's where you might have slow WAN connections. It runs the script from the current location and also expects the installer to be in that location as well.
1. It runs the MSIEXEC unistaller for previous versions of the client.
2. Then it also imports two reg keys that fix an SSO/Passthough Authentication issue with the client.
3. Then it runs the installer with command line options to specify Server Location, SSO on/off, Dynamic Client naming, silent install, as well as an ALLUSERS=1 which fixs some issues when deploying to multiuser environments.
Here it is:
Set WshShell = WScript.CreateObject("WScript.Shell")
'This uninstalls old versions of the Citrix Client and then installs the new version
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
sInstallPath = sCurPath & "\CitrixOnlinePluginFull_v11_2.exe ALLUSERS=1 DONOTSTARTCC=1 /silent /noreboot ENABLE_DYNAMIC_CLIENT_NAME=""Yes"" SERVER_LOCATION=""http://yourserver"" ENABLE_SSON=""Yes"""
Needed to perform a non-interactive install (as a service) whilst the user was logged on. Errors included hung installations, VC++ runtime errors, visible dialog boxes and partially failed installs. Some minimized dialog boxes are inevitable.
Solution to hangs on install partly solved by...
http://forums.citrix.com/thread.jspa?threadID=262150&tstart=0
'notstrict.mst' disables the wfcrun32.exe /regserver command
extract the msi's, then install
(order suggested by citrix KB will fail), important to place webwrapper 1st as it contains dependancies for the others.
I decided to add the current version to the uninstall routine, just in case there was a problem and it needed to be reinstalled. So now the script looks like this (the comments are just to keep the user interested):
Modification to the registry as below elevates the installer to Admin as long as you grant the logged on user rights to the area the application needs to install in.
This worked when used in conjunction with the ALLUSERS=1
On a computer running Windows NT 4.0 or Windows 2000, an administrator can set the AlwaysInstallElevated registry keys for both per-user and per-machine installations on the computer. If you want to make sure that all Windows Installer packages are installed with elevated (system) privileges, you must set the AlwaysInstallElevated value to "1" under the following registry keys:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer
My usual approach to re-packaging would involve extracting the msi's (CitrixOnlinePluginWeb.exe /extract c:\temp) and applying custom transforms, however, even following the individual msi installation order specified in Citrix's documentation the client simply didn't work (see: http://support.citrix.com/proddocs/index.jsp?topic=/online-plugin-112-windows/ica-extract-msi.html). It is stated on the above page that: "Citrix does not recommend extracting the .msi files in place of running the installer packages." So, I'm left with running the CitrixOnlinePluginWeb.exe "package" directly.
FYI - In addition to the command-line options documented above and on the Citrix docs (http://support.citrix.com/proddocs/index.jsp?topic=/online-plugin-112-windows/ica-configure-command-line.html), there's an undocumented property that appears in the example Active Directory deployment script 'DONOTSTARTCC=1', which I presume ought to be used for remote deployments etc.
My command-line therefore looks like this:
CitrixOnlinePluginWeb.exe DONOTSTARTCC=1 /silent /noreboot
(I don't bother to configure any other options on the command-line as I don't have any requirement to.)
The only other issue I encountered was attempting to install the plug-in on a remote machine using the PSEXEC utility. The plug-in executable resided on a network share so I specified a user account with the relevant network access:
This failed - sometimes I received a 1602 exit code fairly immediately, at other times psexec timed out. On the target machine a "hidden" C++ runtime error dialog was "displayed" in relation to wfica32.exe, although the dialog appeared on the start bar you couldn't actualy see it until you dragged another window over the top of it - very bizare - and even then the content was still hidden (selecting the dialog Ctrl+C, then paste into notepad revealed the error message content). I can only guess that the installer had issues running in the context of an account without a fully loaded profile as running the install as the logged on user worked fine (perhaps the %temp% environment variable was unavailable & so the installer didn't know where to extract its content?). The resolution was to copy the installer to the target machine and run via PSExec under the LocalSystem account (by using the -s switch, instead of '-u domain\username'):
This website uses cookies.
By continuing to use this site and/or clicking the "Accept" button you are providing consent
Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our
websites or when you do business with us. For more information about our
Privacy Policy and our data protection
efforts, please visit
GDPR-HQ