Found a simply magnificent MS reference thanks to the great folks at TenForums today. With special thanks to user Caledon Ken, check out this technical guide entitled “Resolve Windows 10 Upgrade Errors.” Thankfully, it brings a huge amount of valuable and useful technical advice together in one place. It’s especially informative for those seeking insight and possible fixes for upgrade issues and errors.
Trust me: This innocuous title does no justice to the Guide’s many treasures.
Exploring the Windows 10 Upgrade Errors Guide
Really, you want to spend some time curled up with this reference. While you’re at it, get comfortable and grab a beverage. In fact, you’ll find yourself immersed in this material for half an hour or more. It’s simply chock-full of good and useful information.
Need proof? No problem. Next, I reproduce the Topic Index from the Guide (with live links) verbatim as the best possible advertisement for its wealth of riches:
Quick fixes: \Level 100\ Steps you can take to eliminate many Windows upgrade errors.
SetupDiag: \Level 300\ SetupDiag is a new tool to help you isolate the root cause of an upgrade failure.
Troubleshooting upgrade errors: \Level 300\ General advice and techniques for troubleshooting Windows 10 upgrade errors, and an explanation of phases used during the upgrade process.
Windows Error Reporting: \Level 300\ How to use Event Viewer to review details about a Windows 10 upgrade.
Upgrade error codes: \Level 400\ The components of an error code are explained.
Result codes: Information about result codes.
Extend codes: Information about extend codes.
Log files: \Level 400\ A list and description of log files useful for troubleshooting.
Log entry structure: The format of a log entry is described.
Analyze log files: General procedures for log file analysis, and an example.
Resolution procedures: \Level 200\ Causes and mitigation procedures associated with specific error codes.
0xC1900101: Information about the 0xC1900101 result code.
0x800xxxxx: Information about result codes that start with 0x800.
Other result codes: Additional causes and mitigation procedures are provided for some result codes.
Other error codes: Additional causes and mitigation procedures are provided for some error codes.
Submit Windows 10 upgrade errors: \Level 100\ Submit upgrade errors to Microsoft for analysis.
Windows 10 Upgrade Errors Explained
Let me help to make sense of this gem. Please understand that Level 100 is Basic, 200 Moderate, 300 Moderate advanced, and 400 Advanced in terms of technical level. In fact, the actual entry that caught my eye was the one for error code 0xC1900101. It includes a raft of tried-and-true techniques for avoiding errors that sometimes occur during the upgrade process. Among other good suggestions, these include:
- Uninstall antivirus applications beforehand
- Remove all unused/unnecessary SATA devices
- Remove all unused devices and drivers
- Update drivers and BIOS, especially the graphics/display driver(s)
- Disconnect all peripherals except keyboard, mouse and monitor
- Take the “Download and install update updates (recommended)” offer at the outset of the upgrade process
Great stuff. I’ve learned, used, and needed every single one of these exhortations over the years. Add this Guide to your bookmarks or favorites. You’ll be back!
When a program gets installed onto Windows, it can extend all kinds of hooks into the OS. It might make numerous Registry changes, add services, schedule tasks, and much, much more. When the same program gets uninstalled, even its makers may have trouble completely rooting out all traces of its former presence. That’s one reason why specific “removal tools” exist for a range of applications. These include things like security software or heavy-duty devices such as graphics cards.These programs are seldom standalone. Rather, they are best understood as tool suites, collections of intertwined programs. Where so much infrastructure needs cleaning up, removal tools can help. For cleaning up graphics card drivers and their attendant tool suites, Display Driver Uninstaller (DDU) is a nonpareil. That’s why I assert that DDU removes display drivers completely.
As you can see from the preceding tagline, the latest DDU version arrived on 12/20/2018, as of this writing. [Download page for 22.214.171.124.]
Why DDU Removes Display Drivers Completely Is a Good Thing
DDU is a free program (donationware) that comes from software toolmaker Wagnardsoft. You can always download the program from the Wagnardsoft home page, under the “Software” heading there. I’ve known about this tool for years, which does an ace job of rooting out any and all traces or remnants of Intel, Nvidia, and AMD graphics drivers.
I’ve used DDU on numerous past occasions. Recently, I had to put it to work on a couple of my PCs. Two of my PCs include GeForce GTX 1070 graphics cards. Nvidia’s been issuing beaucoups graphics drivers lately, not all of which have agreed with my 1809 or 19H1 Windows 10 installations. In fact, I’ve been subject to a spate of LiveKernelEvent (Code 117) errors lately on both machines. Turns out that issues with a couple of November and December GeForce drivers have been responsible.
It just so happens that when graphics driver errors recur, it’s often a good idea to root them out completely. After that, a clean install of a newer, better, or different driver may address (or prevent) further issues. That’s what I used DDU for last week, just before I upgraded to GeForce 417.35 on those machines. No subsequent problems since, either. DDU is worth knowing about because it can sometimes resolve graphics driver issues amenable to no other solution. Don’t bother to download it until you need it, though: the folks at Wagnardsoft update it regularly (usually in synch with driver releases from AMD, Intel and Nvidia).
On November 19, I wrote a blog post about an “interesting” UI issue in Event Viewer. On some PCs, its pulldown menus didn’t work properly unless the display on which the tool runs was set to 100%. Because the Win10 default for True HD and higher resolution monitors is 125%, this means the program may not work properly unless jiggered with. Now, it seems, the same phenomenon also affects Task Scheduler. In fact, Win10 Task Scheduler pulldown menus fail under those very same circumstances on some PCs.
Unless this display on which the pane appears is set to 100%, that list of months is absent. I was able to replicate this on some 1809 (Build 17763.195) and 19H1 (Build 18305.1003) PCs.
[Click Image for Full-Sized View.]
If Win10 Task Scheduler Pulldown Menus Fail, What Else?
If you look at properties for both Event Viewer and Task Scheduler, you’ll see that they are Microsoft Console (.msc) files. Furthermore, you can find at least 44 such files in the C:\Windows\System32 folder. Just for grins I did a random sampling of those files, including tools I know well. I looked at Device Manager, Local Security Policy, Group Policy Editor, Services, Certificate Manager, Performance Monitor, Reliability Monitor, Disk Management, and more.
None of those other consoles suffered from the pulldown menu fail at alternate resolutions. In some cases, that was because they didn’t use pulldown menus much, or at all. In other cases, pulldown menus worked as they should. Thus, I’m not able or willing to assert that this issue is more general than it appears. In other words, AFAIK only Event Viewer and Task Scheduler appear subject to this gotcha.
That said, when using a different Windows Console if you find yourself unable to access pulldown menus in the future, you might want to try changing your display resolution to 100%, at least temporarily. It might just cure what ails ya!
On the other hand, your PC(s) may not be subject to this gotcha. When I reported this to my friend and business partner Kari Finn, he was unable to repeat this issue on either a 4K display or a 1920×1080 Full HD display, at any resolution. He tried 100%, 125%, 150% and 175% and it worked fine for all of them. Apparently this is a hit-or-miss gotcha. If it doesn’t hit you (or your PCs), no worries. If it does, you know what to do: reset display resolution to 100% long enough to do what you must, after which you can revert to whatever you like.
A few weeks ago, I got an offer from a Logitech pop-up for a program named Logitech Options. I’ve been using Logitech mice since the 1990s, and have long been a fan of their various widgets. Figured I to myself “let’s give it a try.” Thus, I downloaded and installed the app without too much thought or reflection. The install process went swimmingly, and caused no visible issues. But I shoulda read the fine print, as the old saying goes. Over time, I realized that Logitech Options prove unnecessary on my PC. It does nothing because it’s incompatible with my M325c mouse and its Unifying receiver. In fact, here’s what I saw when I finally ran the program:
Lights on, but nobody home. Logitech Options doesn’t see my transceiver or mouse!
Learning Logitech Options Prove Unnecessary
As is often the case when I hit a Win10 snag, I turned to TenForums.com, where I posted my observations to this thread there “Latest Logitech Options Software.” It turns out that I should’ve read the “Works with these products” pop-up on the download page for Logitech Options before installing same. My M325c mouse, as you may have already guessed, appears nowhere on that list. The software detects no devices on my PC for the best of reasons. As it happens, the devices I use aren’t among the devices it can handle. Oops!
Getting rid of Logitech Options turned out to be easier than I thought. Given that it’s a UWP app, I thought I might have to research and run some PowerShell commands to make it disappear. Not so. I was able to use Revo Uninstaller to get rid of it. Noticing that my SetPoint Software did not spring back into action or availability after Logitech Options was removed, I read the fine print for it, too. Turns out I don’t need that software, either. (See the “When you don’t need SetPoint” section for those details.) So I removed it as well.
I’m happy to report that my Win10 install is now two (unneeded) applications lighter, and that my M325c mouse continues working as well as ever. Just because the vendor makes driver or special use software available doesn’t mean you need to install and/or (not) use it. Live and learn, my friends!
As of December 17, the latest version of Windows 10 is publicly available. Its version name is 1809. This indicates September 2018. After a trouble-wracked initial release on October 2, MS took 6 weeks to start dribbling out 1809 to a subset of users once again. Now, the latest word from the Windows 10 Update History page is “the taps are open!” Thus, it’s finally safe to proclaim Win10 1809 publicly available. Here’s a snip from the afore-linked Web page:
As of Monday (12/17), anyone who manually selects “Check for updates” in WU will get the 1809 upgrade. It’s been a long time coming.
[Click image for full-sized view.]
Win10 1809 Publicly Available, Now What?
Just because this update is available, does this mean that wholesale upgrades are a good idea? As with many interesting questions, the real answer is “That depends…” There are still enough potential gotchas out there — see Martin Brinkmann’s GHacks story for a good summary — to make “try it and see” the right approach to this upgrade. In other words, I wouldn’t recommend jumping on the upgrade without first making an image backup. Then, if something goes sideways, you’ll also want to have a bootable USB flash drive (UFD) with backup/recovery capability ready for action. Should the upgrade fail or manifest issues, use the UFD to restore the previous version and wait for the next Cumulative Update to 1809 to try again.
For me, this approach is SOP for Win10 feature upgrades anyway. I use the excellent Macrium Reflect Free. It includes a Rescue Media facility, which builds a bootable UFD with built-in backup recovery capability. I generally make an image backup just before applying a feature upgrade. Then, if the upgrade doesn’t complete (or the PC bluescreens or won’t boot), I can simply boot to the rescue UFD and tell it to restore that backup and keep on trucking. And FWIW, if the upgrade does succeed, I make another backup after I clean up Windows.old and the system disk. That way I can get back to a pristine image of the latest version any time I might need to. Please consider doing likewise yourselves: this strategy minimizes downtime and inconvenience.
Drat! I really like the built-in Windows 10 Deployment Image Servicing and Management (DISM) command. But I’ve discovered some DISM schisms. They embrace Version 1809 (Build 17633.134) and the Insider Preview (Build 18298.1000). Usually, DISM supports get and set operations for something called OSUninstallWindow. This describes the command’s ability to query (get) the number of days the OS will keep a previous version around after an upgrade. There’s also a corresponding command to change that number (set). Right now, neither will run with current Win10 versions. That leads me to claim OSUninstallWindow DISM difficulties.
Detecting OSUninstallWindow DISM Difficulties
It’s pretty easy to tell these commands don’t work as they should. On Version 1809, they throw “Error 3: The system cannot find the path specified.” On Version 19H1 (Build 12298), they throw “Error 1168: Element not found.” I’ve reported this to the Windows 10 Feedback Hub under the title “dism /online /get-osuninstallwindow not working.” I hope you’ll check the status on your Windows 10 PCs and upvote this item if you experience the same errors. I’ve checked all 9 PCs here at Chez Tittel, and all are subject to these errors. [As explained in the concluding section below, these errors will present on any PC where Windows.old has already been cleaned out.]
Here’s an illustration from a 19H1 Insider Preview test machine. It shows proper syntax for both commands in an admin PowerShell session. You can run them in an Administrative Command Prompt window, if you prefer.
Something, somewhere is going sideways with this usually ho-hum, dead easy DISM command sequence.
At present, default value for the OSUninstallWindow is 10. In fact, that means ten days. Thus, on Day 11 after you upgrade Windows 10, it fires off a disk cleanup task that gets rid of Windows.old and other leftovers from an upgrade install. When the aforementioned DISM command (Set-OSUninstallUpgrade) is working, that’s easy to change. But for the time being, it’s stuck at 10 days. You’ve been warned!
Again: check your PCs. If one of these errors pops up for you, please upvote my Feedback Hub item. Look for “dism /online /get-osuninstallwindow not working.” Thanks in advance for your help and support!
Explanation for the Errors
Having now spent a bit more time researching this matter, and working with my friend and business partner Kari Finn, I’ve got it figured out. These DISM commands work only if a Windows.old folder is present on the system drive. The retention info is apparently stored within that folder structure. If it’s not around, you can neither get nor set the value for OSUninstallWindow. How do I know? Because when those commands run on a Windows 10 install with Windows.old present, they work as advertised. When Windows.old is absent, either the path is missing or the item is absent depending on Win10 version.
I disagree with Microsoft’s implementation. To my way of thinking, right or wrong, the retention interval is an abstract value. Users should be able to set it whether Windows.old is present or absent. But that’s not how Microsoft handles the OSUninstallWindow. Thus, I’m changing my feedback hub request to ask them to turn it into a Group Policy or a Registry setting. It shouldn’t depend on the presence or absence of a specific folder hierarchy. ‘Nuff said.
Here’s an interesting tidbit of information, courtesy of Forbes magazine. That story references a December 10 Windows Insider Program blog post. It’s from Michael Fortin, MS CVP for Windows, entitled “Windows monthly security and quality updates overview.” In that memo, Fortin identifies update release labels: B, C, and D. The B release comes in the second week of the month: it’s the usual Patch Tuesday stuff. Likewise, C and D releases to WU come in weeks 3 and 4, respectively. Thankfully, Fortin describes C and D releases clearly. “These are preview releases, primarily for commercial customers and advanced users ‘seeking’ updates.” Thus, my post title that late-month WU items equal update previews. Like I said: interesting, eh?
Knowing recent Patch Tuesday dates are 11/13 and 12/11, it’s easy to tell that several updates shown here may qualify as “previews.” One 12/6 item even says “Preview.”
[Click image for full-sized view.]
What Late-Month WU Items Equal Update Previews Really Means
In addition, the afore-cited blog post explains further about C and D releases:
These updates have only non-security fixes. The intent of these releases is to provide visibility into, and enable testing of, the non-security fixes that will be included in the next Update Tuesday release. Advanced users can access the “C” and “D” releases by navigating to Settings > Update & Security > Windows Update and clicking the “Check for updates” box. The “D” release has proven popular for those “seeking” to validate the non-security content of the next “B” release.
OK, then. What does this really mean for run-of-the-mill users? Admins working on test/staging PCs? For one, ordinary users should “wait for WU updates.” Jumping early means installing preview level update code. For others — namely, admins, power users, and insiders — this is stuff for which advanced access is helpful. In fact, this goes double if you’re trying to create canonical images for your next upcoming, scheduled in-house update cycle.
If you want to play the WU game well, it helps to know the rules. Though they come as a bit of a surprise, I’m still grateful to Mr. Fortin and MS for clarifying things somewhat.
Last week, I blogged about Intel Windows 10 Modern Drivers. As it turns out, there was more going on with that than I recognized. In addition to a new set of drivers, Intel also offers a new set of UWP software as well. By grabbing the latest version of the Intel Ethernet Adapter Complete Driver Pack, downloaders will get a copy of a UWP-based PROSet tool. Because it’s named the Intel ProSet Adapter Configuration Utility, this blog post is entitled Intel Win10 UWP configuration utility. Here’s what it looks like:
This handy utility runs from the Start menu, and provides all kinds of useful information about and control over Intel Ethernet adapters
[Click image for full-sized view.]
What’s in the Intel Win10 UWP Configuration Utility?
If you inspect the preceding screenshot, you’ll see four panes of information inside its window. The left-hand pane lists all Intel Ethernet adapters present on the host PC. There are two panes in the center. Up top, you’ll find adapter info, including bus type, driver name, media type, and so forth. Down below, you’ll find buttons for cable, connection and hardware tests. There’s a display area at the very bottom of the pane for test result display. At right, users can access and update each network interface’s adapter settings. Previously available only in Device Manager’s Advanced Connection properties window, this interface is less cramped and more friendly.
I did encounter a couple of gotchas when using the tool, though. After running either the Cable or Connection tests, the network interface would drop off the network. This proved easy to fix, however. A restart does the trick. So does jumping into Device Manager, after which you’ll disable then re-enable the affected network interface. Either maneuver restores the network to normal, proper operation. Hopefully, some alert Intel networking developer will read this blog post, and take corrective action for an upcoming tool update.
Nevertheless, this tool is worth downloading, installing and using, IMO. If you try it yourself, I hope you’ll agree.
[Note added after initial publication] The runtime for this software also includes some interesting PowerShell stuff. Read this support note “Intel PROSet for Windows PowerShell Software” and you’ll be able to try this stuff out for yourself. Works like a champ!
Checking over my production PC this weekend, I noticed a half-dozen folders at the root of my system drive (C:). By definition such files are system related and ordinarily hidden from view. Looking them over, I quickly realized I neither wanted or needed most of them. Hence my exhortation: Out darned Win10 dollar files (with apologies to the Immortal Bard). Here’s what I saw at the head of the C: drive’s folder list (the initial $ takes them to the head of the collating sequence):
Note the list of items here, each starting with the dollar-sign ($) character.
[Click image for full-sized view.]
Tossing Out Darned Win10 Dollar Files
Let’s tackle each item in the foregoing list of hidden system files as they appear from the top down. I’ll dig a bit into each one, and explain why I decided to get rid of 5 of those 6 entries. Sometimes that means I don’t need the contents any more, sometimes it’s an empty directory somehow left behind by Disk Clean up or Settings → Storage → Free Up Space now. Actually, only the Recycle Bin is a must-keep item (it supports the familiar desktop trashcan).
This hidden folder is created on Windows 10 machines during the upgrade process. It contains log files about a specific upgrade, in fact. The files in this folder are dated April 30, 2018, which means they’re tied to the 1803 upgrade. I’m running 1809 on this PC, so I absolutely don’t need this folder any more. Out it goes.
There’s little or no information about the $Hyper-V.tmp folder available anywhere, either from Microsoft or third parties. Its extension — .tmp — usually indicates temporary files which means it’s not necessary to keep them around. Closer inspection of the folder shows it to be empty. I’m not running Hyper-V on this PC anyway. Out it goes, too.
This one’s legit and must be kept around to keep the Windows 10 Recycle Bin working as intended. I’m leaving one alone, and you probably should, too.
According to a variety of sources, the $SysReset folder is created only when a Reset or Refresh operation fails on a PC. Since I regularly mess around with system functions on this PC for research and learning purposes, I probably triggered it unintentionally at one time or another. It includes log files intended to help troubleshooting reset and refresh issues. I have none that I know of, so this one goes, too.
$Windows.~BT and $Windows.~WS
These folders are created during the upgrade process to support rollback if needed. I use image backups to roll back when necessary, so I don’t need these folders. I’m not sure why Disk Cleanup and/or Settings → Storage → Free Up Space hasn’t already removed them, but I have no qualms about doing this manually myself. I don’t need these folders, nor their contents. Besides, 1809 backup happened for me on October 5 at Build 17763.1, and no longer matches the official ISO build source 17763.134. I don’t even want this stuff. Out it goes!
Say Bye to those Dollar Files
In an administrative Command Prompt session within PowerShell, I’ll use the rd (remove directory) command with /s (recurse directories) and /q (quiet, ignore error messages) to tackle these items. Here goes:
As I entered these commands inside the PowerShell/Cmd window, I watched the corresponding folders disappear in Explorer. Cool!
All taken care of. If it worked for me, it will also work for you. Say G’bye now!
In this case, CU means cumulative update for Windows 10. Servicing stack updates, also known as SSUs, pave the way for successful CU installs. As the MS Servicing stack updates web page explains, these updates “provide fixes to the servicing stack, the component that installs Windows updates.” In essence, that means SSU updates make sure that any potential gotchas that might prevent the CU from installing correctly are addressed before the gotchas can bite. This quote explains what’s up. “If you don’t install the latest servicing stack update, there’s a risk that your device can’t be updated with the latest Microsoft security fixes.” Hence also the title: Win10 Servicing Stack updates support CUs. Got that?
How Is It That Win10 Servicing Stack Updates Support CUs?
SSUs are supposed to be released at the same time that monthly quality updates and CUs are released. Sometimes, an SSU may go out on its own to address issues that affect systems installing a monthly update of some kind. Starting November 2018, new SSUs are classifed as Security updates with a “Criticial” severity rating. You can look at SSUs as a kind of just-in-time update that prepares systems to accept and work with other updates. It’s all good, right?
There’s just one little gotcha when it comes to SSUs. They don’t appear in the Windows 10 Update History. For the record, the most recent SSU (dated 12/4/2018) is KB4470788. Note this snippet from my Lenovo T520 laptop, onto which I installed the latest updates yesterday.
Note the absence of an SSU entry in the preceding list. Nothing is numbered 4470788. What’s up with that?
[Click image for full-sized view.]
If There’s No SSU Visible, Is It Really There?
Oh, it’s there all right. MS chooses not to show it in its Update History list for some odd reason or another. If you use the DISM /Online /Get-Packages command, it shows up near the end of that listing, like this:
The red arrow flags the KB4470788 entry, and shows it appears as a Security Update as claimed earlier. Perforce it’s installed before the CU (RollupFix item at end of list).
[Click image for full-sized-view.]
I learned by trial and error on Wednesday/Thursday that sometimes the SSU may NOT precede a CU. If that should happen, this may manifest in WU failing to offer the CU. I noticed that four of the five machines I have running 17763.167 got the offer, but the fifth did not. On a whim, I downloaded and installed the SSU from the Microsoft Update Catalog. Immediately thereafter, WU offered the missing CU (KB4469342). I’m not sure why this happened, but I was glad to find a way to address the situation. Should you ever find yourself in the same boat, this technique might also work for you. Find the Servicing Satck Update KB article numbers in Microsoft Security Advisory ADV990001 Latest Servicing Stack Updates. Then you can use that info to grab what you need from the Update Catalog.