Category Archives: Cool Tools

Backing Up P16

I’ve recently swapped out the Lenovo loaner unit for the ThinkPad P16 Mobile workstation here at Chez Tittel. In the same recent period, I’ve written stories for AskWoody about using USB and Thunderbolt versions 3 and 4 for a variety of purposes. When it comes to using any of those technologies with USB-C attached NVMe drives, backup looms large. And boy, are the results for faster storage hookups compelling when it comes to backing up P16. Let me explain…

TB4 Shines When Backing Up P16

The lead-in graphic shows a 1:03 completion time for an image backup on that device inside Macrium Reflect. That’s the fastest I’ve ever seen a full image backup complete on that (or any other) PC, whether to an internal or an external drive. Why doesn’t everybody do it that way?

Let me count the reasons:

  1. Not all PCs or Laptops have fast Thunderbolt4 ports.
  2. TB4 NVMe enclosures are expensive: US$130 and up. Count on spending at least another US$70 or so for a 1 TB NVMe to put inside same. In contrast, you can buy a portable 1 TB NVMe right now for about US$70 (but it’s not TB4, nor even TB3).
  3. One *MUST* use TB4 cables to get those results. Nothing else will do.
  4. USB-C ports can be scarce, so it may be necessary to acquire a TB4 dock. That’ll set you back another US$200-400 depending on ports and features.

But Hey! Look at Them Snappers…

All those caveats said and understood, 1:03 remains a remarkable timeframe for a full image backup. WizTree reports that the P16’s C: drive currently stores 82.8 GB’s worth of stuff. If I’m doing the math correctly that’s 10.48 Gbps as a backup speed. I’ll take it!

I spent over US$200 to put the NVMe enclosure to work, and another US$25 for a year’s worth of access to Macrium Reflect. Is is worth it? IMO, it is. IYO perhaps not…

 

Facebooklinkedin
Facebooklinkedin

Using Get-WUHistory Requires Finesse

I’m a big fan of PowerShell. That’s why I was excited to learn about a collection of cmdlets from the PowerShell Gallery named PSWindowsUpdate. Chief among its constituents is a cmdlet named Get-WUHistory that I’ve been finding both helpful and vexing. I say that using Get-WUHistory requires finesse because it works well on Windows 10, but hangs on PCs with longer “history trails” in Windows 11. Let me explain and illustrate what that means…

Why Using Get-WUHistory Requires Finesse

I’m only running Windows 10 on one actual PC (not counting VMs). By chance, that’s where I started working with the PSWindowsUpdate cmdlets. To begin with, you’ll need to install this collection, using this command:

Install-Module -Name PSWindowsUpdate -Force

If you haven’t visited the PowerShell Gallery before, you’ll be asked to grant various permissions so your PC (or VM) can access and use its contents. If necessary, please do so. Then, your installation will complete. After it’s done, you can use the Get-WUHistory command (among others — see a complete list of all 25 cmdlets from this package).

There’s something going on in Windows 11 that will sometimes cause Get-WUHistory to “hang.” How can you tell? The output won’t complete, you won’t get a prompt back, and the cursor keeps blinking. Indeed, it doesn’t even respond to CTRL-C to terminate the command. You must close the open PowerShell window (or tab) to regain control over Windows Terminal.

What’s the Trick to Make Things Work?

For some odd reason limiting the scope of output keeps the Get-WUHistory cmdlet working. Thus, in Windows 11 instead of simply entering Get-WUHistory at the command line, try this version instead:

Get-WUHistory -last 1000

This tells the cmdlet to limit its output to only the first 1000 entries it finds in the update history. Notice that on one of my test PCs, the actual number of entries in the update history is only 157 items, yet the command hangs anyway — except when it’s scoped. Go figure!

Unless scoped [-last 1000] Get-WUHistory hangs on Windows 11.

The lead-in graphic shows the first screen of output from a scoped version of the Get-WUHistory cmdlet. Notice that most of the updates relate to Windows Security (Windows Defender intelligence updates, antimalware platform updates, and so forth). Too much chaff, not enough wheat, IMO. Here’s a way to turn down the volume…

Reducing Get-WUHistory Output Volume

One can, of course, filter Get-WUHistory Output — in addition to limiting its scope — to reduce the output volume. Here’s a command string I found to be incredibly helpful in seeing what’s there, sans security-related stuff:

Get-WUHistory -last 1000 |
Where-Object {$_.Title -notlike "*Security*"}

What you see broken across two lines (or more) in the preceding is actually a single (if complex) PowerShell command string. Be sure to remove or ignore any internal line breaks when running this inside Windows Terminal. You’ll get back a mercifully much shorter list of items, mostly cumulative updates (CUs), MSRTs, Update Stack Packages, and the odd antimalware platform update. As you can see, this cuts 157 items down to a more manageable 12. Good stuff!

Eliminating the word security in the “Title” field filters out most of the dross. [Click image for full-sized view.]

Facebooklinkedin
Facebooklinkedin

Winget Version Numbering Hiccup

Here’s an odd, but interesting, Winget situation. While setting up the replacement Lenovo  ThinkPad P16 Mobile Workstation, I installed CrystalDiskMark (standard “free” version). As you can see in the lead-in graphic, the maker’s website gives it a version number of 8.0.4c. This causes an interesting winget version numbering hiccup, because its manifest contains numbers only (8.0.4) rather than the complete version designator (8.0.4c). This causes an error when running the “do-everything” winget command — namely:

winget upgrade --all --include-unknown

The upgrade command grinds along for a good long while — several minutes, in fact — before it fails with an unexpected error, like so:

Winget Version Numbering Hiccup:c-error

Apparently, the manifest points to a badly-formed or MIA URL, so the upgrade can’t proceed.

Overcoming Winget Version Numbering Hiccup

Attempts to specify an version number (8.0.4), along with an explicit ID (CrystalDewWorld.CrystalDiskMark) likewise fail to complete  (same error message). Then it gets more interesting:

Winget is happy to uninstall the 8.0.4c version, as long as I specify it explicitly.

But winget won’t install CrystalDiskMark, so the only option is to download and install the maker’s version — which doesn’t work with winget right now. I’m communicating this to the winget team (via Demitrius Nelon). Hopefully they’ll figure out a fix. I figure the version number mismatch between the manifest (8.0.4) and the maker’s actual number (8.0.4c) is what’s causing the issue. As soon as that gets resolved, I image things will start working as they oughter.

We’ll see!

Facebooklinkedin
Facebooklinkedin

Foiling False Upgrade Positives

I use a collection of tools to keep my Windows fleet updated. These include winget (in PowerShell), plus KC Softwares’ Software Update Monitor (SUMo) and PatchMyPC Home Updater. Occasionally one or more of these tools will throw a “false positive” — that is, report an update that doesn’t exist. When that happens I have my way of foiling false upgrade positives to prevent wasting time. Let me explain…

About Foiling False Upgrade Positives

This is a case where one tool can occasionally backstop another, so that one tool’s claim of an existing upgrade can be challenged successfully. Case in point: the item SUMo reported this morning, which refers to a new version of Microsoft PC Manager numbered 3.4.6.0 — look at the lower right in the lead-in image above. A quick hop to the home page for Microsoft PC Manager (Beta), a download (you’ll find two buttons there), and display of Properties details from that  download shows:Foiling False Upgrade Positives.pcmgrproperties

Notice the version number reads 1.2.4.22027. Compare that to the “Version” column in SUMo: same!

Likewise, when I turn to winget inside PowerShell, I use its “list” command to show me what’s on my machine, then use its “show” command to show me the latest manifest in its public database. Again, both agree. That tells me pretty unequivocally that the latest version is indeed 1.2.4.22027 — and that’s the one I’ve already got. SUMo, in asserting that version 3.4.6.0 is the most current, is somewhere off the beaten track.

What Now, Young Jedi?

I’ve got Kyle Katarn’s email and twitter feed at my disposal. So when something like this happens with SUMo I send him a message saying what SUMo reports and what the software maker (MS in this case) tells me. He’s usually very quick about fixing false positives (on a same-day basis, in fact). Ditto for issues with winget (I likewise interact with Demitrius Nelon, Winget Team Lead at MS). He is also responsive to feedback, and often provides same-day fixes as well. So far, I’ve not yet had a false positive experience with PatchMyPC (but it covers far fewer software items than SUMo’s 400+ and winget’s 2000+ manifests).

