Tag: Compatibility

Checking Win32 application runtime dependencies in Windows 10

There are new WMI classes in Windows 10 that can be used to collect software inventory. The information can be displayed using PowerShell. Also, there is a feature that inventories what framework or runtime an application is dependent on, for instance which version of .NET Framework or Visual C++ Runtime and it can even see if there are dependencies for OpenSSL. Imagine having these feature in place when the HeartBleed bug appeared a few years ago.

Display all installed applications on a Windows 10 machine:

Get-WMIObject Win32_Installedwin32Program | select Name, Version, ProgramID | out-GridView

Display all apps and dependent frameworks on a Windows 10 machine for a specific application (replace the ProgramID in the filter section with another one from the above example), and make sure everything is on one row:

Get-WMIObject Win32_InstalledProgramFramework -Filter "ProgramID = '00000b9c648fd31856f33503b3647b005e740000ffff'" | select ProgramID, FrameworkName, FrameworkVersion | out-GridView

or to bake them together to get both the application name and associated frameworks:

$Programs = Get-WMIObject Win32_InstalledWin32Program | select Name,ProgramID
$result = foreach ($Program in $Programs) {
$ProgramID = $program.programID
$Name = $program.Name
$FMapp = Get-WMIObject Win32_InstalledProgramFramework -Filter "ProgramID = '$programID'"
foreach ($FM in $FMapp) {
$out = new-object psobject
$out | add-member noteproperty Name $name
$out | add-member noteproperty ProgramID $ProgramID
$out | add-member noteproperty FrameworkPublisher $FM.FrameworkPublisher
$out | add-member noteproperty FrameworkName $FM.FrameworkName
$out | add-member noteproperty FrameworkVersion $FM.FrameworkVersion
$out
}
}
$result | out-gridView

Now, happy hunting for runtime dependencies!

Do you think moving to IE11 makes you well prepared for Windows 10? You better think again!

One of the things you can and should do before moving to Windows 10 is to deploy Internet Explorer 11 on your existing machines. But if you think that means you are safe in terms of then moving to Microsoft Edge and be running with all the latest and greatest of web standard, you’d better think again. Why?

Well ever since Internet Explorer 8 the setting “Display intranet sites in Compatibility View” has been enabled. Really what that means is that although you have moved to IE11 the chances are very likely that all your LOB web apps and all intranet based sites have been running in IE7 mode the last 10 years or so, at least after moving to IE8. That’s not very good to be honest.

The solution to really be future-safe is to make sure to unset that setting to actually run all your sites in IE11 mode. This can of course be done using Group Policies by setting the policy “Turn on the Internet Explorer 7 Standard Mode” policy. However when doing that expect things to break so I strongly advise you do some thorough testing Before deploying that setting to your entire organization.

HOW TO: Find 16-bit applications in your ACT inventory

When companies deploy Windows 7 most of them are looking at the 64-bit version of Windows 7. This architecture of Windows does not support running 16-bit applications, which unfortunately still is widely in use. If you do an inventory with ACT (Application Compatibility Toolkit) it will inventory all executables as well as CMD files and some other stuff and it will contain information about 16-bit applications lying around and being used by the users in your business.

The trick is that the GUI does not provide a way to view these applications so you have to turn to doing a SQL query using for instance the SQL Management Studio Express tools. Use the SQL Query below to get information on any none 32- or 64-bit executable. The query (thanks to Chris Jackson) will return for instance WOW (Windows on Windows) or DOS applications and that will/might indicate a 16-bit app which you should prioritize to test and handle as necessary.

USE ACTDATABASE
GO

SELECT DISTINCT Applications.appName, Static_App_Properties.fileName, fileModuleType

FROM Static_App_Properties
INNER JOIN Application_Instance_Files
ON Static_App_Properties.identity_hash = Application_Instance_Files.filePropertyID
INNER JOIN Applications
ON Application_Instance_Files.appID = Applications.identity_hash

WHERE fileModuleType<>'32BIT' AND fileModuleType<>'64BIT' AND propertyType='File'

ORDER BY appName
GO

Happy hunting for 16-bit applications! :)

ACT 5.6 released – many improvements

Being at TechEd in North America last week it seems that ACT 5.6 was released on Monday last week. Among the improvements are tools for migrating to the 64-bit platform, including a 64-bit version of the Compatibility Administrator.

The assessment overview is something that also has been improved and I strongly recommend you to download and intall this tool if you are making an inventory for upgrading to Windows 7.

Download at MS Download Center.

Webcast on migrating from IE6 to IE8

