Type: | Free | ||
Version: | 1.4.0.0 | Updated: | Dec 19, 2014 |
A solution to allow conflicting IE Plug-ins in conjunction with App-V 5; fully isolated java versions for the same user
Download links are at the bottom of this page
PROBLEM STATEMENT: You have one or more Java Web apps that require a certain version of Java. You are also concerned with users surfing the web with an old version of Java containing known vulnerabilities.. And you can't publish separate shortcuts to the start menu as the solution because users don't work that way when in a browser.
SOLUTION: Combine isolation of App-V with a publishing extension that runs inside of App-V; VirtualIE!
It might be that you need to deploy SAP GUI, Symantec Enterprise Management, SkillSoft, or a bunch of other web-based apps that require the Java runtime. But while Java apps are intended to be "write once run anywhere", the reality is that they aren't. Oh often you can run an applet on a system with the latest version of Java and it will work, but sometimes it doesn't. Maybe the author didn't anticipate future changes to Java that would break things and hasn't updated the applet. Maybe that developer was "in-house" and there is nobody to update it. And sometimes the applet would be OK, but the developers marked it to only work with the versions they had actually tested against. In some environments you can get by with loading both the latest version and the back-rev version of Java on a RDS silo server, but in other environments that isn't practical. And you pretty much don't want users surfing the web with a Java version with known vulnerabilities anyway.
VirtualiE is a Browser Extension to Internet Explorer that you can use to solve these problems. Designed to be used with App-V 5 (and above) to virtualize the applet and Java Runtime Engine (JRE), it adds a fully customizable toolbar icon inside the browser that will launch an isolated Internet Explorer session with the correct Java version and landing them on the back-end site they need to be on. Furthermore, the new IE session will not have the address bar and favorites menu so they will just close that window when they are done and not surf the web with it.
With properly constructed packages of the JRE, you can have up to three versions of Java. One for general use (typically the most up to date), and two special versions that are isolated and available via an icon that you supply. You can see two icons I created (OK, maybe not great icons, but you get the idea) in the image below.
HOW IT WORKS
VirtualIE consists of two Browser Extension installers, VirtualIE1 and VIrtualIE2. (I could have made more, but I'll wait until someone shows me they need more of them).
First, you create your App-V virtual package for the required JRE and possibly applet. Connection Groups are just fine also. Assuming that there may be a natively installed Java version on client systems, you'll want to make sure your JRE package is properly constructed with deletion keys to hide any other Java version. NOTE: Aaron Parker originally blogged about how to do that in App-V 4.5 and provided a script to help hide the then known versions of Java, and Dan Gough wrote a 3 part "Definitive Guide" [Part 1][Part 2][Part 3] to sequencing Java that is a must read. Elsewhere in the tools section of the TMurgent site you can find a new PowerShell script called "JreBlock" written by Patrick Mangan that you can use to automate the key creation and deletion during the sequencing which makes the process much easier, and is somewhat futureproof.
You then want a VirtualIE Browser Extension to point to this package, configured with the Icon and Menu text you want the user to see on the toolbar and menu, the URL of the site, and either the name or guids of the App-V package. This extension can be delivered in multiple ways:
- As an Add-Package script in the DeploymentConfig of the App-V package.
- Pushed out as a native install by SCCM as a dependency.
- As a separate virtual package pushed out in a way that the "normal" browser used will have this package active. Note: You can't use RunVirtual for iexplore.exe to get this "normal browser" to have the Browser Extension as RunVirtual will prevent us from launching the new iexplore in the environment we want it to run in.
Publish the virtual JRE/Applet to the users (or machines). The users will see the Icon for the app on the toolbar and Tool menu inside the browser. When they click on it, VirtualIE Browser Extension will use a COM object combined with the power of the App-V client API to launch a new Internet Explorer window in the required virtual environment. The new internet explorer window will open on the required website, but importantly it will not have toolbars, menus, or command bar (the thing you type website names and search criteria into) so the user will not go to other sites with the older version of Java enabled. (This is why a new window is opened rather than a new tab in the existing frame).
There are two different VirtualIE extensions available, allowing a native Java present, plus up to two different virtualized Java sites.
KNOWN LIMITATIONS
- It works only with the 32-bit version of Internet Explorer. Due to other plug-ins, this is the one that users work with anyway.
- It will not work if you use RunVirtual for iexplore.exe.
INSTALLATION
Each extension is delivered as a separate msi. It is fully command line scriptable. The following table describes the fields in the GUI installer, and the equivalent installer command line parameter:
Parameter | GUI Label | Description | Default |
MENUTEXT | Button/Menu Text | This is the text that will appear in the Tools menu of the browser. If the user configures text labels to appear with the icons in the toolbar, it will also appear next to the icon. | Short Name |
STATUSBARTEXT | Menu Status Bar Text | This is the text that will appear in the status bar (bottom frame of ie when the use the button/menu, if the status bar is enabled by the user. | More Descriptive Name |
ICONFILE | Icon File Path/Name | This is the icon that will appear in the toolbar of the browser. While we supply a default icon, you should create your own icon that will be significant to the application. Icons are almost as easy to create as using paint. Download a tool like Greenfish Icon Editor. The icon file must have both a 24x24 and a 16x16 icon (with Greenfish, make the 24x24 first and then create the 16x16 and it will reduce it for you) in the same file. If you supply your own file, you should probably copy into the C:\ProgramData\TMugent\VirtualIE# folder. The default icon is a red J with the # (1 or 2). | provided |
TOOLTIP | Tooltip Text | This text is displayed when the user hovers over the icon. | Launches a new program with required Java version. |
APPVPACKAGENAMEORID | App-V Package Name or ID (GUID) | You can enter the name of the jre App-V Package here. Alternatively, you can enter the PackageID GUID of the package here. | |
APPVOPTIONALVERSIONGUID | Package VersionId (GUID) | If you entered the package name above, this field is ignored. If you entered the PackageID above, you must enter the Package VersionID GUID here. | |
ARGUMENTS | Website Address | This is where you enter the destination URL that iexplorer should launch into. If it is an http web site, you can leave off the https:// part. | www.javatester.org/version.html |
For example:
msiexec.exe /I setup_VirtualIE1.msi /qn MENUTEXT="SAP GUI" STATUSBARTEXT="Awesomeness in 10, 9, 8..." ICONFILE="C:\ProgramData\TMurgent\VirtualIE1\sap.ico" APPVPACKAGENAMEORID="Oracle_JavaJRE_forSAP" ARGUMENTS="sap.internalsite.ourcompany.com"
NOTE: All configuration items are written to the windows registry under HKLM\Software\Microsoft\Internet Explorer\Extensions\{guid}
where {guid} is specific to the browser extension. In this case the guids are:
- VirtualIE1: {2FE8F006-7D35-4B42-89C3-015792619185}
- VirtualIE2: {A8FC39BE-9397-4248-A96D-BF3D8311707F}
Below is an example of use of VirtualIE deployed by a DeploymentConfig script. In the sequence editor, I added three files into the Scripts folder of the package; the msi, the icon file, and a cmd script to silently install the msi and copy the icon. As the script is run under the system context, the installation is allowed without prompting even when the user has only standard user rights on the system.
<MachineScripts> <AddPackage> <Path>C:\Windows\System32\cmd.exe</Path> <Arguments>/c ..\Scripts\Setup_VirtualIE1.cmd</Arguments> <Wait RollbackOnError="true" Timeout="30"/> </AddPackage> <RemovePackage> <Path>C:\Windows\System32\msiexec.exe</Path> <Arguments>/x ..\Scripts\Setup_VirtualIE1.msi</Arguments> <Wait RollbackOnError="false" Timeout="30"/> </RemovePackage> </MachineScripts> |
RELEASE HISTORY
1.4.0.0 - December 5, 2014. Initial release.
FAQ
What does VirtualIE cost?
TMurgent believes in giving back to the community. VirtualIE is free for for use by consultants and enterprises when downloaded directly from the TMurgent site. Reposting the binaries to other websites is not permitted.
What OSs will it run on?
The tool will run on OS's supported by the App-V 5 client. It works on both the 32bit and x64 operating systems, but only with the 32-bit version of Internet Explorer.
Are there more free tools?
TMurgent has a bunch of tools on this page.
VIDEO
There is a 10 minute video demonstrating use here: https://www.tmurgent.com/appv/index.php/resources/videos/85-videos-app-v-5-series/323-series-5-1-virtualie
DOWNLOADS
Here is the ZIP package with both msis: Virtual IE V 1.0.0.0