Windows 10 upgrade (from Windows 7) – Surprisingly smooth

 

Let’s start with a little teaser. I have a whole bunch of Windows 10 articles coming out in the next
few weeks. They mostly revolve around the installation of new devices with the aforementioned operating
system, the upgrade of old devices from Windows 7 to Windows 10, and the subsequent mandatory
post-install tweaks and changes. We shall start, as the title subtly hints, with the middle option.

With the Windows 7 deadline loometh (now passeth), I decided to sacrifice one of my olden Windows 7
desktops for this experiment. I mean, it wasn’t a big deal – as I had contingencies in place (hint: new
hardware), and with the lovely Seven going out of support (but that
shouldn’t scare you, right), I wanted to
see what kind of future awaits anyone willing to bite the bullet and try their luck with the latest
Windows version. This article is a tale of that attempt.

Teaser

Media Creation Tool

I started by downloading the
Media Creation Tool. This
utility will grab the latest available image, which is good, because you won’t need to waste any time
with unnecessary updates, run a compatibility test for your existing software, and then, if it deems
your system capable of the task at hand, fire off the actual upgrade. You have the option to preserve
both your data and apps, keep only the data, or wipe the slate clean.

I wanted to test the most complex option – data and apps. In the configuration stage, the tool
informed me that Acronis True Image 2012 installed on the box was not compatible with Windows 10, and I
had to uninstall it before going forward. This is perfectly fine, because the system was already
imaged, so worst case, I would just roll back to the snapshot before the experiment.

Incompatible software

What to keep

In my case, I had to go from Windows 7 Ultimate to Windows 10 Pro. Anyway, the initial setup stage
took about 15 minutes, followed by about 90 minutes of the actual installation and configuration. This
was a bit longer than it could be, because there was “only” about 37 GB spare room on the system
partition, which meant the copy of the old Windows 7 data was done in smaller shuffles. On the bright
side, this is a
dual-boot system, and at no point did this setup
interfere with the upgrade, nor did Windows 10 assert dominance and take over the boot sequence. No
issues.

First login …

I was a little hesitant before the first login. Of course, I was asked about location and voice and
ads and all that nonsense. But soon thereafter, I got into my familiar desktop, with all the icons in
their right place, including a few text files cum notes. At first glance, everything was as it
should be.

Windows 10 did inform me that a few programs were removed due to compatibility issues, and funnily
enough, we’re talking about software that I haven’t used in about 6-7 years at least, if not more.
Lovely EMET was also removed, which meant I had to spent some time with the new
Exploit Protection framework instead.

Compatibility warning

Headache? Very little.

The things is, I went in ready and charged, expecting the system to fight me with nonsense. Instead,
the experience was almost anti-climactic, with a relatively small amount of low-IQ nonsense. I did have
to make some changes and adjustments – more on that in a dedicated tutorial. But as a quick overview,
here’s most of what I did:

  • Disabled automatic updates.
  • Disabled Windows Defender and telemetry.
  • Changed
    privacy settings to reflect sane, local
    user desktop needs.
  • Configured exploit protection for common software – I had an XML ready from my past escapades –
    see above, so this was only a quick, painless one-liner.
  • Removed Cortana, disabled Web search in the menu.
  • Blocked the future Edge upgrade to the Chromium version.
  • Silenced the boring notifications about anti-virus protection and such.
  • Removed useless folders from This PC (like 3D Objects, Documents, etc).
  • Did some basic visual tweaking.
  • Changed default programs.

With the last bullet, I did encounter a small issue – Firefox wasn’t showing in the list of
available browsers, so I couldn’t set it as default. The remedy was to uninstall the browser, reinstall
it, and then it was properly registered, and I could make the right change.

Default apps

Hardware compatibility & driver updates

Here, it was almost perfect. Windows 10 reused my existing drivers. I did manually run Windows
Update, and it offered me Nvidia drivers for the graphics card (albeit one version minus the latest
WHQL). I also had printer drivers. Sweet.

Additionally, it gave me a small bunch of Windows patches, as the delta from the 1909 image was
tiny, plus a handful of updates for my copy of Microsoft Office 2010. Here, it pulled a long series of
unnecessary updates – for the likes of Visio, Access and friends, none of which I had installed in my
customized setup.

Microphone does not work!

Then, I encountered a problem – my microphone wasn’t working. Or rather, it was “almost” muted. I
tried using the Troubleshooter tool, and predictably, it found no issues. I tried making changes
through the Settings, and nothing happened. Of course, the venerable
Control Panel provided me with far more tools and a much
finer-grained control of different options than the “modern” Settings menu. Even now, five years down
the Windows 10 lane, the new touch-optimized Settings utility is inferior to the classic tool in every
way. In fact, every single touch application
is inferior to every single desktop application in
the entire universe. And this will never change, no much how much sales people shout and cavort around
you.