Join Chris Jackson in the webcast Migrating from Internet Explorer 6 to Internet Explorer 8 (Level 300) to learn what you need to know when you migrate from IE6 to IE8. Actually I met Chris at the MVP Summit that took place last week and he is indeed a great and inspiring speaker and an interesting person to talk to. What Chris doesn’t know about application (and web site) compatibility is not worth knowing :)

Drivers for old Soundblaster cards in Windows 7 and Windows Vista

A problem when Windows Vista was released some years ago was the fact that Creative wasn’t too “creative” to create drivers for older Soundblaster cards. This is where the kX Project comes in as it provides drivers for most older Soundblaster audio cards in newer operating systems.

But why on earth do I mention this now that Vista has ben out for a few years? Well the reason is that I’ve heard of users (some of which totally skipped Vista) that are testing Windows 7 on older machines and does not find a driver for their Creative Soundblaster audio card.

If you are looking for a Windows Vista och Windows 7 driver for your Soundblaster range of audio card go to http://www.kxproject.com.

EDIT: URL updated.

Fool a web site into thinking you are another browser or OS

Some time ago I wanted to see a soccer game via Canal Digitals web service but as I am running Windows 7 on my Media Center connected to my TV the web service discovered this and did not let me play this using Windows Media Player and instead offered me to view it in Flash format. Viewing the game in Flash format really wasn’t the best in quality and as I and my co-watchers discovered the game was more or less unwatchable.

In halftime I had the time to do the necessary corrections to fool the web service into presenting itself as another operating system and Internet Explorer version. This made the Windows Media stream instantly and not to mention with much better quality. This is done easilty by changing the so called user agent string which is a string which presents certain information such as OS, web browser and version and some more info.

If you want to change the user agent string and fool a web site or service into thinking it is something it is not you can do this using one of the registry fixes found at http://www.enhanceie.com/ua.aspx.

What does a Windows 7 logo’ed application really mean?

Now that Windows 7 RTM is closing in and it has been announced that Windows 7 will be available to partners as early as late July I thought I’d share a few facts about what an application being certified for Windows 7 really mean. For software developers to receive the “Windows 7” logo it must pass certain required tests. The certification process include for example the following requirements:

  • No installation blocks. One common problem is that software developers check which operating system the application is trying to be installed on which causes an application to not install on the latest operating system. For an app to become certified there must be no such blocks.
  • Remote Desktop Services environment. All apps must work in a multi user environment such as Remote Desktop Services (former Terminal Services) or when multiple users are logged on locally on a client machine.
  • Handling crash data. The developers must actively participate and handle application crash data that is sent to Microsoft via the built in application error reporting in Windows. For instance if an application carrying the “compatible with Windows 7 “ logo is discovered to cause more than 20 percent of crashes the developers have 30-90 days to present a plan to fix the problem(s), or the logo is revoked. 
  • Installation and uninstallation. Applications must install cleanly to standard locations in the file system and it must be possible to uninstall the application. 
  • Support for 64-bit platform. Applications that receive the logo must fully work on 64-bit version of Windows 7, either natively or by using WoW64.

That is just a few requirements that an application must pass before it gets the “Compatible with Windows 7“ logo. More information can be found at https://connect.microsoft.com/site/sitehome.aspx?SiteID=831

Windows XP mode for Windows 7!

So it seams it isn’t a secret anymore that Windoyws 7 will get a feature (separate download) that using the latest Virtual PC technologies will make it possible to run applications in Windows XP directly integreated into the Windows 7  operating system. The feature is almost the same as MED-V which accomplishes basically the same thing, but The “Windows XP mode” has advantages like it is available for anyone running Windows 7 Professional, Enterprise or Ultimate SKUs.

With this Microsoft can guarantee compatilibty in a way no one could ever expect. This also makes the step from Windows XP to Windows 7 much easier and now there cannot be any apps holiding anyone back from upgrading the clients to Windows 7.

More information: Winsupersite

Help improve app compatibility in Windows 7

Microsoft is working more active than ever to improve application compatibility in Windows 7. Recently two Swedes announced Microsoft’s willingness to help improve application compatibility in general but also for non-English applications.

First Jesper Holmberg, working with localization at Microsoft in Redmond, announced the face that Microsoft actively wants applications in non-English languages to test with Windows 7. Second Danwei Tran, a new IT evangelist at Microsoft Sweden, offered everybody to send emails to a specific address to report compatibility issues with applications. Microsoft will then contact the developers to see how they can resolve the problems, to everybody’s benefit.

These two actions will of course make compatibility for Windows 7 superb, but never to forget, compatibility for Windows Vista will improve as well as a direct result of these actions.

Just a final note, Application Compatibility Toolkit 5.5 got released yesterday, more about this later on.