Good stuff!

Note Added August 9 Afternoon

At 4:15 PM Central (-05:00 GMT) Mr. Katarn sent me a message this item had been fixed. Ran SUMo again, and sure enough: the false positive is gone. THAT’s what I call customer service…

Facebooklinkedin
Facebooklinkedin

Copilot Goes General in Beta Build 22631.2129

It’s heeeeeere! With yesterday’s release, Copilot goes general in Beta Build 22631.2129. I wondered what the new left-hand icon on the notification bar was for. And indeed, it’s a reduced size version of the app icon that appears in the lead-in graphic above. That’s one mystery quickly resolved, at least. But there’s a lot to like about Copilot so buckle up!

If Copilot Goes General in Beta Build 22631.2129, Then?

The WinKey+C combination also calls up Copilot which looks (and acts) pretty much exactly the same as the Bing ChatGPT pane in MS Edge. Indeed, when I ask it how to clear my search history, it tells me to go to the Bin Search history page and clear my history. This works, but requires a page refresh to clear things up. Fascinating!

Copilot Goes General in Beta Build 22631.2129.example

Under the hood, Bing Chat and Copilot share the same search history. Clearing the former also clears the latter.

Ride that Hobby Horse!!!

This heading explains what I plan to keep doing extensively and heavily in the days and weeks ahead. I’ve been waiting for MS to turn the lens of AI onto the OS and apps for a long time now. So far, it’s been pretty darn helpful even as I’m figuring out how best to use it. I hope they’ll also make best practices, tips and recommendations available on that very topic. But I plan on giving it — and myself — a strenuous workout as I get to know this new and welcome addition to Windows 11. Stay tuned, and I’ll keep you posted.

Note Added ~4:30 PM Same Day

I wrote a reasonably technical article on SuperMicro GPU servers built around NVIDIA GPUs and supporting network technologies for Remote Direct Memory Access (RDMA) today. Copilot proved pretty darn helpful in running down some nit-pick details about speeds and feed for NVLink, InfiniBand, and high-speed Ethernet. Very, very interesting!

Facebooklinkedin
Facebooklinkedin

PowerToys Sources: WinGet & MSStore

I saw yesterday on Twitter (X?) that PowerToys version  v.0.72.0 dropped. So I started banging on WinGet to upgrade me. It’s been at least 20 hours since that announcement, but WinGet still has no manifest for the new version. Indeed, the lead-in graphic shows v.0.71.0 as current. But there are two PowerToys Sources: WinGet & MSStore. And sure enough, installing the Store version brought one of my Lenovo X380 ThinkPads up to the latest iteration. This features in the lead-in graphic as well. The second WinGet list PowerToys command shows the current version installed — with a WinGet source, no less — after I downloaded and installed the latest version from the MS Store. Go figure!

Why Two PowerToys Sources: WinGet & MSStore?

The answer to the preceding query depends on how organizations do updates internally. Those who let WU and the MS Store handle things should choose the Microsoft Store version of MS apps when they can. This will automatically handle things on its own. But those who control updates will find WinGet invaluable. It makes a great focus for automation via PowerShell scripts as and when their update windows open.

Does that mean one or the other source for updates is better? Not at all. But today, it looks like the updates through the MS Store track new releases faster than WinGet does — for PowerToys, at least. I’m also interested that even though my update comes from the store, it shows WinGet as its source. But as long as it’s updated quickly and correctly, that’s OK.

Facebooklinkedin
Facebooklinkedin

New Explorer Address Bar Is Too Spread Out

In working with the new-look File Explorer in the Beta Channel Insider Preview, I’ve come to a conclusion. It stands as the title for this blog post — namely, this: the new Explorer Address Bar is too spread out. IMO, anyway. Take a look at the lead-in graphic to see what I mean (new address bar top, old address bar bottom).

Why Say: New Explorer Address Bar Is Too Spread Out

The top of the image shows the address bar consuming about 3.8″ of the total 8.5″ display on-screen. By contrast, the bottom shows it consuming 3.125″. That’s a 21.6% bump in on screen size, most of which comes from wider spacing between path elements (and the > symbol that replaces the \ in a fully-formed directory path). Here are the paths for the two contrasting folders themselves:


new-style: C:\Utils\PowerPlans
old-style: F:\Nirlauncher\NirSoft\x64

This observed, the text displayed inside the address bar for File Explorer for each version is a little different, as you can confirm by inspection:

new-style: This PC > Local Disk (C:) > Utils > PowerPlans
old-style: This PC > OCZ3-120 (F:) > Nirlauncher > Nirsoft > x64

The upper display consumes more screen space than the lower even though it’s shorter (46 characters in the upper line; 53 on the lower, counting each space as a single character). Thus, it’s even more spread out than the visuals show by direct comparison. Because the upper string is 15% shorter, the expansion comes to roughly 40% (multiply 1.15  by 1.216).

Is Brevity the Soul of Wit?

Methinks that a more compact address bar makes it easier — and faster — to consume its contents. I’d urge MS to offer a compact version of the address bar as a tweak in future releases. If they don’t, somebody will probably do so in an add-on tool (e.g. WinAero Tweaker). I guess we’ll have to wait and see what happens, perhaps in the upcoming 23H2 version of Windows 11. To that end, I hope somebody at MS is listening…

Note Added August 3

One person who read this post suggested that this spacing is designed to make touch access to the address bar easier. I buy the notion that added spacing makes touch more effective. But I still think MS should add a “compact address bar” option to its File Explorer controls so that those not using touch can elect a more condensed presentation if they want it. ‘Nuff said…

Facebooklinkedin
Facebooklinkedin

After OOO Upgrade Whirl Resumes

OK, then. We rolled back into the garage a little after 5 PM last night. We spent 4 glorious days in an around Marfa, TX. It’s an odd but charming hipster haven in the Big Bend region. This morning, I’m surveying the state of my slightly reduced PC fleet after my absence. I’m down to 9 machines right now, having returned a couple of loaners to Lenovo in hopes of some new review units in return. After OOO upgrade whirl resumes with a vengeance as I catch up on what I missed while gone.

Reporting on: after OOO Upgrade Whirl Resumes

Across my various PCs, I saw some auto-activity in Update history while I was gone. But as I worked with my PCs, each of them needed somewhere between half-a-dozen and ten upgrades/updates to catch up to the leading edge. In general, WinGet accounted for one to three of those items, WU for about the same, and SUMo for the rest.

Interestingly, Strawberry Perl had failed to update in WinGet and inside WingetUI just before I left town. I’d resolved to fix that this morning, but it seems to have fixed itself. WinGet did the upgrade job on its own with nary a hiccup nor error message (see lead-in graphic).

Across the fleet, here are the apps and applications I needed to update upon my return to “active duty” (in alphabetical order): Firefox, Driver Booster, Intel ARC Control, OhMyPosh,  Strawberry Perl, and Zoom. Given how long I was OOO (out of the office) I’d expected more. But hey, if I can take a break from the grind, so can everybody else, Cheers: it was fun to be gone, but it’s good to be back!

Facebooklinkedin
Facebooklinkedin

Introducing Microsoft PC Manager

Last Friday, I learned about a new Beta Windows utility from Microsoft called “PC Manager.” It’s available for download and use right now on both Windows 10 and 11. There’s just one problem: I couldn’t get it to install from the download for either OS. But since I’m introducing Microsoft PC Manager here and now, you know I’ve figured out a workaround. Yep: there’s a Winget package for this tool, and it installs through that approach just fine.

Still Introducing Microsoft PC Manager, Despite Installer Fail

If you run the download file named MSPCManagerSetup.exe it simply hangs, even when you agree to its terms and conditions. It just sits there, doing nothing, like so:

Introducing Microsoft PC Manager.install-hang

Even after agreeing to the terms, the installer presents no option to actually install the tool. Stuck!

I figured there might be a winget package manifest for this tool, seeing as how it’s a Microsoft thing. I was right. It took a bit of poking around, but I eventually hit paydirt on the string “PCManager.” Here’s a screencap with the right install syntax (and a successful installation).

Winget install Microsoft.PCManager does the trick!

Again: Introducing MS PC Manager

Here’s what the startup window from the application looks like. It provides information into PC health, storage, processes and startup apps, as well as cleanup and security stuff.

Introducing Microsoft PC Manager.program-running

OK then: here’s the home window for the Microsoft PC Manager (Beta) utility.