I decided to try updating the audio drivers – Realtek HD Audio, with the latest available set for
this particular motherboard from 2016. This didn’t help, so I rolled back. I noticed it wasn’t
just the microphone that was wonky, it was the entire audio stack. The volume just wasn’t as high as it
was in Windows 7. So I figured there might be problems with gain/boost.

Once again, I opened Control Panel, and went through the Properties for both the Speakers and
Microphone devices. In more detail, Control Panel > Sounds > Recording > Properties. Here, I
changed the Microphone Boost from 0 to +30.0 dB, and then also slid the level from 0 up, and suddenly,
lo and behold, things were just fine.

Microphone properties

Microphone boost

Likewise, I noticed that the speaker levels were set to only 79 out of 100, so there was another fix
there. Windows 10 has another quirk, and that’s muting background sounds when it detects human voices.
Here we have phone mentality intruding on the desktop. This can be quite annoying, especially if you
play games, because you don’t want your game to be silenced even if you’re chatting to your team mates
or whatnot. You will find this under the Communications tab.

Other sounds setting

I did some more tweaking and testing, and it’s amazing how much inconsistency there is in the
system. I always believed that Linux was sort of Wild West when it comes to common interfaces and
experiences, but Windows now has its own extra dimension of chaos, with half of all settings in the new
format, three quarters in the old format, with some good (not really), solid overlap.

Volume mixer

Right-click on the audio icon, this is what happens. A mix of old and new.

Realtek audio manager

This is the Realtek HD Audio Manager from 2010, still working nicely in Windows
10. Believe it or not, this one looks better than the 2016 tool, and actually offers more useful
functionality. But neither this nor the other match the Windows settings, and you can access some of
these options through Control Panel, and virtually none through Settings.

Performance

Good. As in, not better or worse than Windows 7 – as I told you on
many previous occasions. Performance doesn’t magically
appear out of thin air. New hardware gives you better results, but on the same hardware, it’s unlikely
you’ll ever see any gains with new operating systems. However, that said, it’s pretty nice, even
impressive than Windows 10 manages to offer the same results as a much older operating system. We’re
talking roughly five years of difference for the base version, and almost 10 years for the latest
edition.

There were some small differences though. The Windows 10 boot sequence is longer, almost double. The
CPU utilization on idle is a bit higher, but then the amount of processes is almost double the Windows
7 set, which for me on this machine was 59, and it’s about 115 for Windows 10. Now, disk utilization on
idle is a bit lower, there’s less hardware polling, and the memory footprint is also smaller. So you
win some, you lose some.

The biggest difference is in the perceived responsiveness. Windows 10 feels a bit laggier than
Windows 7, and this materializes in tiny things, like windows switch via alt-tab, quick
minimize/maximize and alike. Nothing too cardinal, and most people wouldn’t notice. One other specific
difference worth mentioning – Acronis True Image 2019 in Windows 10 does work faster than Acronis True
Image 2012 in Windows 7, by about 30%, and it seems to work better with external devices. Fairly
cool.

Interestingly, Windows 10 has the same disk footprint as Windows 7 – we’re talking Windows 7 with a
few years worth of updates (which add size) plus programs – versus the new operating system with the
same software set. Before the upgrade, my 100GB Windows partition had about 37 GB free disk space, and
now, that number sits at about 39 GB. This is AFTER I deleted the old Windows installation files – I
have a system image anyway, so the restore is a simple 15-min affair if I ever need it.

Cleanup

Old version removal warning

Various errors and oddities

The system is stable, and 99% of stuff works well. Not a single program hiccuped or struggled.
This is impressive. As always, going back to my darling operating system, Linux, you can’t really
expect these kind of results. The operating system upgrade – yes – I showed you that going from Ubuntu
Trusty to Bionic on my
Asus Vivobook. But the software stack? Nope. You can’t
expect that, which is one of the reasons why I’m not willing to give up using Windows (plus games and
Office, of course). We’re talking old, legacy code. Lemme give you an example: the most practical and
useful WYSIWYG HTML editor
KompoZer. This one works without any issues in Windows 10, maybe a
tad better than before, too. It was last updated in 2008. Neat.

But I
did encounter a few bugs. First, an ESENT error (Event 455), which
reads – this can be fixed by creating the nested folder TileDataLayerDatabase in the Local
directory.

svchost (8868,R,98) TILEREPOSITORYS-1-5-18: Error -1023 (0xfffffc01) occurred
while opening logfile C:WINDOWSsystem32configsystemprofileAppData

LocalTileDataLayerDatabaseEDB.log.

