Xenocode: A damn good alternative to VMware Thinapp!
As Mark pointed out in his earlier post: The VMware Thinapp team really needs to wake up… it’s not acceptable (from my point of view) to still not have Windows 7 support for you application virtualization product!!
Mark pointed me to an alternative called Xenocode: This is looks a LOT like Thinapp/Thinstall and works on Windows 7 as well
Virtualizing Applications
To get started, first go to www.xenocode.com and download the Virtual Application Studio.
When you fire up the VAS you get a wizard which provides you with 3 ways of virtualizing your application:
The first option allows users to easily virtualize an application using a template. This template contains all the settings for virtualizing an application. It’s as easy as next next finish
. This is really awesome for organizations where you want your application support team to virtualize the application, as they don’t have to know in-depth how application virtualization works
.
The second option allows users to virtualize an application the way we know it from VMware Thinapp. It first takes a snapshot of the computer, then prompts the user to install the application /set configuration options etc and then takes another snapshot and does a diff on the snapshots to determine what files and registry settings should be in the virtual application.
The third option allows users to manually specify the files/folders and registry settings that are required for this application to run (really useful when virtualizing your in-house developed applications, seeing as the developers know exactly what file should go where, and you don’t get any clutter from background processes etc.)
After you captured your application, you can easily include common runtimes from the runtimes tab (such as the .NET frameworks, java, flash etc)
The toolbar on the left side of the screen gives us access to the various parts of the virtual application, such as File system, Registry etc.
I’ts also possible to generate a MSI package for the virtual application for easier deployment using SCCM/MDT/GPO/Whatever you use to deploy your software to your users.
For troubleshooting your virtual application Xenocode provides a checkbox to Generate diagnostic-mode executable. Basically what this does is create an executable that will output logging in 3 log files next to the application, so if something is not working in your application, you can easily troubleshoot
If you enabled it in your application settings (on by default) it’s also possible to pass command line switches to your application at startup time.
- /XEnv=Variable Name=Value Specifies additional environment variables. Multiple /XEnv arguments can be used to add additional environment variables.
- /XLayerPath=Layer Path Adds the given xlayer file into the virtual environment. Multiple /XLayerPath arguments can be used to add additional virtual layers.
- /XSandboxPath=Sandbox Path Specifies the path to be used for the application sandbox.
- /XShellEx=Command Specifies a shell execute command to be launched from within the virtual application environment. This option overrides any startup files specified in the virtual application configuration. Only one /XShellEx argument can be specified.
- /XShellExVerb=Command Verb Specifies the verb to be used in conjunction with the XShellEx command. The default verb is OPEN.
Middleware
When dealing with middleware, in Thnapp we could specify an applink and with App-V we can use dynamic suiting to allow for interbubble communications. In Xenocode you don’t make an application for your middleware, but make it a component, which you can import in your applications.
Deploying Virtual Applications
Deployment of the virtual applications is done through a tool called XReg. This allow the administrator to control how the application is published to the user.
This can be done from a startup/logon script. This area needs some more work in my perspective, there’s not a nice and nifty GUI management interface as with App-V.
Also the possibility to create MSI’s makes deployment a bit easier, just use your favorite deployment method for your virtual applications.
Pricing
Not the most fun part for us techies, but important for the ones who have to make the decisions about investments, and what application virtualization technology will be used.
The Xenocode Virtual Application Studio ISV Edition costs $1599
End-User licenses: $40 per seat.
Well that’s about it
. As a final conclusion i think Xenocode is a real nice application virtualization product, it works easily and out of the box, users don’t have to know a lot about Windows and application when you just give them the right application templates
. As with VMware Thinapp, the problem is how to distribute the applications to your clients, and how do you make sure that all users have the latest version of the virtualized application… well that’s something the Xenocode team needs to think about I guess.
App-v on a stick!
Last friday our colleague Peter Nap released the first version of his App-V USB Tool, The free App-v USB tool can be used to import and register sequenced applications into the App-V client fully automated, just put your applications on a USB device and insert the device in a PC that is running the App-V USB Tool. If you do this the App-V tool will ask you what to do.
After choosing option one or two the client will import and register the application(s) on the USB device and register associated file-types. And you're ready to use them!
You can also choose to import a folder just by right clicking it (this folder doesn't have to be on the USB device)
You can download The App-V USB tool for free from the tools section at loginconsultants.com.
Intel 945 and External Display native resolution
Just a quick post in between
As promised I’m still working on my XenoCode post to followup on Mark’s VMware bash
.
I noticed messing around/coding/working etc all the time on my work laptop was killing my back, so I decided to buy 2 20” tft screens (Dell S2009W) and a docking station for my laptop so I would have a decent workplace @ home. Pretty much fun, untill I discovered that the monitors native resolution (1600x900) wasn’t supported by my laptops graphic card (Intel 945 Express, Intel GMA 950 chip)… Hmm that was a real bummer…. after googling around I found this post talking about how to enable custom resolution on Intel graphics… But that looked mighty complicated at first and I didn’t want to bother…
After 2 days working on non-native resolution I decided I had to fix this, so I started again… this time I discovered the DTD Calculator
Basically what it comes down to:
- Get your monitor info using MonInfo (make sure you have your external monitor attached, otherwise MonInfo will only report back data from your internal display, also make sure you selected your external monitor in MonInfo, you can see that quick enough if you look at Standard Timings Supported)
- Paste your RAW DATA in the DTD Calculator tool on the Interpret EDID tab.
- NOTE: Make sure you're running DTD Calculator as an administrator on Windows Vista / Windows 7. Otherwise the tool won't be able to edit the registry!
- Press Interpret DTD
- Double click the DTD in the right side column.
- Go to Reverse calculation press reverse calculation
- Go to the Registry Hack tab
- Press the More button
- Press Get Calculated
- Press Create Modeline
- Press Write DTDs to Registry
- The program prompts you to reboot your computer, do this and presto! You can select your monitor’s native resolution after rebooting the machine
IMPORTANT: Sometimes it can happen that the DTD you get for your monitors native resolution just won’t work on your system, even with this hack…
If the DTD data is correct in the registry but the resolution is still not available, it's a pretty good bet it's forbidden in the BIOS. How do we get around this? We cheat! The BIOS contains the Mode Removal Table, and it has entries like "1600x900, 60Hz" and "1400x1000, 50Hz". But it doesn't say anything about 1599x900, or 1399x1000, so those are allowed. (Muahahahaha! Can you feel the evil power you wield as we bypass this silly restriction?) Ridiculous, really, and you'll lose 1 pixel on the side of your screen… who cares!
For more detailed information about calculating the DTDs and lowering a it by a pixel, please visit this page
For all you lazy people out there (like me
) here is the right DTD for the Dell S2009W monitor (1599x600@60Hz):
2F 26 3F A1 60 84 1A 30 30 20 35 00 BB F9 10 00 00 1A
VMware: Wake up!
Today a negative post from my side, VMware what are you doing, is everyone of the Thinapp team on a permanent vacation ? Why is there still no Windows 7 Support ? And even more important: Where is the official statement telling us when it will be available.
What is the alternative: XenoCode perhaps!
When comparing features XenoCode is very alike with Thinapp (Only they have win7 support
). When it comes to being userfriendly during the capture off applications XenoCode is far ahead, they have include a standard set of templates for common applications.
A smart thing to create from the XenoCode team is the converter this is the Ability to import external application configurations, including VMware ThinApp configurations: Customers who have already packaged applications using other technologies, including VMware ThinApp/Thinstall, can now import these configurations into Studio with a single click, without the need for any recapture.
Want to try XenoCode quick and simple just try some applications online! you can just run them like a youtube video after installing a little plugin: click here to test.
While i was writing this post Henk got all exited about XenoCode and wanted to give it a try so he’s gonna write the follow up
Immidio Flex Profiles Advanced released
A few days ago Immidio released their new version of Flex Profiles. Flex Profiles can be used together with mandatory profiles to store pre-defined settings (eg: wallpaper, ie passwords, outlook signature ect) but keep the advantages of a full mandatory profile (speed, corruption, bloating) we like to call this a “hybrid profile”.
Lucky as i am i had a chance to test Flex Profiles Advanced and some of the new features that are in it. Below you will find a list of what i think are the most cool new features!
- Pricing -Flex Profiles Advanced fixes a very specific problem for a small price
- Cross platform desktop support
- Support for virtualized applications! (app-v, thinapp etc)
- Compression of the zipfiles that hold the user settings/files (This can save a lot of disk space but watch the performance!)
- Fully configurable via GPO, woohoo no more ini files on every machine
GUI & Automated INI file creation
One of the more time-consuming actions with Flex has always been the creating of the application INI files, the INI files are used to tell the FlexEngine what files / settings have to be saved. But instead of doing this completely by hand you can now use The Flex Profiles Assistant:
- Start the Flex Profiles Assistant
- Start Procmon monitoring (can be done from within de assistant)
- Change some settings that you want the FlexEngine to save
- Stop Procmon monitoring
- Save the Logfile in XML format
- Let the assistant process the logfile and zip it. (Hint: This has to be done on a reference machine, the assistant adds machine info like redirected folders etc to the log file)
- Import the .FLEX file in the Flex Profiles Management Console
- Select the application you want to Flex
- Very important! Check if what the Assistant put in the INI file makes sense! And clean up anything you do not want to be saved / you thing is not important to save.
An other great new feature are the predefined common settings, this is a list of actions you want the FlexEngine to perform without configuring an INI file. For instance you can now click “Internet Explorer – auto complete settings” and the engine is configured to save all settings necessary to remember IE passwords. You can imagine how much easier this is than figuring out an INI file.
As a conclusion: After testing this version of Immidio Flex Profiles i must say i am impressed by the processing speed of the engine and the enormous list of new features they implemented to make our lives easier: This product is worth the money guys!
Example INI FIle:
[IncludeRegistryTrees]
HKCU\Software\Adobe\Acrobat Reader\9.0[Information]
Title = Acrobat Reader 9
Description = To be able to read PDF Files[Immidio Flex Profiles Advanced Edition]
This file was created using the Immidio Flex Profiles Management Console.
Only use with Immidio Flex Profiles Advanced Edition.
A good reminder why patch management is important!
I just got home from a whole weekend of working (almost around the clock) at a customer fighting a very nasty virus called WIN32/IRCBOT.RC (it’s called other names as well). The virus had spread around 1100 client systems and approx. 150 server systems. First thing I wondered is how the hell did this virus get in… it’s a pretty old virus which should be picked up by the virus protection and it should not spread among systems via the network, seeing as Microsoft put out a security patch for it. So I started looking around the clients and servers… turned out that the customer didn’t install ANY Microsoft updates at all after deploying the machines.
I ended up writing a very complicated computer startup script that would remove the virus from the clients… on the servers the script was manually started…
The customer was using Norman Anti Virus, which did detect the virus, but didn’t succeed in cleaning/quarantining it. First thing tomorrow they will start uninstalling Norman and start installing Forefront Client Security on the clients (which does actually cure the virus)
So this was a great reminder why we do patch management:
This whole drama could’ve been avoided when the clients and servers would be up to date with the latest security hotfixes from Microsoft.
Office 2010 – Click to run installer – “modification”
As a tech guy you get invited for beta’s on a regular basis, this happened to me for office 2010 a while ago. When i logged on to Microsoft connect i found out Microsoft does not give away full blown iso’s anymore but something they like to call “Click to run Installer”. *hmm interesting.
A couple of minutes after installing it was clear to me the click to run installer is a modified version of Microsoft app-v (softgrid registry keys, the famous Q drive etc), only the softgrid processes are hidden and sfttray does not seem available.
Well so far so good, but then i remembered the app-v 4.6 beta also went public. so this is where it got interesting: What if i take the OSD files from the “Click to run installer” and feed them to a normal app-v client. i guessed there would be some sort of mechanism preventing me to load the applications, this suspicion was increased by the first application i started because it was asking for a certificate
but no worries.. From all the osd files i managed to start a certificate manager
So here is a little howto:
- Get invited to the beta of office 2010 to get your hands on some OSD files
- Get the app-v 4.6 client (connect.microsoft.com)
- Extract the OSD files from the machine where you ran the “click to run installer” (C:\Users\Public\Documents\SoftGrid Client\OSD Cache)
- Import the OSD files on the app-v 4.6 client
- Load the application(s): for instance with “Sfttray.exe /loadall”
- Run the application via the GUID name: for instance “Sfttray.exe /launch {eef3cf80-26b2}”
I definitely see a future for this type of application delivery, where even home users use techniques that are common for enterprises these days: How great would it be if you could just stream a application and only pay when you are really using it ? – as a service!
MDT 2010 Release Candidate!
The Release Candidate for MDT 2010 just went public!
This release promises a lot of bug fixes and is tested with pre-RC build of Config Manager 2007 SP2.
Sign up for it here: https://connect.microsoft.com/site/sitehome.aspx?SiteID=14
Login VSI 2 – It’s alive!!!
Long awaited and almost here: Login VSI 2.0 after the successes with Login VSI 1.0 and Project Virtual Reality Check we just had to go 2.0, so we dusted off our development machines and testing environment and got working. The first thing we did was gather all bugs annoyances and feature requests that we received when Login VSI 1.0 was released, together with our own best practices and experiences we had a good foundation to start on a solid new version.
At this moment the beta is available for a limited number of test users, these are employees of all the major virtualization vendors, Citrix CTP’s and a number of hand picked VSI 1.0 customers. Do you think you can convince me to also invite you to the beta ? Please drop a line in the comments!
Next you will find a short list of what i think are the most important changes on VSI *note some off these features are not free but Login VSI 2 will also be available in a full functional free version.
· New workloads (Light/Medium/Heavy/Multimedia)
· Informative progress bar during workload execution
· New external clock using SQL for reference purposes (Pro Only)
Analyzer
- Setup supports network installations
- New VSImax calculation: much more precise
- Automatic renaming of excel files to “testname”
Target/workload build from scratch
- New medium and multimedia workload (now 12 instead of 18 minutes)
- More multimedia
- New websites
- Zip support
- 2008 R2 Compatible PDF printer
- IE 8 support
- More reliable than the 1.0 release: “stuck” sessions reduced to minimum
- New timer mechanism (without sleeps to improve measurements in VM’S)
- External reference clock using SQL
- Detailed debug logging
- All configuration moved to central location
Active directory
- Fixed policies for 2003 AD
- Split system / user policy objects
- Added Computers OU
- Improved setup user objects ( no password expiry etc)
- Streamlined minor setup bugs
Launcher
- New pre-launch naming of test: no more archiving of test needed
As you can see we made a lot of changes, as soon as the beta goes public (this should happen shortly!) i will go into more detail on specific funtions and possibilities with VSI.
ZeroTouch for MDT 2010 without SCCM!
Don’t you just wish you could set all your clients to boot from network, and let the PXE server evaluate whether or not it should load the WinPE image to redeploy the computer? Well you can with SCCM using mandatory advertisements of course… but I've written a little script that will achieve the same functionality using native MDT, without the use of the SCCM infrastructure
Here’s how you do it:
- Requirements:
- MDT2010 (beta 2) /WDS installed on Windows Server 2008
- Powershell enabled on the WDS server
- MDT deployment share configured to use the database (i’m using an SQLEXPRESS instance configured on the same machine as MDT/WDS in this example)
- SQL Server Management Studio or equal SQL server management tooling for editing the database.
Ok here we go and setting it up. First some simple stuff
- Set your WDS server to admin approval mode
- On the Directory Services tab, make sure you set the OU location in which the WDS server will create the temporary computer object for approved devices
- Make sure your WDS server account has full control on the OU set in the WDS directory services
Ok, that was easy now wasn’t it?
Now let’s edit the MDT database to fit our needs. This assumes your already set up your database using the database wizard in the MDT Workbench.
- Start the SQL Management Studio application and expand the MDT database (MDT_DB in this example)
- Browse to Tables –> dbo.Settings –> Columns
- Right click Collumns and select New Column
- Give the new column the name of netBoot and type nvarchar(50)
- Save and close the SQL management studio
- Verify the database expansion was successful by opening the MDT Workbench and navigating to the database view > Computers > properties
- Select the Details tab and browse all the way to the bottom to verify that the netBoot value is there
Ok, that was part 1 of the configuration. Now we have to know what to actually do with this extra field in the database. Well that’s where my script comes in. Here’s how you install it.
- Run the following command as an administrator on the WDS/MDT server:
- Server 2008: Powershell.exe –command “ & {Set-ExecutionPolicy Unrestricted } “
- Server 2008 R2: Powershell.exe –command “ & {Set-ExecutionPolicy Bypass } “
- Download the MDT-ZTI.ps1 file to your WDS/MDT server (in this example I'm using D:\MDT-ZTI.ps1)
- Start Task Scheduler and Right click library > Create Task
- Give the task a name of your liking. I’m using MDT-ZTI in this example.
- On the triggers tab select: New
- Begin the task: On an event
- Log: Microsoft-Windows-Deployment-Services-Diagnostics/Operational
- Source: Deployment-Services-Diagnostics
- EventID: 4096
- Click Ok and go to the Actions tab and select New
- Add action
- Start a Program
- Program/Script: Powershell.exe
- Add Arguments(optional): –command D:\MDT-ZTI.ps1
Ok the ZeroTouch “service” is almost ready to go. Now there’s another thing that we need to configure… we have expanded the MDT database to contain an extra column… but how does the service know what database and what database server to use?. Well that is hardcoded in the top of the configuration of the MDT-ZTI.ps1 file. In the future I will be using params() from powershell, but for now just change it in the top of the script.
# //*************************************************************************** # // Configuration: # // Notes: Set the database name and datasource for your environment here. # // For SQLEXPRESS on the same server use "\SQLEXPRESS" as datasource # //*************************************************************************** $Database = "MDT_DB" $DataSource = ".\SQLEXPRESS"
Now how does the “service” know what computers are allowed to boot into WinPE and what computers should boot to the next boot device? That’s a simple 3 part answer:
- Every computer that is NOT in the MDT database will be rejected (pxeabort.com) by the ZTI.
- Every computer that IS IN the MDT database will be polled for the value of netBoot.
- If the value of netBoot does not equal FALSE it will approve the device so it will load the boot image, and then set netBoot to FALSE so the device won’t load the boot image on the next reboot
So if you have a computer which is not booting into winPE just clear the netBoot field in the database and on the next reboot it will boot into winPE.
IMPORTANT: Please be sure to test this first in a test environment first, it is not recommended to implement this in production directly.
Download: MDT-ZTI