USB4 Delivers Consistent NVMe Performance

OK, then. I finally laid hands on my second USB4 NVMe SSD enclosure yesterday. I deliberately sought out the cheapest one I could find so I could compare it to a more expensive alternative already on hand. When I say that USB4 delivers consistent NVMe performance here’s what that means:

1. The same SSD, cable, and host PC are used for comparison. Both drives have the “cache tweak” applied (this Oct 14 post has deets). Same tests performed, too (CrystalDiskMark and a Macrium Reflect backup).
2. The only thing that changes is the enclosure itself.

In short, I wanted to see if spending more on hardware returned a noticeable performance advantage (I’ll talk more about this below). Long story short: it doesn’t seem to make much, if any, difference. Let me explain…

Why Say: USB4 Delivers Consistent NVMe Performance?

The lead-in graphic shows the results from the cheap enclosure on the left, and the more expensive one on the right. The average difference in CrystalDiskMark performance shows 2 wins for el cheapo, 5 wins for the higher priced item, and 1 tie. On first blush, that gives the more expensive device an advantage. So the next question is: how much advantage?

This is where a little delta analysis can help. I calculate that the average performance difference between devices varies from a high of 6.2% to a low of 0.03% (not including the tie). That said, the average performance difference across all cells is merely 1.54%. (Calculated by taking absolute value for each delta, then dividing by the number of cells.) That’s not much difference, especially given the prices of the two devices: $128.82 and $140.71. That delta is 8.4% (~5.5 times the average performance delta).

I will also argue that comparing CystalDiskMark results is interesting, but not much of a real-world metric. Thus, I’ll compare completion times for a Macrium Reflect image backup on the same PC, same OS image. The expensive device took 2:25, the cheap one 2:44. That’s an 11.5% difference, greater than the price delta but not amazingly so.

Deciding What’s Worthwhile

I can actually see some differences between the two enclosures I bought. One thing to ponder is that NVMe drives tend to heat up when run full out for any length of time (as when handling large data sets, making backups, and so forth). I’ve seen temps (as reported in CrystalDiskInfo, reading SMART data) go as high as 60° C while M.2 SSDs are busy in these enclosures. At idle, they usually run at around 28° C. The more expensive NVMe enclosures tend to offer more surface area to radiate heat while active, so that’s worth factoring into the analysis.

But here’s the deal: I can buy a decent USB3.1 NVMe enclosure for around US$33 right now. The cheapest USB4 NVMe enclosure I could find cost almost US$96 more. That’s a multiplier of just under 4X in price for a device that delivers less than 2X in improved performance. Let me also observe that there are several such enclosures that cost US$160 and up also on the market. I still have trouble justifying the added expense for everyday use, including backup.

There will be some high-end users — especially those working with huge datasets — who might be able to justify the incremental cost because of their workloads and the incremental value of higher throughput. But for most business users, especially SOHO types like me, the ouch factor exceeds the wow value too much to make it worthwhile. ‘Nuff said.


KB5018496 Lands Poorly So Far

KB5018496 is out as of October 25. It takes production-level Windows 11 22H2 systems to Build 22621.755 when applied. To be fair, it’s a Preview CU, so not entirely cooked yet. But I observe that KB5018496 lands poorly so far because

(a) I don’t see any of its cool gradual rollout features on any of my PCs (e.g. right-click in Taskbar to launch Task Manager)
(b) When I attempted to explore the new Microsoft Accounts (MSA) capabilities, it crashed when I attempted to open the P16’s camera. I know that works because I use camera-based Hello to log onto that machine and had just done so minutes before. Sigh.
(c) I was unable to verify my identity in Settings → Accounts, because of the camera issue, so also unable to backup my MSA data. Sigh again.

Again: this is a preview release. And I’m qvetching about gradual rollout elements that either haven’t made it to my PCs, or that aren’t yet working as they should be. It’s a kind of “business as usual” thing, I guess.

What KB5018496 Lands Poorly So Far Really Means…

It’s pretty much par for the course that a few rough edges will show up in a preview release. Thus, for example, when I went to Accounts → Windows backup in an RDP session, the PC “knew” it couldn’t use the camera for validation. So I got an email to my MSA address instead. That worked just fine. The relevant screencap appears as the lead-in graphic for this story.

I assume there’s some kind of driver hiccup with the camera when logged in directly. It threw an error code that pointed squarely in that direction. That should be easy to run down and fix, so I’ll report it to Feedback Hub later today.