Next, an error with the DiagTrack service – which is the Connected User Diagnostics and Telemetry
service, the one I had disabled. It threw a couple of complaints. First, that it couldn’t run, and
second, a warning that the log was at its maximum size, and that future events won’t be logged – these
errors shouldn’t happen in the first place, because the service isn’t supposed to be running at
all.

Session “AutoLogger-Diagtrack-Listener” stopped due to the following error:
0xC0000188

The maximum file size for session “AutoLogger-Diagtrack-Listener” has been
reached. As a result, events might be lost (not logged) to file
“C:WINDOWSSystem32LogFilesWMIAutoLogger-Diagtrack-Listener.etl”. The maximum files size is
currently set to 33554432 bytes.

This isn’t the only event that complains about logs and such. Perflib. Both an error about the
buffer size (Event 1020) and a warning (Event 2003) about the configuration information for some shared
library. This can be fixed relatively easily, but then, why does this happen in the first place.
There’s really no reason.

The required buffer size is greater than the buffer size passed to the Collect
function of the “C:WindowsSystem32perfts.dll” Extensible Counter DLL for the “LSM” service. The
given buffer size was 16184 and the required size was 31384.

The configuration information of the performance library
“C:WindowsSystem32perfts.dll” for the “TermService” service does not match the trusted performance
library information stored in the registry. The functions in this library will not be treated as
trusted.

Checking more details about this specific counter (cmd, lodctr /q), you get:

[TermService] Performance Counters (Enabled)

DLL Name: C:WindowsSystem32perfts.dll

Open Procedure: OpenTSObject

Collect Procedure: CollectTSObjectData

Close Procedure: CloseTSObject

First Counter ID: 0x0000238C (9100)

Last Counter ID: 0x0000238C (9100)

First Help ID: 0x0000238D (9101)

Last Help ID: 0x0000238D (9101)

Interesting, but it doesn’t really tell us anything about what this thing does. Or why I should
bother either reloading it, or making it trusted. If you look at perfts.dll in Windows Explorer, then
you can see what it actually is: Windows Remote Desktop Services Performance Objects. But I have this
service disabled, of course, which could explain why the error manifests. It also shows that a
bazillion articles out there suggesting you make this library trusted (without knowing what it does) is
probably not the smartest thing in the world.

Moreover, this is bad design. Moving from Windows 7 to Windows 10, the counter database or whatever
should have been updated correctly. The system should not bother collecting events for this counter if
the relevant service is disabled.

Moving on. Lots of random errors related to apps (Event 69, AppModel-Runtime), e.g.:

Failed with 0x490 modifying AppModel Runtime status for package
Microsoft.YourPhone_1.19112.113.0_x64__ for user COMPUser (current status = 0x0, desired status =
0x20).

This is just a random example – there are others. To make things worse, this is followed by an
Information event in the Event Viewer, which reads:

Successfully updated AppContainer Microsoft.YourPhone__.

So not only is this not really an error, this is a misleading, annoying false positive. A classic
case of touch-based detritus polluting the desktop. So a non-issue issue. Thank you for your
effort.

Speaking of apps, there was also a recurring warning, which reads thus:

The application-specific permission settings do not grant Local Activation
permission for the COM Server application with CLSID {2593F8B9-4EAF-457C-B68A-50F6B8EA6B54} and APPID
{15C20B67-12E7-4BB6-92BB-7AFF07997402} to the user COMPUser SID (S-123567890) from address LocalHost
(Using LRPC) running in the application container Unavailable SID (Unavailable). This security
permission can be modified using the Component Services administrative tool.

That CLSID maps to RuntimeBroker.exe, and this seems to be related to the Store. Might be some silly
conflict that has to do with the local account, or perhaps the fact I don’t want to use the “modern”
apps in any way. There are ways to solve this, of course, but there’s no reason to do so.

There were also a few app-specific issues. For example, VSS throws errors when invoked, say by an
imaging program, if it detects “odd” devices, like for example a mounted TrueCrypt container. We have
weak QA at work once more, a symptom of modern software. A simple check of what type of device lurks
behind the assigned drive letter would be enough to determine whether such a device ought to be
enumerated by VSS. If said TrueCrypt volume is unmounted, no such error occurs.

Volume Shadow Copy Service error: Error calling a routine on a Shadow Copy
Provider {b5946127-7c9f-4925-af80-51abd60b20a5}. Routine details
IVssSnapshotProvider::IsVolumeSupported() failed with 0x8000ffff [hr = 0x8000ffff, Catastrophic
failure].

Operation:

Check If Volume Is Supported by Provider

Context:

Execution Context: Coordinator

Provider ID: {b5946127-7c9f-4925-af80-51abd60b20a5}

Volume Name: ?Volume{9347def3-21d6-11ea-a4cd-04d9e5e56101}

Now, something that should cheer you up:

ALL these errors
also occur on a
brand new, fresh installation of Windows 10, too!