Health check takes a couple of minutes to run, and found excess files and baggage, as well as numerous startup items to cancel out. Storage Manger offers options for deep cleanup, large file management, app management and storage sense. Deep cleanup found and removed another 3.6 GB of “stuff” on my PC; large files created a single-pane display of all files over 100 MB on my system (you can set thresholds at 10, 50 and 100 MB, and 1 GB: pretty handy). Manage apps simply moves you to Settings → Apps → Apps & features, where you can review and manage what you’ve got. Storage Sense does likewise for Settings → System → Storage → Configure Storage Sense or run it now. All pretty handy, and worth fooling around with. Check it out!

In a future blog post, I’ll dig further into the Security button at the lower right. It has at least one interesting capability that I’ll also be writing about in an updated story for ComputerWorld soon (I hope).

Facebooklinkedin
Facebooklinkedin

Dissecting Winget Logs Shows Root Causes

Hmmmm. I just did something risky, or perhaps dumb on my production PC. You can see the evidence in the lead-in graphic, a PowerShell session that shows an issue (in red, at bottom) with the installer hash for a Google Chrome update. What you can’t see is that I was already updating Chrome inside Chrome itself while this was happening. The installer changes when a new version is installed. Fortunately, dissecting Winget logs shows root causes, so that’s what I did next. It was more illuminating than the error message, for sure…

How Dissecting Winget Logs Shows Root Causes

First, some background on Winget logs. You can find out more about them (and related troubleshooting stuff) in the MS Learn article “Debugging and troubleshooting issues with the winget tool.” It also gives you a huge honkin path where the log files reside — namely:

%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

But, rather than grab and use this, I simply told Voidtools Everything to show me all instances of the final directory name DiagOutputDir. That got me there a whole lot faster!

Once into the logfile named WinGet-2023-07-21-10-59-05.148.log I jumped to the bottom to see how it mentioned Chrome. Here’s the tail end of that log from 11:00:09 to 11:00:14.


2023-07-21 11:00:09.043 [CLI ] Generated temp download path: C:\Users\etitt\AppData\Local\Temp\WinGet\Google.Chrome.115.0.5790.99\2c925b57d4892c4fbe177b3d7f91098a3bcdb0d95957c37872a1244bf9edae26
2023-07-21 11:00:09.043 [CORE] Downloading to path: C:\Users\etitt\AppData\Local\Temp\WinGet\Google.Chrome.115.0.5790.99\2c925b57d4892c4fbe177b3d7f91098a3bcdb0d95957c37872a1244bf9edae26
2023-07-21 11:00:09.044 [CORE] DeliveryOptimization downloading from url: https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
2023-07-21 11:00:13.663 [CORE] Download completed.
2023-07-21 11:00:14.593 [CORE] Started applying motw to C:\Users\etitt\AppData\Local\Temp\WinGet\Google.Chrome.115.0.5790.99\2c925b57d4892c4fbe177b3d7f91098a3bcdb0d95957c37872a1244bf9edae26 with zone: 3
2023-07-21 11:00:14.602 [CORE] Finished applying motw
2023-07-21 11:00:14.603 [CLI ] Package hash verification failed. SHA256 in manifest [2c925b57d4892c4fbe177b3d7f91098a3bcdb0d95957c37872a1244bf9edae26] does not match download [aae26a4cf7d92a4c9198d8fac9534670e9fb5f8d1e38897d99b0b51e68107d2a]
2023-07-21 11:00:14.604 [CLI ] Terminating context: 0x8a150011 at D:\a\_work\1\s\external\pkg\src\AppInstallerCLICore\Workflows\DownloadFlow.cpp:15e
2023-07-21 11:00:14.604 [CLI ] Terminating context: 0x8a15002c at D:\a\_work\1\s\external\pkg\src\AppInstallerCLICore\Workflows\InstallFlow.cpp:28a

I bolded the line where things went south. Basically, the hash verification failed because I had already overwritten the old version of the installer with the new version (and the new Chrome version itself, as well). Good thing winget is smart enough to recognize the ground has shifted under its feet. If it finds things it doesn’t expect, it wisely decides to quit what it’s doing. Now I know what I had always suspected. And now, of course, you know too. Cheers!

Facebooklinkedin
Facebooklinkedin