I’ve been using the right-click access to Task Manager in the taskbar on Insider versions of 22H2 for a while now. Thus, I also know it’s just a matter of time before it, too, shows up in production versions of 22H2.

Self-Inflicted Wounds? Perhaps…

So why do I install previews on production PCs? Because I’m an Insider and it’s my job to take such stuff on, and report what I see and find. I make daily image backups on those PCs, so the worst that can happen is a rollback to the previous image. I don’t generally do real work on those PCs unless I’m on the road. And in that situation, I probably wouldn’t mess with a preview because I wouldn’t want to lose the time (or the work done) since the last backup anyway.

And that’s how things go here in Windows World. Stay tuned for further developments. I’ll qvetch some more another day, for sure!


Winget Updates PowerShell 7.2.7

Here’s something new in my personal experience. I ran Winget on one of my Dev Channel test PCs this morning. The latest version of PowerShell came up as an upgrade option. So I exercised it, and indeed the PowerShell version incremented from 7.2.6 to 7.2.7. Hence my claim that now, Winget updates PowerShell 7.2.7. You can see the process underway in the lead-in graphic for this story.

What Happens When Winget Updates PowerShell 7.2.7?

Things get a little weird along the way. Notice that after Winget starts the package install for PowerShell, it shows a “Cancelled” notification at the lower left corner of the Terminal session window. At the same time, the PowerShell installer (small pane at lower right) reports ongoing progress in removing the old version, then installing and configuring the new version.

When the progress bar goes all the way to the right, it simply disappears with no further communication from the installer. On a whim, I closed the open Terminal session window. When I opened a fresh one, here’s what I saw:

Winget Updates PowerShell

Once the progress bar completes, the installer goes silent. But if you close the open Terminal session, then open a new one, you’ll see it’s indeed been updated to 7.2.7.

I’m not sure how it’s supposed to behave because I’ve never seen winget upgrade PowerShell before. Normally, a full installer window opens with the masked PowerShell avatar (see below). Then, one steps through the typical standalone installation sequence. This time, with PowerShell running things it worked differently. A bit disconcertingly, too. But it’s installed now and works as expected. So I guess, all’s well that ends well. Cheers!

Winget Updates PowerShell 7.2.7.avatar

I guess I’ll miss the avatar going forward, but I do appreciate the convenience of upgrading inside PowerShell.


Working with WinFetch

WinFetch is a windows-focused knock-off of another well-known shell tool named NeoFetch. Each is written to show useful and informative data about systems from within a command-line shell environment. NeoFetch is built atop bash; WinFetch atop PowerShell. IMO, that makes WinFetch more suited for use with Powershell. I’ve been working with WinFetch a lot lately, learning how to use it to help me see what I’m doing with Windows Terminal and PowerShell customizations. Indeed, it’s pretty helpful. But I’ve also been learning some lessons the hard way as I go. Let me explain…

Why Working with WinFetch Takes Some Effort

The documentation on WinFetch is kind of sparse. In fact, I’m starting to think I should spend my time reading the NeoFetch stuff, because it may shed more light on the inner workings of WinFetch. Straight from its GitHub home, there’s precious little info available about its details and settings. Sigh.

So far, the lessons I’ve learned the hard way include:
1. You must save the config.ps1 file that governs WinFetch behavior for its changes to take effect.
2. Sometimes, a reboot is required, above and beyond a simple save. I can’t tell why, but I found myself stuck a couple of times on this hump. If you make a change, save the config file and it has no impact on the WinFetch output, try a reboot. It may do the trick.
3. Customizing the WinFetch config is totally a trial-and-error exercise. Be prepared to spend lots of time tweaking and checking, then repeating ad infinitum. Sigh again.

Customizing for Winget Package Mgr

It took me a while — including plenty of the aforementioned trial and error, but I got WinFetch to look at and report on Winget packages. Here’s the syntax, straight from the config.ps1 file that makes WinFetch work:

