Windows 7 - XP Compatibility

Posted by Dennis Beatty on May 22nd, 2009
2009
May 22

When Microsoft Vista was released in the latter months of 2007, there were a lot of applications that worked in Windows XP that would no longer work. Microsoft tried to help out by giving a user the ability to run an application as if the environment were Windows XP (or 2000, or 98, or 95). This would help any applications that were having any troubles with any version checks or other environmental issues, but not really address those with fundamental infrastructure issues.

 

This led to many people who wanted to switch to Windows Vista to use Virtual PC 2007 as a way to run those applications. It was a little kludgy, a user would have to open a Virtual PC image of a Windows XP workstation, log in and start the application once the environment started. Many would suspend the guest instead of shutting it down for ease of use. Unfortunately there were some limitations with Virtual PC 2007, such as being able to map to local drives and USB devices, that made this process a little annoying.

 

Thankfully, as time went by, more and more applications were converted or upgraded to work with Windows Vista. Of course, this list that wouldn’t work was a little larger if you used 64-bit Vista, many applications still do not have a viable 64-bit alternative, such as Cisco’s VPN Client, who state that they will never make a 64-bit version of this software.

 

Now Windows 7 is about to be released and many are worried about the same issue that existed before, applications that will not work. While this should not be that much of an impact, the internals of Windows 7 are not that much different than Windows Vista so most applications that work on one should work on the other, many are using these applications as the reason they are not upgrading. So Microsoft has come up with a little more elegant of a solution that using Virtual PC 2007.

 

This new method is called ‘XP Compatibility Mode’ and will be available for us in the released product, Windows 7. This add-on to Microsoft Windows 7 allows users to install their XP applications into the XP environment and then be able to start and access those applications from within the Windows 7 environment. While this sounds great, and it is, there are a few caveats.

 

First of all, this is essentially the same thing as using Virtual PC 2007 with some new modifications. This actually uses a new version of Virtual PC that is currently beta software, but has some additional functionality that many will want. First, it maps the local drives of the Windows 7 Host into the guest OS and allows the guest OS to access the USB devices of Windows 7.

 

So that can be done with just downloading the new version of Virtual PC, what are the additional things you get with this new XP mode?

 

The most important thing is that once you install the applications into the environment, shortcuts to the applications appear on the Windows 7 Start Menu. Then, when you click on the shortcut, it starts up the XP environment, starts the application and only shows the user the windows application running. You don’t see a desktop and the application can be moved and resized like any other native Windows 7 application.

 

The application can access the local clipboard, printers, drives, etc. It appears to be running as a native Windows 7 application.

 

Another feature is that you aren’t paying for this copy of XP that is running in the Virtual PC environment. This copy is given as a virtual license since it will be running on a Windows 7 OS. It even creates a user and sets that user up to auto login for use with the application mode.

 

Finally, when you aren’t using the application, the Virtual PC hibernates the environment and clears out of memory so that you are only using cycles on your workstation when you need to.

 

This is a good move forward for application compatibility within Windows OS’s but there are a few issues with this solution that people must be aware of.

 

First, and most important, the environment will need to be patched. It is set up to automatically patch itself, but this may still require some manual housekeeping to keep it up to date.

 

Secondly, there is no anti-virus software in the XP environment. There are many free versions and there will be a new free version from Microsoft coming soon that will replace OneCare that I imagine can be used, but most security conscious are going to want to run some version of antivirus on the XP workstation.

 

The last issue is how to get the icons loaded onto the Windows 7 Start Menu. While newly installed applications will appear automatically, if you want to run something like Internet Explorer 6 from within the XP environment (though I am not sure I would recommend that) you will have to move that icon to the All Users Start Menu area since that is where the application compatibility software will look for applications to appear.

 

All in all, this is a very good intermediate solution for getting people to move towards Windows 7 by understanding the needs to run older versions of software and make it a little less painless for the user, but the real key will be once this matures a little more there will no longer be any reason to keep backwards compatible code in the newer versions of Windows OS’s.

 

For years Microsoft has had to struggle with making sure that businesses can still run existing software on their OS products when new versions were released. This has been the biggest reason for viruses and bloated code being dragged around behind Windows while other OS manufactures without such a large install base can just abandon older chunks of code and move on when necessary. Imagine a Windows that is not concerned with supporting legacy applications, a Windows that can abandon much of the conventions of the past and look forward to future optimizations and componentizations. That is something to really look forward to for anyone who uses Microsoft Windows and will in the future, which I believe is still a substantially large group of people.

Stirling Forefront Beta 2 Released to Public