I tested this on a separate host, with everything done from scratch. The errors have nothing to do
with the upgrade process, and everything with the operating system. My suggestion is, if you don’t feel
like tinkering, just them be, and sometime in the future, they will probably be fixed. Maybe.

The sad thing is, if you search for these messages, you will hit a billion posts, with random
suggestions on anything you can think of – filesystem corruption, missing files, BSOD, absolute
nonsense. People don’t have the expertise to causate symptoms they are experiencing to the system log
events, and so they randomly correlate things, making resolution even more difficult. I can say this
with 100% certainty, because I have data from two separate systems, configured in different ways, with
no glitches, slowdowns, hiccups or anything, so we can rule out pretty much everything – except the
operating system itself. So you can relax.

Lastly, I encountered problems with
Windows 10 Exploit Protection – the successor to
the superb
EMET. Back in Windows 7 and Windows 8, I had very few problems
running software with most if not all of the mitigations turned on. In Windows 10, I noticed some
quirks. Google Chrome doesn’t really work with most of the settings active. And now Firefox, too, seems
to not like being aggressively contained. It used to be EAF and EAF+ for Firefox, but the set has grown
larger. You may experience random 3-5-second
browser freeze if you go for an aggressive mitigations set, which negates
the whole purpose of using them in the first place. Because security that gets in the way of actual
functionality is useless.

Another example – IrfanView. Never had any problems even with the strictest set. Now, with EAF on,
much like what we’ve seen with Firefox a while back, you may see the imaging viewer crash, say like
when loading a video file (which it can do, especially if you use all the different plugins):

Faulting application name: i_view64.exe, version: 4.54.0.0

Faulting module name: PayloadRestrictions.dll, version: 10.0.18362.1

Exception code: 0xc0000409

Fault offset: 0x000000000002b5d8

Faulting process id: 0x1b44

Faulting application start time: 0x01e3c1a3fcd92935

Faulting application path: C:Program FilesIrfanViewi_view64.exe

Faulting module path: C:WindowsSYSTEM32PayloadRestrictions.dll

Report Id: 7eaccb1e-1f20-72a9-c7b8-d59c02845683

Faulting package full name:

Faulting package-relative application ID:

There are workarounds of course, but that’s not the point. The point is, the IDENTICAL exercise in
Windows 7 would yield fewer compatibility issues. If you enable a set of mitigations there, and you do
the same thing in Windows 10, then the older system works better.

Once again, we have the whole one step back, one step forward, one step sideways and jump issue.
There was really no reason not to retain EMET, but hey,
innovation or something, right. For that matter, now
that Windows Phone is no more, there’s really no value to the whole touch-based interface. A big,
wasted effort.

Errors in Event Log

The initial noise of the upgrade process … we’re back in the fast &
efficient zone.

Anyway, after a couple of hours, the system calmed down. The errors went away – most of them are
related to the rubbish “apps” and such. In the end, the system works and behaves as it should, and
delivers a reasonable experience. With the low-IQ components turned off, it’s the desktop as it should
have been. Microsoft could make decent money by adding an extra tier – Pro Plus – that offers the LTSB
levels of sanity and quiet. Oh, wait. Isn’t that what the Pro version was meant to be?

Conclusion

I have to say I’m quite pleased with the upgrade process. I expected it to be a slow mess, but it
turned out to be smooth, relatively fast and almost painless. Most importantly, all of my data was
intact, virtually all of my software was intact, the drivers were correctly ported and used, some even
upgraded, the performance is pretty much the same, and the system is stable. That’s a good outcome for
something like this, especially since this isn’t a new system (if no slouch by any means).

Now, I did have to do a few things – disable mass-media nonsense, tweak the privacy settings, fix an
error or three, but other than that, this was good. Well, it makes sense – it’s in Microsoft’s best
interest to move as many people as they can to Windows 10, and this process needs to be flawless. As a
techie, I was more worried about surprises and sudden regressions, but that didn’t happen. This might
be the first time in my Windows 10 usage that I can say I’m actually happy. Not happy in the sense,
yay, balloons, but more the fact I don’t need to hurt expletives at the monitor and consider using a
blowtorch as the final remedy.

In a way, it is the end of innocence – Windows 7 was the last Windows designed for the intelligent
user as the primary audience, before the whole online thing became the thing. Going forward, it’s not
the question of enjoyment, it’s the question of least suffering. This is true almost across the board.
That said, I was able to migrate the Windows 7 machine to Windows 10 with very little trouble. While
the future sure ain’t gonna be better, at least when it comes to software, for the time being, there’s
still some sanity left. All in all, if you’re mulling Windows 10, the upgrade process is robust, and
you should have a reasonable setup thereafter. We’re done here. My next experiment will be with brand
new hardware. Stay tuned.

Source