$CustomPkgs = @(“winget”)
function info_pkg_winget {
return ((winget list | measure-object).count)

What you’re doing is telling winget to list all the packages it knows about, then piping that input into the measure-object cmdlet. Using its count attribute you simply show the overall package count. Sublime!


WU Reset Fixes Weird Windows 11 Upgrade Freeze

With Dev and Beta Channel releases, it’s always “just a matter of time” before something gets wonky. Yesterday, in fact, I ran into difficulties upgrading one of my X380 Yoga laptops to Build 25227. In November 2021, I wrote a blog post here entitled WU Reset Tool Works on Windows 11. Good thing, because WU reset fixes weird Windows 11 upgrade freeze, too. Let me explain…

I’m Glad WU Reset Fixes Weird Windows 11 Upgrade Freeze

Here’s what’s weird about this failure. The laptop hung during the post-GUI update phase, after the old OS hands over control to the installer’s WindowsPE-based runtime environment. Indeed, it got all the way to 98% complete before it hung interminably.

Yet, as you can see, the hex code speaks to a “download error.” I have to guess there was some essential bit of data that the installer needed to read right at the end of the post-GUI installation process. When that failed, the whole shooting match went south. Stuck forever!

The Charm Came on the 2nd Try

I probably got lucky. I ran the invaluable reset/reregister batch file cited in the WU Reset Tutorial at ElevenForum, Then I tried the 25227 upgrade again: it worked this time! That said, this one took 30-40 minutes to complete (a fair while longer than previous but recent Dev Channel upgrades). But it sailed through to completion and is now working properly on the X380 laptop.

On the plus side, the login issues I’d been having with RDP on the same laptop also disappeared with the upgrade. That’s a relief. But on the minus side, my other Dev Channel test machine acted a bit wonky during the upgrade, too. It shut down after the reboot from the GUI phase into the post-GUI phase of the install. I had to manually power back on to finish the job. That hasn’t happened for a while with Dev Channel releases, either.

But hey! The purpose of Insider participation is to help catch — and hopefully kill — bugs and weirdnesses before they get into general release. We’re all just doing our jobs by finding and reporting this kind of stuff.

And that’s how it goes sometimes, here in Windows World. Good thing I enjoy it, and relish my appetite for problem solving and troubleshooting.


Zoom Updates and Payment

Here’s an interesting set of observations. In the past weeks, I’ve noticed that the free version of Zoom no longer offers the “Check for Updates” option in its menus. I’ve also noticed that Zoom has been asking free users to “upgrade” to the for-a-fee pay version. That got me to thinking about Zoom updates and payment. So I conducted an experiment…

What About Zoom Updates and Payment?

I went ahead and signed up for an individual Zoom license. It’s assessed annually, and costs about US$185 per year. Right now, the first year is discounted, so my actual out-of-pocket was “only” US$95.88. But it renews automatically at full price one year from today. Ouch!

That said, as I suspected — and as you can see in the lead-in graphic above — if you do pay for Zoom, you also get the Check for Updates option back. That raises the interesting question: is automatic updating worth US$95 (this year) or US$185 yearly? I’m not convinced.

There IS Another (Free) Way

If you don’t mind running a few Winget commands, you can keep the free version and update as you need to. FYI, I use SUMo to tell me when it’s time to update, but because I don’t pay for a license to that software on all my PCs, I’ve figured out how to use Winget to handle that instead.

The basic concept is to uninstall the version that’s running. Then, if you install Zoom again it will grab the latest version. That results in an up-to-date version on your PC. Two simple one-liner commands are involved:

  1. Winget uninstall Zoom.Zoom
  2. Winget install Zoom.Zoom

That’s it. Works like a champ. Be sure to keep your sign-in account and password info handy, because you’ll need to sign into the newly installed version after going through this remove/replace operation.

But you can keep using the free version, and stay current, if you follow this simple two-step operation. That’s probably what I’ll revert to next year, when my renewal comes due. To be continued…

It’s Irksome, and Potentially Insecure

C’mon Zoom: this approach is potentially unsafe for lots of users who SHOULD be free (e.g. students, seniors, nonprofit workers, and so on). Sure, it may be an inducement for some people (me, for example) to purchase a commercial license so as to regain auto-update ability. But the vast majority of free users who have no choice but to stay put should not be exposed to potential security vulnerabilities in the name of (modest) incremental revenues.

My plea/request: return the automatic updates to the free version! Find a different way to increment your income, please, in the name of better overall application security.


First Windows 11 22H2 Moment Arrives

OK, then. We knew it was coming. And with yesterday’s release of  KB5019509 it’s here. That’s right: with this out-of-band  update, the first Windows 11 22H2 moment arrives. This time, it includes the tabbed version of File Explorer, which wasn’t quite ready for release when 22H2 made its debut on September 20.  This new, snazzed-up File Explorer version provides the lead-in graphic for this story, shot from my just-updated P16 laptop.

What First Windows 11 22H2 Moment Arrives Means

I guess it helps to understand that a moment is shorthand for what ComputerWorld (CW) describes as “small, quarterly feature updates” in a September 14 story. (This story in turn relies on a July Windows Central hearsay report about the terminology.) And indeed, support for tabs in File Explorer makes a perfect illustration of what such a “moment” could bring to users.

But there’s more to KB5019509 than File Explorer tabs. Here are  descriptions of two other new features, straight from that update announcement (blue text emphasis mine for ease of identification):

  • New!It adds a feature called Suggested Actions for items that you copy. This is available for customers in the United States, Canada, and Mexico. For example, when you copy phone numbers or future dates, we provide suggestions, such as make a call with Teams or Skype or add an event in the Calendar app.
  • New! It adds a taskbar overflow menu. The taskbar will offer an entry point to a menu that shows you all your overflowed apps in one space.

We’ll Have These Moments to Remember…

If the CW description is correct, this is just the first of a series of such moments that will pop up from time to time. I can’t tell if MS will itself use the “moment” terminology or not. In fact, KB5109509 calls the aforementioned introductions “quality improvements” instead. A search on the word “moment” turns it up nowhere in this text.

Other new quality improvements in the update include using nearby sharing to “discover and share more devices, including desktops,” a switchover to Windows Settings from Control Panel to “uninstall, repair and modify all apps,” and improved “performance of federated authentication.” All told, KB5109509 appears to offer some interesting stuff.

But if a quality improvement isn’t explicitly called out as a “moment,” why bother with this terminology? Good question! I wish I had an equally good answer. We’ll have to see how this all unrolls. In the meantime, I’m just going to savor this particular moment…



Get-Hotfix Shows What WU Sometimes Cannot

When MS lifted the safeguard hold on  my Lenovo P16 Mobile Workstation, I upgraded it to Windows 11 22H2. Naturally, my first thought thereafter was to check on status of recent updates and fixes. That’s when I figured out that KB5018427 was included in the 22H2 version installed. Seems that Get-Hotfix shows what WU sometimes cannot — at least as far as Update History goes.

It’s all apparent in the lead-in graphic for this story. In case it’s not legible enough, right-click on that image and select “Open image in new tab” (Chrome, Firefox, Edge, etc.). That should show it at original resolution. If necessary, you can use the browser’s Zoom controls to magnify the text.

How Get-Hotfix Shows What WU Sometimes Cannot

Update history shows only user-alllied updates. It does not show updates that — like KB5018427–get rolled up into the windows image file (WIM) used to install a version upgrade. That’s what makes the PowerShell Get-Hotfix command so useful. Its image analysis tool tells it what’s there, whether the user applied it directly, or whether it’s already “in there” as is the case here.

An important clue appears in the “Installed on” date shown in the output of Get-Hotfix. Although the KB item itself is dated 10/11/2022, it didn’t get rolled into the WIM until 10/14/2022.

What Led Me Down This Trail?

I read the Windows Latest story about KB5018427. Naturally, I wanted to check on its status in the upgraded 22H2 version. When I didn’t see it in Update History, I visited the Microsoft Catalog and downloaded the 64-bit MSU file. Upon attempting its installation, it searched the updates already installed on the PC. That produced the following status message:

That made me understand the KB had been included in the WIM file I’d already installed. A search on “use PowerShell to show updates installed” led me to the Get-Hotfix command.

As the afore-cited PowerShell docs states:

The Get-Hotfix cmdlet gets hotfixes, or updates, that are installed on the local computer or specified remote computers. The updates can be installed by Windows Update, Microsoft Update, Windows Server Update Services, or manually installed.

Thus Get-Hotfix can catch patches and fixes no matter how they get included in the image it checks and reports upon. The rest, as they say (drum roll, please)… is history!



P16 Safeguard Hold Lifted

OK, then. I performed my daily ritual WU check on the P16 Mobile Workstation on Friday (Oct 14) . This time, the P16 safeguard hold lifted, and I was able to update to Windows 11 22H2. As you can see in the lead-in screencap, the 22H2 download was available during capture. Neat-o!

And indeed a quick visit to the 22H2 Known Issues page shows that my hold-up — the Intel SST drivers — appears as “mitigated.” Here’s what that looks like:

P16 Safeguard Hold Lifted.SST-info

The P16 blocking issue is now resolved, thanks to Intel driver updates. These appear in DevMgr under the “Software Components” heading.

With P16 Safeguard Hold Lifted, Upgrade Proceeds

I got a little concerned right after the first reboot (from the GUI-based portion of the install, into the post-GUI phase). The P16 sat at 0% complete on processing updates for what seemed like an eternity (about 4 minutes). But then, it started to chunk through the process and finished in about 20 minutes during that install phase.

I noticed that the update included a raft of driver updates –14 in all — by checking Reliability Monitor later on. The two items of greatest import show up in the software components category where various sound -related items reside.

Whatever the issue might have been, I’m glad to see it resolved. And so far, the P16 is running without apparent issues. I’m connected to it remotely via RDP right now, so that recent bugaboo is not present here, either. Good-oh!


USB NVMe HW Tweak Delivers Big

I’m still noodling about, trying to figure how to get the best performance out of high end USB NVMe drive enclosures. To that end, I was reminded of something I already knew but hadn’t considered. That is: deep down in the hardware policies for Windows removable devices — including NVMe drives — is something called “Removal policy.” As a quick and easy item, this USB NVMe HW tweak delivers big results.

Those results appear in the lead-in graphic for this story. Both sets of CrystalDiskMark results come from the same system, same USB-C port, and the same NVMe hardware. The only difference is that one is tweaked (selected “Better Performance”) and one is not. As you can see, this tweak makes a big difference. (Hint: the left-hand item shows tweaked results.)

How-To: Set Up NVMe HW Tweak Delivers Big

This takes a bit of digging to get into. This properties page is several levels deep in the storage device properties hierarchy. There are multiple ways to get to this page. I’ll illustrate one with step-by-step instructions using Disk Management:

1. Use Winkey+X to open the quick access menu.
2. Select Disk Management.
3. Right-click the drive letter for the NVMe device, then select Properties.
4. On the General tab, click the Properties button at lower right.
5. On that General tab, click the “Change Settings” button at lower left.
6. Click the Policies tab on the resulting Properties page, and click the radio button next to “Better Performance.” Also, click “Enable write caching on the device.”

Here’s what that final page looks like, with the described selections made:

USB NVMe HW Tweak Delivers Big.removal-policy

This page is four levels deep into the device properties hierarchy. It offers a useful “Better Performance” option.

What About Those Results?

I built a spreadsheet using both sets of results. Note that for every cell in each set of results, the tweaked drive was faster than the untweaked one. Some of the differences are negligible (under 10%). Some are minor, but noticeable (under 35%). The entire write column, however, offers at least doubled speed (top two columns). The random writes are 30 times faster when one thread works against a queue depth of 32. That drops to “merely” 11 times faster for a single thread and a single write request. Amazing!

Tweak(R) Tw(W) Notweak (R) Notw(W) Delta (R) Delta (W)
3049.53  2898.59  3004.07  1326.67  101.51% 218.49%
1760.91 2020.40 1620.99 857.20 108.63% 235.70%
499.74 361.83 411.16 12.00  121.54%  3015.25%
50.92 110.77  38,74 9.52 131.44% 1163.55%

This represents a significant boost in performance for a quick settings tweak. It does mean, though, that you must use the “Safe Eject” tool in the notification bar to eject the drive before you can disconnect it. Or, if you’re like me, you’ll simply do it the next time the host PC is rebooting (best done right when the restart gets underway, after shutdown is complete).

But gosh! Consider the money for a fast-ish NVMe drive (about US$120 – 150 for the 1 TB Sabrent Rocket 4 Plus). Then, factor in US$150-170 for a fast, USB4 NVMe enclosure. The tweak takes under a minute and really helps with drive performance. If you spend the money, you need to spend the time and effort to apply the tweak. You’ll get the most from your investment that way.

Realworld Results Change

Untweaked, it takes Macrium Reflect 5:30 to image the system drive on the P16 Mobile Workstation where the USB4 NVMe drive is attached. Tweaked, that same drive finished the job in 2:25. That’s over twice as fast. To me, that’s much more meaningful than synthetic benchmark results like those from CystalDiskMark. It also shows those benchmark results have some truth to them as well. Good-oh!


Author, Editor, Expert Witness