Posted by Dennis Beatty on Apr 17th, 2009
2009
Apr 17

On Thursday April 16, 2008, Microsoft released Stirling Forefront Beta 2 to the public. This includes Forefront for Exchange and Forefront for Sharepoint as well. The links to the downloads can be found on technet here:

http://technet.microsoft.com/en-us/library/dd647498.aspx
http://technet.microsoft.com/en-us/library/cc483004.aspx

Sharepoint Docs Reporting Virsuses

Posted by Dennis Beatty on Apr 15th, 2009
2009
Apr 15

Occasionally a virus scanner running on Sharepoint will give false positives and mark the page/doc as such. In most cases, the trapping will be legitimate, but there are those occasions that the virus scanner has just made a mistake. Normally you could download the latest updated virus definitions and a rescan should reset the file, but if for some reason there is no updated virus definition yet how do you reverse the process? The answer requires a little massaging of the SQL database that the doc or page resides in.

 

Per http://support.microsoft.com/kb/928169:

 

The first thing you want to do is run a SQL query to find out of any pages or documents are marked with a non-null character. This can be done in Query Analyzer with the following script:

 

SELECT *
FROM AllDocs
WHERE (VirusStatus > 0) and (VirusStatus is not null)

 

This will give a report of all documents that are marked as being infected. To reset them, another script must be run in Query Analyzer:

 

