Category Archives: Cool Tools

Sussing Out WinTerm Color Schemes

In my writing and research work for TekkiGurus, I’m pursuing a GitHub project that works within the Windows Terminal environment. It’s called ColorTool. Simply put, ColorTool shows the colors used in the console window; it also lets you tweak them. Its color charts are kind of interesting and I’ve trying to figure them out. MS has a tendency to show them inside an Ubuntu command session inside Windows Terminal. I show them as they pop up in PowerShell in the lead-in graphic. As I’m learning how this all works, I’m sussing out WinTerm color schemes, too.

Bing Chatbot Helps When Sussing Out WinTerm Color Schemes

I’ve been reading a lot, and asking around to try to learn how to decode the values that show up in the display form of a Windows Terminal color scheme. So far, it’s proved rather more challenging than I had expected. So far, I’ve been attacking output strings to tease out their meanings. This is what I’ve learned so far, mostly thanks to the Bing Chatbot in Windows 11 Canary (Build 25393):

  • The string “gYw” that appears in the columns of rows 2-10) stands for gray, yellow and white. It uses prevailing foreground color, whatever that may be.
  • The values 30m through 37m that appear as row heads (first column left) are ANSI escape codes for foreground colors
  • The values 40m through 47m that appear as column heads (second column through 9th column left) are ANSI escape codes for background colors.
  • Looking at the color chart, the text strings “gYw” show the foreground color, while the solid bar for each column shows the background color.

In profound contrast, Ubuntu puts foreground colors as columns, and background colors as rows. I also shows escape sequences instead of color names. Initially, this bamboozled me. But now I see what’s going on…

Sussing Out WinTerm Color Schemes.ubuntu

Notice that background appears as double rows with escape codes at left in column 1, and foreground colors appear as the text for escape codes in rows 2-9).

Wow, it’s all starting to make a certain amount of sense. And I mostly have the Bing Chatbot to thank for explaining such extremely low-level details. Apparently, those who work with terminal/console color charts know all this stuff already.

