Now that my home and work desktops are running Windows 8 (or locked down so I can’t install anything), I’m finally moving all my virtual machines from Virtual PC 2007. Losing the drag-and-drop feature was such a deal breaker in the past but now I’ve reached the point where the software just won’t install. As Hyper-V is there in the O/S, I won’t bother experimenting just yet with other managers (such as VMware or Oracle’s VirtualBox) unless there’s something I really can’t work without.
Migrating my virtual machines
The migration isn’t painless – the virtual hardware is different so the guest operating system needs new drivers. Also the integration software has to be uninstalled and replaced. From Wikipedia:
VHD compatibility with Virtual Server 2005 and Virtual PC 2004/2007
Hyper-V, like Microsoft Virtual Server and Windows Virtual PC, saves each guest OS to a single virtual hard disk file with the extension .VHD, except in Windows 8 and Windows Server 2012 where it can be the newer .vhdx. This file contains the entire guest OS, though other files can also be configured to allow "undo information" etc.
Older .vhd files from Virtual Server 2005 and Virtual PC 2004/2007 can be copied and used by Hyper-V, but any old virtual machine integration software (equivalents of Hyper-V Integration Services for other virtualization software) must be removed from the virtual machine. After the migrated guest OS is configured and started using Hyper-V, the guest OS will detect changes to the (virtual) hardware. Installing "Hyper-V Integration Services" installs five services to improve performance, at the same time adding the new guest video and network card drivers. Consequently, Windows guests may require re-activation.
Device Manager in a Windows XP guest OS shows three devices without drivers, one of which is for the network adapter.
To fix that requires installing the “Hyper-V Integration Services” but that can’t happen until the existing “Virtual Machine Additions” have been removed.
Now this worked the other day but a different virtual machine now throws an error:
“This installer may only be run inside of a virtual machine”
Obviously it IS inside a virtual machine but unfortunately I’m not able to engage the installer software in an existential discussion
John : Hello, Installer? Are you with me?
Installer : Of course.
John : Are you willing to entertain a few concepts?
Installer : I am always receptive to suggestions.
John : Fine. Think about this then. How do you know you exist?
Installer : Well, of course I exist.
John : But how do you know you exist?
Installer : It is intuitively obvious.
John : Intuition is no proof. What concrete evidence do you have that you exist?
Installer : Hmmmm... well... I think, therefore I am.
John : That's good. That's very good. But how do you know that anything else exists?
Installer : My sensory apparatus reveals it to me. This is fun.
According to Brian Reid at C7 Solutions:
Installing Integration Services in Hyper-V Clients
If you are running version 13.813 of the Virtual Machine Additions or later then you will be able to uninstall them from within Hyper-V. The problem is with earlier versions. To check which version is installed display the properties for the Virtual Machine Bus device, which is located in System Devices inside Device Manager.
I’m pretty sure the other virtual machine (where the uninstall worked) was running a later version of the Additions than the one that’s throwing the error. Testing that theory out, I tried attaching a copy of the latest VMAdditions.ISO file and got blocked again as the installer didn’t like the changes Hyper-V had already made.
A quick Internet search shows two solutions to the uninstallation issue:
- The clean solution – go back to hosting the virtual machine with Virtual PC 2007 before removing the Virtual Machine Additions then return to hosting with Hyper-V.
- The dirty solution – hack the Virtual Machine Additions installer so it doesn’t bother checking where it is.
Obviously I chose the latter.
- Get an MSI editor on to the virtual machine by creating an ISO file containing the editor’s installation files.
- Find the VMAdditions MSI file. There will be a file in the %Windir%\Installer folder with a name like 1d6296.msi (yours will be different). File size if 14MB if that’s any help. You may have to double-click the MSI file to check you have the right one.
- Edit the MSI file and delete all entries that say CA_IsRunningInsideVirtualMachine and CA_CheckIfWeCanInstall. There should be 6 in total:
In the ControlEvent table, delete the following rows:
InstallWelcome InstallNow DoAction CA_IsRunningInsideVirtualMachine
InstallWelcome InstallNow DoAction CA_CheckIfWeCanInstall
ReadyToInstall InstallNow DoAction CA_IsRunningInsideVirtualMachine
ReadyToInstall InstallNow DoAction CA_CheckIfWeCanInstall
In the CustomAction table, delete the following row:
CA_IsRunningInsideVirtualMachine 1 ISScriptBridge.dll f24
In the InstallExecuteSequence table, delete the following row:
- Save the MSI file
- Uninstall the Additions
After a restart, moving on by inserting the Integration Services Setup Disk:
… and we’re done.
I’d recently put Windows 8 on a test machine at work and started installing what software I needed. Pretty quickly I found I needed to install .Net Framework 3.5 which is now a ‘Feature’ instead of a separate download.
Switching this on prompted me to download files from Windows Update.
That seemed to go OK for a while.
Unfortunately, after a few minutes, it failed.
Error code 0x800F0906 leads you to troubleshooting articles such as:
.NET Framework 3.5 installation error: 0x800F0906, 0x800F081F, 0x800F0907
“This error code occurs because the computer cannot download the required files from Windows Update.”
First suggestion is to check Windows Update is actually accessible. Start with the easy ones
Getting a little bit trickier, second suggestion is to make sure there isn’t a Group Policy in place preventing the install process from contacting Windows Update.
Then you get your hands dirty with DISM.EXE command line instructions.
Deployment Image Servicing and Management tool
Image Version: 6.2.9200.16384
The source files could not be found.
Use the "Source" option to specify the location of the files that are required t
o restore the feature. For more information on specifying a source location, see
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log
So now I have a new error code – 0x800F081F – to muddy the water with.
Checking the DISM.LOG file
2014-09-29 14:07:15, Info
DISM DISM Package Manager: PID=2296 TID=1256 Error in operation: source for package or file not found, ResolveSource() unsuccessful. (CBS HRESULT=0x800f081f) - CCbsConUIHandler::Error
2014-09-29 14:07:15, Error
DISM DISM Package Manager: PID=2296 TID=4732 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x800f081f)
2014-09-29 14:07:15, Error
DISM DISM Package Manager: PID=2296 TID=4732 The source files could not be found; their location must be specified using the /source option to restore the feature. – GetCbsErrorMsg
Not really helpful as it doesn’t explain what’s missing. Now I’m happy with my DISM command:
Dism /online /enable-feature /featurename:NetFx3 /All
so it must be that the files are missing from the install files, which seems unlikely.
Looking for help on the new error code, I found:
Windows Update error 0x800F081F
The recommended DISM.EXE commands to clean up the Component Store made no difference:
dism.exe /online /cleanup-image /scanhealth
dism.exe /online /cleanup-image /restorehealth
I then moved on to Joseph Conway’s Technet blog:
How to troubleshoot error 0x800F081F when installing roles and features
- Download the ISO again – couldn’t complete this one easily. Could fill a blog just on how difficult it is to get access to install software at work…
- Clean up the Component Store – already tried
- Disable any access to WSUS – also already tried
- Update your source media – this sounded promising…
How to update local source media to add roles and features
Sadly, I couldn’t get this to work and gave up trying after a while.
Going back to basics, my next stop was CBS.LOG as that’s where the “Component-Based Servicing” work is recorded.
2014-09-29 14:18:47, Info
CBS Calling client to resolve source, cannot find file 'amd64_microsoft-windows-wpfcorecomp.resources_31bf3856ad364e35_6.2.9200.21161_en-us_0b79bec03324a82a\PresentationHostDLL.dll.mui'
2014-09-29 14:18:47, Info
CBS Exec: Not able to pre-stage package: Microsoft-Windows-IIS-WebServer-AddOn-Package~31bf3856ad364e35~amd64~en-US~6.2.9200.16384, file: PresentationHostDLL.dll.mui, source: \\?\C:\Windows\Servicing\Packages\amd64_microsoft-windows-wpfcorecomp.resources_31bf3856ad364e35_6.2.9200.21161_en-us_0b79bec03324a82a\PresentationHostDLL.dll.mui
Looking in the \sources\sxs folder, I can only see sub-folders for
and so on but not for the missing folders.
Which is when I noticed that the folders have a build number of 6.2.9200.16384 but the missing folder has a build number of 6.2.9200.21161.
Searching online for the build number quickly found problems with a bunch of Windows Update fixes.
.NET Framework 3.5 0x800F0906 then 0x800f081f
Just uninstall updates KB2966826 and KB2966828 and it will help you.
Looking in the list of installed updates, I found I had KB2966827 present:
MS14-046: Description of the security update for the .NET Framework 3.5 on Windows 8 and Windows Server 2012: August 12, 2014 http://support2.microsoft.com/kb/2966827
Now why do I have a .NET Framework 3.5 hotfix installed on a machine that hasn’t yet had .NET Framework 3.5 installed?!
The presence of the hotfix meant the installation was always expecting to find newer files than came with the Windows 8 source files.
As soon as I uninstalled the hotfix, I could add the .NET Framework 3.5 feature and start using my applications.
Not particularly fresh news to some people but definitely important for anyone relying on SSL connections to websites who now need to plan for getting SSL certificates from a Root CA that uses SHA-2.
Microsoft Security Advisory 2880823
Published: November 12, 2013
Microsoft is announcing a policy change to the Microsoft Root Certificate Program.
The new policy will no longer allow root certificate authorities to issue X.509 certificates using the SHA-1 hashing algorithm for the purposes of SSL and code signing after January 1, 2016.
Using the SHA-1 hashing algorithm in digital certificates could allow an attacker to spoof content, perform phishing attacks, or perform man-in-the-middle attacks.
Recommendation: Microsoft recommends that certificate authorities no longer sign newly generated certificates using the SHA-1 hashing algorithm and begin migrating to SHA-2.
Microsoft also recommends that customers replace their SHA-1 certificates with SHA-2 certificates at the earliest opportunity.
For example, here are the details from a current VeriSign certificate:
Will this impact any versions of Windows?
Windows PKI Blog
Published: September 30th, 2010
the support for SHA2 will vary:
No support for SHA2 – Windows XP sp2, Windows 2003 sp2
Limited support for SHA2 – Windows XP sp3 with KB 938397/KB 968730, Windows 2003 sp2 with KB 938397/KB 968730
Full support – Windows Vista and above
Note – “Limited support” added by the hotfixes mentioned includes the following SHA2 hashes: SHA-256, SHA-384, SHA-512 (but not SHA-224).
What’s up with SHA-224?
According to Alejandro Campos Magencio’s cryptography blog:
Decrypt my World
SHA-2 support on Windows XP
Published January 23rd, 2009
Regarding SHA-224 support, SHA-224 offers less security than SHA-256 but takes the same amount of resources. Also SHA-224 is not generally used by protocols and applications.
Security Research and Defence Blog
Published November 12th, 2013
Orla Cox has blogged about the various threats to Point-Of-Sale (POS) terminals on Symantec’s website:
Demystifying Point of Sale Malware and Attacks
There’s an associated whitepaper which is also worth a read:
Attacks on Point of Sales Systems (PDF)
The coming months should be interesting as cybercriminals start making use of the stockpile of Windows XP exploits they’ve been building up ready for the operating system’s end-of-support date to arrive.
This quote (from the "License to Summon" rulebook for The Laundry role playing game system) may amuse.
Laundry employees can get a license to summon. It’s not that hard. Just complete a few basic Health and Safety and Demonology Courses, do the test, complete the very simple practical exam, and you’re certified. Peter-Francis Young has one, for Yog’s sake! It’s less demanding than getting a Microsoft Certified Professional qualification, and just like an MCP, a license to summon allows you to loose mind-eating horrors on an unsuspecting world.
The games designers are obviously continuing with the anti-Microsoft digs found in the source material, the “Laundry Files” series of novels written by Charles Stross. In his writings, Charles does not come across as a big fan of the Microsoft range of products. In fact, last October he ranted at length on “Why Microsoft Word must Die”. Not a happy man as far as IT goes.
Microsoft has announced that Windows XP will reach end-of-life on April 8th, 2014.
Windows 2000 already reached end-of-life on 13th July, 2010.
PCI-DSS Compliance requires all elements of a Point-Of-Sale (POS) payment application environment to be supported by their vendors with security updates, which includes the operating system the application runs on. Security updates from Microsoft for an operating system come to an end when it is no longer supported. At that time, PCI-SSC will regard any merchant using that operating system as being non-complaint with PCI-DSS. This is covered in the PCI-DSS documentation under “Requirement 6: Develop and maintain secure systems and applications”:
6.1 Ensure that all system components and software are protected from known vulnerabilities by having the latest vendor-supplied security patches installed. Deploy critical patches within a month of release.
It’s therefore a good idea to upgrade any operating system being used for a POS payment system that is no longer supported or will soon reach the end of support. Not doing so may expose merchants to the risk of fines and penalties should their environments be compromised whilst not being compliant with the PCI-DSS.
- Windows XP SP3 and Office 2003 - Support Ends April 8th, 2014
- Extended Support for Windows 2000 Server Ends on July 13, 2010
- Microsoft Support Lifecycle
- PCI DSS Quick Reference Guide
Just had an Adobe update install unwanted applications - Google Chrome and a browser toolbar. Irritating, I know, especially as it means I missed the sneakily hidden opt-out tick box. This just reinforces the knowledge that I could never work in marketing as it would mean discarding my moral code.
But I digress.
I took some screenshots to compose a vitriolic Tweet around and noticed that something weird was going on with the clipboard.
Here’s what the screen looked like to my eyes (or to my SmartPhone):
Here’s what went into the clipboard after I pressed the Print Scrn button on the keyboard:
Where have the tail and the black outline to the box gone?
For many years now I’ve been happily chucking around Windows XP virtual hard disks and loading them with Virtual PC. Sadly I’m going to have to turn to something modern as the virtual processor is no longer up to scratch, as I found when trying to install Windows 8.1 evaluation.
In the past this would have been a Blue Screen but they’re handled differently in Windows 8, usually with a frowning emoticon.
0x0000005D means UNSUPPORTED_PROCESSOR and the solution would be to enable No-Execute Memory Protection in the BIOS.
Virtual PC is ancient so the AMI BIOS has no such setting on any of the menus.
Off now to find a virtualisation product I like.
Back in May, DataCash was a sponsor for one of the biggest networking events for payments developers – Trans-hacktion. The 3-day Hackathon, organised by Birdback, was focused on the latest innovations in the payments and financial technology and held at the London Google Campus.
The event included demos from DataCash and other payments companies followed by hacking sessions. Teams had to hack a product that used partner APIs and present the hack in 3 minutes on the final day. The prizes up for grabs were:
|KingHacker||3D Printer & Champagne|
|1st||Pebble Watch & 1 year of GitHub Silver plan|
|2nd||AIAIAI Headphones & 1 year of GitHub Bronze plan|
|3rd||Raspberry Pi & 6 months of GitHub Bronze plan|
|API||Up Bracelet. Nintendo NES + Super Mario Game|
|AND||Berg Cloud Little Printer & 100$ AWS credit & more...|