UPDATE AllDocs
SET VirusStatus = null
WHERE (VirusStatus > 0) and (VirusStatus is not null

 

Then, to remove any reference that the file was ever identified as a virus, you must reset the virusinfo field as well:

 

UPDATE AllDocs
SET VirusInfo = null
WHERE (VirusInfo is not null)

 

And that will get you back to how things were before everything occurred. Now, if you need to leave some files or pages marked as bad, you can alter the script to identify only those items you want to reset.

Windows 2008 DNS Headache Prevention

Posted by Dennis Beatty on Feb 13th, 2009
2009
Feb 13

The Active Directory team at Microsoft has found and fixed a particularly annoying bug with DNS, standard secondary zones (not AD Integrated) and Windows Server 2008.

In a nutshell, the DNS Server service in Windows Server 2008 has a bug that can result in a large number of DNS records disappearing. When those records go missing, you will start seeing problems with anything that depends on name resolution, which in an Active Directory environment is pretty much everything. Note this hotfix only applies to standard secondary zones. Active Directory-integrated zones are not affected by this issue because they use AD replication, not zone transfers, to stay synchronized.”

 So, if your clients are going down this path, make sure that this hotfix is applied.  http://support.microsoft.com/kb/953317

 

Original Blog Post is at http://blogs.technet.com/askds/archive/2009/02/12/headache-prevention-install-hotfix-953317-to-prevent-dns-records-from-disappearing.aspx

How Are Your Detective Skills?

Posted by Dennis Beatty on Feb 12th, 2009
2009
Feb 12

If they are good enough, Microsoft has put out a $250,000 bounty for anyone who provides information leading to the capture and conviction of anyone responsible for the conficker/downadup virsus that have been beating the lights out of IT departments these past few weeks. 

 

Happy hunting!

The Day the Music Died

Posted by Dennis Beatty on Jan 1st, 2009
2009
Jan 1

Luckliy, it was only one day, but yes I was unfortunately affected by the Great Zune-Out of 2008.  I have a generation 1 30 gig Zune (brown) that I have had for over a year and never once have I had a problem with it, until December 31, 2008.  A leap year.  And that turns out to be the key in what happened.

 

Reports started to flood the zune.net website (the Social in Microsoft circles) about zunes failing around midnight the morning of December 31.  People stated that the zune locked up in the middle of a song.  Others that when they tried to turn theirs on they only saw the loading screen with the white progress bar all the way to the right, but it would no longer respond to any input.  This is the scenario that happened to me, I saw a report about it on twitter (user was Dan_H who didn’t himself have a zune but had saw the reports).  I checked my zune and sure enough, it was locked up a the loading screen.

 

This was followed by many people trying to figure out what had happened.  Was it all zunes?  Just the generation 1 30 gig zunes?  Was it on purpose?  How could we fix it?  Could there be a fix or would we have to send them in to Microsoft?  A lot more people were using these Zunes than had previously been thought before (Dan_H’s original tweet jokingly mentioned that this affect ‘all 5 gen1 zune owners’). 

 

It was obviously early on that it had to be related to a firmware issue as it was far too consistent to be anything else.  But if the zune would not boot so that a new firmware could be applied, how was this going to be fixed?  Reports started appearing sayin that you could open the zune, disconnect the battery and that would fix it.  Only they were not correct (and voided the warranty to boot) even though several people tried.  Others said that simply hard resetting the zune would work, but again, this was not really the case even though reports were spreading that it would.  Some people started playing on this for comedy value, suggesting boiling the device for 3 minutes would do the trick, one has to wonder how many desperate people tried this method.

 

Finally, Microsoft acknowledged the issue.  They had no explanation or fix, but did pinpoint the issue to only the generation 1 30 gig zunes.  Speculation continued that this was a result of a disgruntled zune coder or perhaps Microsoft itself putting in a timebomb so that people would go to newer models.  One person suggested to me that this was the result of an Apple spy designed to make Microsoft look bad.  None of these suggestions held a single bit of evidence or fact in their design, but were fun reading since we couldn’t listen to our music for a while.  But there was real concern that this was not going to be an easy fix.

 

Then, around 3:00pm EST the word started to make it out from official channels that this was the result of special ‘leap year’ code and that after 7:00am EST on January 1, 2009 the devices would start working again.  I didn’t try it after midnight but instead waiting until the next morning, after recharging the device, it did indeed work and it appeared to be the leap year code.  But the question still remained, why did such code only affect these early models and how did it make it into the device to begin with?

 

The answer, apparently, seems to be the result of a 3rd party driver used on the initial zunes.  The code was from Freescale Semiconductor, Inc. and used by the initial zune as a driver for the real time clock.  Subsequent models had code written by Microsoft on them.  itsnotabigtruck on the zune boards seemed to be the first one to discover the actual offending code that and posted to the internet that evening and it can be seen clearly what happened once you read through it. http://www.zuneboards.com/forums/zune-news/38143-cause-zune-30-leapyear-problem-isolated.html The full code for the rtc.c driver can be seen here http://pastie.org/349916

 

//Copyright (c) Microsoft Corporation. All rights reserved.
//Copyright (C) 2004-2007, Freescale Semiconductor, Inc. All Rights Reserved.
//Module: rtc.c
//PQOAL Real-time clock (RTC) routines for the MC13783 PMIC RTC.  

OALMSG(OAL_RTC&&OAL_INFO, (TEXT(“RTCDayCnt=%d\r\n),day));

year = ORIGINYEAR; while (day > 365)
    {
        if (IsLeapYear(year))
        {
            numOfLeap++;
            if (day > 366)
            {
                OALMSG(OAL_RTC&&OAL_INFO, (TEXT(“Leap Year:    %u),year));
                day -= 366;
                year += 1;
                OALMSG(OAL_RTC&&OAL_INFO, (TEXT(“, Days left: %u\r\n),day));
            }
            else
            {
                OALMSG(OAL_ERROR, (TEXT(“ERROR calculate day\r\n)));
                break;
            }
        }
        else
        {
            OALMSG(OAL_RTC&&OAL_INFO, (TEXT(“Not Leap Year: %u),year));
            day -= 365;
            year += 1;
            OALMSG(OAL_RTC&&OAL_INFO, (TEXT(“, Days left: %u\r\n),day));
        }
    }

 

There is more but this explains what happens and is detailed in the zune boards post:

 

Under normal circumstances, this works just fine. The function keeps subtracting either 365 or 366 until it gets down to less than a year’s worth of days, which it then turns into the month and day of month. Thing is, in the case of the last day of a leap year, it keeps going until it hits 366. Thanks to the if (days > 366), it stops subtracting anything if the loop happens to be on a leap year. But 366 is too large to break out of the main loop, meaning that the Zune keeps looping forever and doesn’t do anything else.

 

Simple issue, easily resolved by waiting a day to use the zune.  The upshot is that for one day all zunes in existence could not run and will happen again in 4 years, unless a fix via a firmware update is implemented (I am sure it will be).  I wonder, though, how many other devices used this 3rd party software and had the same issue?  Or was this written specifically for Microsoft and the error not caught?

 

The good news is that this is not a problem that Microsoft coders make, as evidenced by the later zunes not having an issue (or any other Microsoft product) so I find it a little unfair to throw Microsoft under the bus on this one.  The question is still open though as to what Microsoft would have done if this was an error that could not be fixed so easily as waiting a day.  Would they have honored the problem with all devices, not just those under warranty still?  Would they have required all zunes to be returned to be fixed by them?  Luckily we don’t have to find out… this time.

Teched 2008 Arrival

Posted by Dennis Beatty on Jun 9th, 2008
2008
Jun 9

I have arrived at Teched 2008 in Orlando.  Let the brainwashing begin!