Now, I finally understand that a color scheme assigns a range of color values to the 8 ANSI escape codes for the foreground colors 30m through 37m (which may also be expressed as ESC[30m …). It does the same for the 8 ANSI escape codes for the background colors, too (40m through 47m, likewise ESC[30m).

OK, Now I Know What’s What

Suddenly, I feel armed with the information I need to make sense of the Windows Terminal color schemes and their related color charts. This should make my jobs of explaining them, and their customization, a WHOLE LOT easier. I’m jazzed…

Facebooklinkedin
Facebooklinkedin

Understanding Windows Validation OS

Here’s something new to me that’s apparently been a thing for some time now. It’s called a “Validation OS” and includes an image file named ValidationOS.wim. When I tell you it’s a mere 193 MB in size and represents a (mostly) read-to-run image for Windows 11 22H2, that should raise your eyebrows. By comparison the 22H2 Download from the Download Windows 11 page weighs in at 5.4GB! One key point in understanding Windows validation OS is that it’s minimalist and limited by design. That’s why I show adjacent file listings from the Explorer Download folder as the lead-in graphic here.

Overview: Understanding Windows Validation OS

Here’s how MS describes this Windows 11 OS version and its purpose (from MS Learn’s Microsoft Validation OS documentation; bold emphasis mine):

Microsoft Validation OS is a lightweight, fast, and customizable Windows 11-based operating system that you can use on the factory floor to diagnose, mitigate and repair hardware defects during Windows device manufacturing. Validation OS boots into a Command Line environment to increase reliability on the factory floor and supports running Win32 apps, smoothing the transition from early hardware bring-up to retail OS and apps development.

The Validation OS offers only a command line interface as delivered. But by using DISM to operate on the .wim file you can add whatever packages you like to this bare-bone OS image. The list of optional packages available for use with this image includes (paraphrased from the afore-linked) Validation OS reference at MS Learn:

  • PowerShell: provides PS and basic modules/cmdlets
  • Basic connectivity (HID, USB and Serial device connections)
  • Disk tools (built-in Windows disk tools, including diskpart.exe)
  • GDI Plus: add graphics capability through GDI Plus support
  • .NET Framework 4.5: permits use of basic .NET features
  • Plug and Play: provides support for plug-and-play devices
  • Windows Device Portal: lets OS access WDP server for driver downloads
  • Other drivers: by class, includes memory, core system extensions, network drivers, and more

What the Validation OS Good For?

It is intended for developers and OEMs to provide a quick-to-boot-and-run, lightweight version of Windows 11 they can use to test specific hardware configurations. Developers can use it to simplify and speed up driver creation and maintenance.

But gosh, a lightweight version of Windows 11 is also handy for rescue and recovery purposes, too. Those who know how to use DISM will be able to use its add-package capabilities to extend and customize this Windows image (it will also be necessary to take this approach for updates as well).

This one’s definitely worth exploring and possibly putting to work, for admins who test configurations and updates prior to deployment, and for anyone in search of a good starting point for a customized, bootable repair/recovery environment.

Note: here’s a shout-out to Sergey Tkachenko at WinAero, whose July 4 story “Microsoft’s Validation OS Again Received and Update (Quietly)” clued me into this version of Windows 11. Thanks!

 

Facebooklinkedin
Facebooklinkedin

Testing Bing Chat AI Text Generation

Hmmm. This has been interesting… I’ve been using the Bing Chat tool in the Canary Channel version of Windows 11 lately. I just asked it to shed some light on a Windows Console (aka Windows Terminal) tool that I’ve been working with lately. Let me provide the query I used while testing Bing Chat AI text generation:

“Give me 400 words about the Winodws Console colortool”

I’ll provide the results as a blockquote under the next heading. Then I’ll explain what’s good about it and where — IMO at least — it falls a little short.

Results from Testing Bing Chat AI Text Generation

Notice that the chatbot correctly interprets my mistyping of Windows as “Winodws” in the input, and gives me the answer I wanted. Good stuff! Here’s what it told me:

The Windows Console Colortool is a utility that helps set the color palette of the Windows Console. It can be used to apply the new default color scheme and several alternate pre-defined color schemes or even schemes of your own1The tool is open source and hosted on GitHub2.

To use the Colortool, open up Command prompt and run: colortool [scheme name in schemes/ e.g: campbell]. Right-click on the window title to access the ‘Properties’ dialogue box. Once the properties dialogue box opens press OK (which saves the color change)1.

Notice it provides highlighted, hyperlinked text to additional references (which show up in the lead-in graphic as footnotes 1 and 2). It’s essentially a rewrite of descriptive information from the colortool’s github page. Curiously, that does not show up as the primary reference here (it’s number 2, though). Concerns about the accuracy of the material I’ve seen voiced in other analyses are apparently NOT an issue when you ask the chatbot to keep the text short. Everything it says it 100% accurate and verifiable.

OK Then, What’s Missing?

The text does not explain that the ZIP file for the colortool must be downloaded and unpacked into a folder that’s either included in the $PATH environment variable, or made the focus of the Command Prompt (or PowerShell) session in which the tool gets invoked. It just assumes all those details have been handled and jumps straight into the syntax and behavior of the tool itself.

That’s all well and good, but makes a telling demonstration of why AI chatbots can help, but not necessarily take over, for knowledgeable human actors with a more nuanced understanding of the context in which they’re operating. At least not yet, anyway…

It’s extremely interesting stuff, and is definitely going to help me with my job of explaining things to readers in the future. If you’re running the Canary Build (25393) for Windows 11, click the Bing symbol at the upper right of the default Edge window to dig in and try it for yourself. Great fun!

Facebooklinkedin
Facebooklinkedin

WinGet Upgrade PowerShell Shows Cancelled

Here’s an interesting observation. Winget will happily upgrade PowerShell from one version to the next, but things can sometimes get a little weird at the end of that process in a PowerShell window. As you can see in the lead-in graphic, a WinGet upgrade PowerShell shows cancelled at the end of that process. I opened a second PowerShell tab, then formatted it to appear beneath the open command session above. Notice the version number in the top reads 7.3.4 and below 7.3.5. That means the upgrade process completed successfully and PowerShell is running the higher-numbered version.

Interestingly, this doesn’t happen on all Windows 10 or 11 PCs. As I upgraded my local fleet from the old version to the new, this situation popped up on about half the machines involved. WinGet team lead Demetrius Nelon (@DenelonMs) explained things to me this way:

Yes, we have the same behavior when we use winget to upgrade winget via `winget install “App Installer” -s msstore –force`. We actually special case that scenario in the latest preview to show completion even though the process is killed which is what is happening in the upgrade PowerShell scenario.

What WinGet Upgrade PowerShell Shows Cancelled Means

Once PowerShell is updated the process where the upgrade happens appears unable or unsure what to do with itself. It’s apparently still running the old version in the top pane. But when a new pane opens below it shows the new version of PowerShell is running. IMO, that makes the “Cancelled” output an artifact of the bootstrapping process rather than a genuine error message. Indeed that’s a function of the “CTRL-C” like behavior of what happens as Mr. Nelon explained further:

Essentially the running process is “killed” [ctrl]+[c] equivalent. When the process is killed an exception is thrown. A child process would continue to run, however, so it actually completes successfully

And indeed, if you close the open Windows Terminal instance and open another one, it comes up with only 7.3.5 visible and available. I don’t know if others find this kind of thing interesting and entertaining. But gosh, I sure do. These little details are what makes working with the Windows OS and its supporting cast of tools — Windows Terminal and PowerShell, in this particular case — so interesting and beguiling.

Learn More About Windows Terminal

I’m about halfway through a series of articles on Windows Terminal for TekkiGurus.com right now. Here’s what’s done so far:

Overview: Understand Winget: MIcrosoft’s Windows Pkg Manager
Part 1: Dealing with Windows Upgrade Issues
Part 2: Working with Winget Settings

Still to come, among other items, is a story on WingetUI, a GUI-based alternative to the native command-line Winget tool. Be sure to check them out!

Facebooklinkedin
Facebooklinkedin

Playing Windows Sandbox Games

Yesterday, I found myself needing to visit some “geographically suspect” websites. Let’s just say they’re in a country much in the recent news. For added, protection I wanted to use the Windows Sandbox, a runtime environment that creates a temporary VM based on your current running image. Once you close it, all traces of its presence disappear. That’s a good thing, when you want no uninvited leftovers later on. Thus, I found myself playing Windows Sandbox games yesterday for the first time on Windows 11.

Steps in Playing Windows Sandbox Games

When I typed Sandbox into one of my Windows test PCs, nothing happened. Indeed, it’s been long enough since I set up Sandbox on Windows 10 I’d forgotten some specific preliminaries are needed:

1. Because Windows Sandbox is a kind of virtual machine (VM), virtualization must be enabled.
2. If you don’t seek to launch Sandbox inside  another VM, you don’t need to worry about nested virtualization. Otherwise, a PowerShell command is needed (see this How-to-Geek article for the specifics).
3. Finally, you have to open “Turn Windows features on or off” and then specifically enable “Windows Sandbox (checkbox checked).

The lead-in graphic shows the bottom portion of the scrolling list inside the “Windows Features” applet in Control Panel. You can get there many ways. I typed “Windows Features” into the Start menu search box and it came right up. The same approach in Settings search works, too.

After the Checkbox, Windows Takes Over

When you click OK after checking the Windows Sandbox checkbox, the Windows installer takes over. It grabs and installs the necessary files to add Sandbox to the target system. At the end of its labors it will tell you “Windows needs to reboot your PC to finish installing the requested changes” (see below). Click the “Restart now” button at lower right.

Playing Windows Sandbox Games.restart-to-run

Once it’s done, click Restart now to complete the install.

After the PC comes back to the desktop, Sandbox will be ready to use. It certainly did the trick for the various websites I wanted to visit both safely and securely. Here’s a snapshot of the resulting sandbox desktop.

I use PatchMyPC to install Chrome and other tools for a more familiar, usable Sandbox. [Click image for full-size view.]

Facebooklinkedin
Facebooklinkedin

Windows 11 Widgets Need Improved Stability

OK, then. I just happened to check Reliability Monitor (ReliMon) on one of my Windows 11 test PCs. I’d been using it as the platform to put Widgets through their paces late last week. If you look to the right-hand of the reliability graph, you’ll see it craters as I do so. In fact, between June 22 and 27 CoreWidgetProvider accounts for 9 of 11 MoAppCrash errors inside the Dev Home app over that 6-day period. Hence my assertion: Windows 11 Widgets Need Improved Stability.

Why Say: Windows 11 Widgets Need Improved Stability?

Simply put: that’s a LOT of crashing just for using Widgets through Dev Home. For the record MoAppCrash is shorthand for Mobile Application Crash, and goes to the coreclr.dll element in that app. Methinks MS Needs to check this out and figure out how to boost its uptime or resilience. AFAICT this comes from pinning Widgets to the Dev Home dashboard and letting them run. That should be a pretty non-controversial action, right?

That said, the full name of Dev Home right now is indeed “Dev Home (Preview).” That means it’s not fully cooked yet. So you knew there had to be something about it that might not be ready for prime time. What do you bet this is part of that in some way?

What to Do? What to Do?

I’ll be reporting this to Feedback Hub. If you see it on your PCs you should do likewise,  or upvote my item. If MS really wants to supplant Vista Gadgets with Widgets, looks like they’ve got some work to do!

 

Facebooklinkedin
Facebooklinkedin

WinGet Chrome Update Follies Continue

There are many occasions when I run WinGet and it tells me Chrome needs an update. Sometimes, WinGet handles that update; other times it does not. I just pushed my luck, and got more information about why that happens. It’s shown in the lead-in graphic, and indicates a change in the “install technology” is involved. In such a start-stop fashion, my WinGet Chrome update follies continue…

Yes/No: WinGet Chrome Update Follies Continue

WinGet is inherently conservative by design. If the developers change something about the installer WinGet calls to handle updates, it won’t force that update. As you can see in the lead-in graphic, when I explicitly tell WinGet to update Chrome (e.g. winget upgrade google.chrome references the package name) it gives me an informative error message instead:

A newer version was found, but the install technology is different from the current version installed. Please uninstall the package and install the newer version.

OTOH, if I fire up Chrome, then click on Help → About, it’s happy to update itself at my behest. See?

WinGet Chrome Update Follies Continue.internal-update

The internal update facility in Chrome doesn’t care about “install technology.” It just runs.

The advice in the WinGet message thus really targets using WinGet to perform the upgrade. Indeed if you run this sequence of commands:

WinGet uninstall Google.Chrome

WinGet install Google.Chrome

then Winget will achieve the desired result of updating Chrome. In the past, I’ve speculated that if Chrome is running, the update might not happen. Now that I see this error message, this looks like a much more likely explanation.

But wait…!

I tried this on another test PC just now, and on that machine the Chrome update proceeded without any issue. Go figure!

Maybe it is a case of whether or not a Chrome process is running. On the other test PC it had just been rebooted, so no such potential complications were present. It’s always something, right?

Facebooklinkedin
Facebooklinkedin

Moment 3 Dev VMs Now Available

OK, then. I read a June 25 story on Neowin with great interest. It’s entitled “Microsoft releases free Windows 11 virtual machines with the Moment 3 update .” If you visit the MS webpage that the story covers, you’ll find VMs to download for VMWare, Hyper-V (Gen2), VirtualBox and Parallels. Inside each VM is a running instance of Windows 11 Enterprise, Visual Studio 2022 Community edition, WSL for Linux 2 (Ubuntu), Windows Terminal, with developer mode turned on. Hence my title here: “Moment 3 Dev VMs Now Available.”

Moment 3 Dev VMs Now Available:
20+ GB Download

Because Hyper-V is my virtualization tool of choice, that’s the version I downloaded to try out on a test PC. That download is about 21GB in size, and took me a good 4 minutes to download over a fairly fast connection.

Once you get over that hump, you’ll find a .vhdx file inside the ZIP folder that’s  a hefty 40+GB in size. UnZip same, and you’ll be able to open that VM inside Hyper-V. I’d recommend doing so from an NVMe SSD, which for many users will mean their system drive. Thus, make sure you’ve got the room!

I’d also recommend deleting the ZIP file once you’ve extracted its contents just to save some space. If you have the expanded file, you don’t need to keep the ZIPped version around. On an 8th gen 4-core i7 CPU (8650U @ 1.9 GHz) laptop, it took just under 5 minutes to unZIP the VM (4:55).

Moment 3 Dev VMs Now Available.unzip

This hefty ZIP file takes a while to unpack…4:55 on my test PC.

Once you’ve got the .vhdx file unzipped, you simply need to create a new VM inside Hyper-V (Gen 2, 4096 MB RAM, default switch). You can then double click the VM inside Hyper-V to launch, and you’ll get a complete Windows 11 instance with all the aforementioned goodies up and running. It took about 4 minutes on my Yoga X380 ThinkPad test PC to get to the desktop shown in lead-in graphic.

Other than the time it takes to download, install and start up, the process is dead easy. Try it for yourself and you’ll see. The only downside is that this is an eval copy of Windows that ages out on September 23, 2023. Thus, it won’t last very long!

Facebooklinkedin
Facebooklinkedin

Teams App vs. Application Update Conundrum

I’m chuckling as I report this. Right now many people — including me — run both the app and the application version of Microsoft Teams on their Windows 10 and/or 11 PCs. I’ve been sussing out another update mystery in keeping Teams current, and have finally figured it out . . . I think. It seems there’s an easily overlooked Teams app vs application update conundrum in play. The Microsoft Store keeps the app version current on its own; regular applications often require human intervention for updates.  And to make things more interesting, this is apparently a case where WinGet isn’t always equipped with pointers to the latest, greatest update packages. Sigh.

One more thing: Because the Teams application runs as part of the Office (365 or 2019 or later “dated versions”) running update in Outlook, Word, PowerPoint and so on also takes care of the Teams application update. Good to know!

Solving the Teams App vs. Application Update Conundrum

I started twigging to my issue when I saw two entries for Microsoft Teams in my update scanner SUMo. Winget told me one of those instances was an application (ID: Microsoft.Teams; version 1.6.00.12455 was most current, but I was still running 1.6.00.6754). The other one was an app (ID: MicrosoftTeams_8wekyb3d8bbwe; version 23134.300.2089.5908; the _*weky… string in the ID is what tells you it’s an app, BTW).

That led to my “Aha!” moment. Microsoft Store keeps apps up to date pretty darn well without requiring human intervention. Regular applications, not so much. So I had to fire up the application, log in, navigate into Settings, and tell it to “Check for updates.” That did the trick, after which Teams was finally up-to-date. Amusingly it’s now running version 1.6.0.16322 — a higher version number than the SUMo recommendation that twigged me to this interesting issue in the first place. Go figure!

Keeping Windows apps and applications up-to-date is always interesting. In cases like this one, in fact, it may even be a little too interesting. But it’s always fun to figure things out.

Facebooklinkedin
Facebooklinkedin

WizTree v4.14 Mystery Finally Resolved

I must say I’m relieved. I keep in touch with Kyle Katarn. He’s the principal developer of Software Update Monitor (aka SUMo) and a bunch of other interesting software. Lately, SUMo’s been reporting there’s an update available for WizTree. But I’ve neither been able to find it, nor has the most recent available download resolved the discrepancy, either. Sigh. But this morning, the WizTree v4.14 mystery finally resolved itself. Indeed, its download page finally refers to — and makes available — the very version that SUMo recommends. See it in the lead-in graphic above.

Download Means WizTree v4.14 Mystery Finally Resolved

Even though it’s dated June 6 in that screencap, I swear by all that’s holy it’s only showed up on the download page recently. Somehow, Kyle’s data analysis tools figured out what was coming long before it actually appeared. This happens sometimes, when you use update tools that scan the web to figure out that new versions of existing apps may be available.

I’ve noticed, and reported, at least ten times a week lately that SUMo occasionally recommends things before they’re ready for consumption. And sometimes, it even recommends beta or preview versions of software instead of production ones. From messaging with Kyle I understand that’s because his tools pay close attention to version numbers. Apparently, that means the occasional false positive that selects an item based on version number even when that version isn’t yet ready for widespread distribution and use.

To his great credit, Kyle asked me to report these things to him as and when I find them. I do, and he almost always fixes them the same day (often within an hour or two). Indeed, I’m pretty impressed with his responsiveness and can-do attitude,

Enough! Or too much?

That balancing act actually comes from William Blake’s Proverbs of Hell (1793). It’s as true today as it was then. And it describes the kind of dancing on a knife’s edge that tracking updates demands. One must be just aggressive enough to catch everything, everywhere, all the time. But one can’t be so aggressive as to recommend updates that aren’t yet generally available, or that shouldn’t be put forward. That means recognizing and steering clear of previews, alpha and beta test versions, and so forth, even though they almost always bear higher version numbers.

Things can get tricky from time to time, tracking and managing updates here in Windows-World. Yet somehow, we manage to carry on. Whether or not we also keep calm at the same time tends to vary…

 

Facebooklinkedin
Facebooklinkedin