Final 2023 Insider Channel Flights

It’s a consistent pattern. I’m looking at the most recent “flight announcements” in the Windows Insider blog. All of them include this sentence: “This will be our last <Name> Channel flight until January 2024” where <Name> is one of: Canary, Dev or Beta. The most recent instance popped on December 14. Its header appears as the lead-in graphic above.

Why Say: Final 2023 Insider Channel Flights Are Out?

Beyond the flat assertions from MS indicating they’re on pause until after New Year’s, I’ll observe this is a typical thing for Windows development. It’s been ongoing as far back as I can remember. Indeed, it usually hits in the 2nd or 3rd week of December, before the major end-of-year holidays get going in earnest.

This makes pretty good sense to me. Productivity usually slumps between December 20 and January 3 or 4 (depending on what day of the week New Year’s hits — next year it’s a Monday). MS is smart to call a hiatus by the middle of the month, to give everybody time to gear up for, and then recover from, the hollidays. Most other businesses (except those in leisure and hospitality) tend to do likewise.

Take a Deep Breath, And …

Indeed, I just wrote my last weekly blog/column for GoCertify yesterday (it will publish Monday). And I’ve noticed the pace of work will be letting up with the websites and publications I write for starting next week.

Does this mean I’ll be taking a break from this blog, too? Yes and no. I probably won’t blog on December 24 and 25 or January 1, but other than that it should be close to normal as it ever gets here at Chez Tittel. I should have more time to fool around with my PCs, so I should find plenty of stuff to share. Do stay tuned if you’re so inclined, but I hope you’ll have time to enjoy the end-of-year break in your own special ways. Cheers!

 

 

Facebooklinkedin
Facebooklinkedin

Windows 10 Copilot Remains Elusive

There’s a new KB in circulation that claims to extend the reach of Copilot in Windows 10. That would be KB5033372, released December 12. But alas: on the lone eligible  physical PC and various Windows VMs here at Chez Tittel, Windows 10 Copilot remains elusive. It runs fine inside Edge, but will not show up as a Taskbar or Start menu item on any of their desktops. Sigh.

Why Windows 10 Copilot Remains Elusive

A quick visit to the KB announcement (link in preceding paragraph) gives me an excellent idea why my PC isn’t getting Copilot. Because some multi-monitor set-ups are subject to “mysterious icon migration” across or among desktops, MS has blocked it for such configs. Here’s what they say:

To prevent users from encountering this issue, Copilot in Windows (in preview) might not be available on devices that have been used or are currently being used in a multimonitor configuration.

And wouildn’t you know it: my Windows 10 PC runs with dual Dell UltraSharp 2717 monitors. That definitely accounts for my physical PC’s lack of Copilot. But I’m not so sure about the VMs. It may stem from my typical mode of access to them (using one of the two just-mentioned monitors) or it may be something else.

A Ray of Hope?

In the same KB announcement already cited MS also says that they’re “working on a solution and will provide an update in an upcoming release.” Here’s hoping that release is upcoming sooner rather than later!

And once again, I’m a Johnny-come-lately among all those already in the vanguard. But hey: that exactly the way that things go here in Windows-World. Once more with feeling, I guess!!

Facebooklinkedin
Facebooklinkedin

Recurring PowerShell Update Issue Easily Fixed

Deja vu! With the introduction of version 7.4.0, MS once again changed the PowerShell (PS) installer. That means Winget won’t update PS directly; one must visit the GitHub PS page and grab a new installer from there. Afterward, as shown in the lead-in graphic, old(er) version(s) of PS still show up when WinGet upgrade is run. Fortunately this recurring PowerShell update issue is easily fixed. Let me explain…

Fixing This Recurring PowerShell Update Issue

Take a look at the lead-in graphic. It shows a single upgrade to PowerShell, from version 7.3.10 to 7.4.0 is available. But when I try to use winget to do the job, it reports a change in installer methods and won’t handle this task. This requires a trip to GitHub (the whole process is described in my November 17 post) to grab and install PS using its Microsoft Installer (.MSI) file instead.

But there’s a catch: as you can see in the Apps portion of the lead-in graphic, the PS installer does NOT clean up older versions. Thus, not just one, but two older versions of PS show up therein — namely 7.3.10 and a 10/25/2023 Preview version. Winget will report that the 7.3.10 version needs an update because 7.4.0 is available. Thus, you need to uninstall that version to stop this warning.

So that’s just what I did. And because I’m not using the PS Preview any more, either, I uninstalled it too. Problem solved. But here’s a request to the PowerShell team: please add a check for older stable versions (e.g. 7.3.10 in this case) and offer to uninstall it during the new stable version install process. It would make life ever so much easier, thanks!

Fingers crossed that they agree. I’ll be sure to copy this to the winget and PowerShell teams leads when I tweet this item out later this morning, too. That said, the new PS window notification does instruct users to “uninstall the package and install the newer version” so maybe they’re not interested in tackling this job. We’ll see…

Recurring PowerShell Update Issue.notification

I can’t say MS doesn’t warn users. I can say I didn’t see it right away, though…

Facebooklinkedin
Facebooklinkedin

Counting MS 2006 Drivers

Yesterday’s post about generic, MS-supplied device drivers got me thinking. These drivers bear an issue date of 6/21/2006, which coincides with Windows Vista’s RTM date. To be more specific, I wondered how many such items might appear in the Windows DriverStore. With counting MS 2006 drivers in mind, I asked Copilot for a PowerShell script to count them for me. Just for grins I compared that count to the total items as well.

Scripting Out Counting MS 2006 Drivers

You can see the results of my query to Copilot in the lead-in graphic. That query was “Write me a PowerShell script to display number of Windows drivers dated 6/21/2006 and total driver count.” As it turned out, on my Lenovo X380 ThinkPad running Windows 11, those numbers were 517 (2006 count) and 701 (total count). On my i7Skylake homebuilt system running Windows 10, those numbers were 511 and 672, respectively.

I’ll show the PowerShell commands below, but first I want to observe I had NO IDEA that MS supplies roughly 5 of every 7 drivers that Windows uses (over 70%). From looking at the items in the DriverStore more closely thanks to PowerShell, I see that this is because many of them are class, bus and service drivers. You can thus understand them as part of the driver stack between the OS and the function driver (at the bottom of the stack, it actually interacts with devices).

Here’s how MS shows this architecture in its MS Learn article “What is a driver?

Counting MS 2006 Drivers.diagram
The driver at the bottom of the stack that communicates with a device is a function driver; according to the MS Learn item, filter drivers do “auxiliary processing” which may involve monitoring, verifying, translating, or otherwise manipulating in- and out-bound stack communications. By convention app to device communication moves down the stack, while device to app communication goes the other way.

PowerShell Details

Here’s the PowerShell that Copilot handed to me in response to my query, including comments (start with a # character):

#Get all the drivers from the online Windows image
$drivers = Get-WindowsDriver -Online -All
# Filter the drivers by the date of June 21, 2006
$drivers_2006 = $drivers | Where-Object {$_.Date -eq "6/21/2006"}
# Count the number of drivers with that date
$drivers_2006_count = $drivers_2006.Count
# Display the number of drivers and their names
Write-Output "There are $drivers_2006_count drivers dated 6/21/2006 in the online Windows image."
Write-Output "The names of the drivers are:"
$drivers_2006 | ForEach-Object {Write-Output $_.OriginalFileName}
# Display the total number of drivers
$alld = $drivers | Where-Object {$_.Inbox -eq "True"}
Write-Output "There are $alld.count total Windows drivers in the online Windows image."

Some of the lines shown above break across two lines in the browser, but are actually single PowerShell commands. If you run them, you must put them on a single line. I just ran the commands in sequence, one at a time as you can see in the lead-in graphic. I cheated, though: I simply output $alld.count in the last line shown. The PowerShell shown above wraps this in some explanatory text.

Facebooklinkedin
Facebooklinkedin

2006 Microsoft Device Driver Date

Here’s an interesting bit of administrivia. Look at any number of generic drivers inside Microsoft Device Manager. Invariably you’ll see some interesting and apparently ancient items. They’ll show Device Provider: Microsoft and a Driver Date of 6/21/2006. On a Windows 11 test machine just now, for example, I saw that very date under six-plus headings. That included Batteries, Bluetooth, ACPI, Remote Display Adapter, Device Firmware,  and USB . What’s special about this 2006 Microsoft Device Driver date anyway? Good question!

Understanding the 2006 Microsoft Device Driver Date

As it turns out, 6/21/20016 was the day Windows Vista released to manufacturing  (aka RTM date). Since then, when MS supplies a driver for a non-Microsoft device it uses this date. This pushes the driver far back in time. As Device Manager chooses a driver to install it picks the best match for its device ID AND the one with the highest version number and the most recent date.

Why do this? If the OEM (or some other 3rd party with driver signing authority) produces a driver, it will bear a newer date (and possibly a higher version number). Thus, the other driver gets selected and installed. This ensures Windows always installs the best possible driver for any device. And, most of the time, it works!

The MS Driver Date Rationale

As MS updates generic drivers, it increments the driver version number. But it leaves the date at 6/21/2006. That way if a third-party driver comes along, it will almost always trump the MS generic driver version.

Why use the Vista date? Raymond Chen’s MS blog on this topic (2/8/2017) explains things in a bit more detail. A PC Magazine story from the same year supplies another crucial quote from an MS developer:

since only drivers as far back as Vista are compatible with new versions of Windows, every driver should have a date newer than Vista RTM, preserving the driver you installed as the best ranked driver.

So now we know why certain MS-supplied drivers go back to the start of the “modern Windows era.” Good stuff!

 

Facebooklinkedin
Facebooklinkedin

New Canary Notepad Builds Character

When I saw @JenMsft’s Tweet yesterday,  I knew I had to have it. A new Notepad version now includes character counts in the (bottom-line) status bar. If you squint, and look bottom right, you can see it in the lead-in graphic: 10,852 characters. Thus, when I declaim that the new Canary Notepad builds character, I’m not talking about personality traits like gumption and perseverance. I’m talkin’ numbers, baby!

Exactly How New Canary Notepad Builds Character

Over time, MS has been revamping and improving the Notepad app. Indeed, it now comes from the MS Store and lives in the Program Files\WindowsApp file hierarchy (version 11.2311.29.0 has these particular goods). Indeed, I’ve seen some discussion that it might even gain more code editing and formatting smarts, a la Notepad++.

But this current version far exceeds the capability of its predecessor (e.g. the version still running in Windows 10). That older iteration lacks the bottom status bar completely. It’s got no settings controls, either: you must do all that stuff using menu bar entries.

A Different Update Drill…

Optimistically, I went looking for the newest Notepad version on one of my Canary test PCs when the news about the character counts came out. I should’ve known better. I had to open the Store, click the Library entry, then Update all. After that, as you can see in the closing screencap below, I obtained “new Notepad satisfaction.”

New Canary Notepad Builds Character.in-store

Once I visited the Store, I was able to update Notepad to see its new character count ability.

Facebooklinkedin
Facebooklinkedin

Team Lead Sez: Winget Upgrade Winget

If you read this blog, you know I’ve been reporting for months about interesting issues that occur in PowerShell when winget tries to update itself. In a Tuesday Tweet MS Team Lead Sez: Winget Upgrade Winget. I take this to mean that they’ve solved the issues (for the stable version at the moment, previews planned for some future date) related to winget upgrading itself. Good stuff!

Why Team Lead Sez: Winget Upgrade Winget

I’ve interacted with the afore-mentioned Winget Team Lead, Demitrius Nelon, repeatedly in the last few months on this very topic. In fact, we’ve agreed that the issues of an application updating itself can be both tricky and challenging (it’s a kind of Catch-22, in the most classic sense).

And now, I find myself in an interesting situation. I can’t wait for the next stable version of winget to come along, so I can try updating it using winget itself. But the most recent release dates back to November. I can’t find any info on when the next release is coming out … goes off to message Demitrius on X … will report any responses received back here.

Note added 2 hrs later: Mr.Delon resonded to my inquiry about when the next winget stable release might hit. According to his reply,it could happen for an incremental winget 1.6 version before year’s end. If not, 1.7 is scheduled for February 2024. Now we know!

I just checked a representative sample of test and production PCs and there’s nothing in the queue for a winget self-upgrade just yet. But it should be interesting to see how it all plays out. Stay tuned: I’ll keep you posted.

Facebooklinkedin
Facebooklinkedin

Windows 10 Lifecycle Changes

If I’m reading its HTML metadata correctly, Microsoft updated its Lifecycle FAQ = Windows document yesterday (December 5).  That’s when they added information about Extended Support Updates (ESUs) beyond the Windows 10 EOL date of October 14, 2025. ESU is a paid-for kind of support that allows licensees to get updates even after that cut-off date. Let’s explore what these Windows 10 Lifecycle changes  could mean.

Exploring Windows 10 Lifecycle Changes

For previous versions of Windows (e.g. 7) MS offered ESUs only to MS customers with existing paid-for support or licensing agreements. If I’m reading the afore-linked FAQ’s text correctly (see lead-in graphic), ordinary users (“individual users”) will also be eligible to pay for and receive these updates. That should be interesting.

I asked Copilot this question “How much did MS charge for ESU on Windows 7?” Here’s how it answered (superscript numbers 1-3 link to the sources for this information):

According to the web search results, Microsoft charged different amounts for Extended Security Updates (ESU) for Windows 7 depending on the edition and the year of purchase. For Windows 7 Professional, the ESU prices were $50, $100, and $200 per device for the first, second, and third year respectively1For Windows 7 Enterprise, the ESU prices were $25, $50, and $100 per device for the same period1However, some customers could get ESU for Windows 7 for free through Windows Virtual Desktop or other support contracts23.

Given that EOL for Windows 7 was January 14, 2020, let’s factor in some inflation. That makes it exactly 5.75 years between that date and the Windows 10 EOL. Using a low-ball average inflation rate of 2.5% over that period means adjusting the foregoing numbers by 14.4% or thereabouts. That means $50 becomes $57, $100 → $114, $200 → $228. You can do the math for the rest (but I think the Professional prices are the ones to go by).

Are They Ready to Rumble?

I’m forced to speculate that MS is adding individual consumers to its upcoming ESU coverage because they believe they left money on the table during the Windows 7 extended service period. This essentially brings businesses and users who are willing to pay for coverage, but who don’t have a licensing agreement or equivalent already in place with MS. It could easily be as big a revenue stream as the covered Windows 7 population was when EOL rolls around.

Inertia is indeed a strong force in business affairs. And sometimes, smaller businesses — especially sole proprietorships — can strongly resist change. This should be interesting to watch and try to figure out. I’m not sure if I should be impressed or appalled. Stay tuned: I’ll tell you…

PS Thanks to Sergey Tkachenko at WinAero.com for bringing this to my attention. I figured out the date info on my own…

Facebooklinkedin
Facebooklinkedin

PowerShell Out-GridView Grants Output Insights

OK, then. I’m taking Matt Hester’s fabulous Learning PowerShell course over at LinkedIn. Right now, I’m into the third of three modules. I have to say: it’s been great! Yesterday, among lots of other incredibly useful nuggets, I learned about the Out-GridView cmdlet. To say that PowerShell Out-Gridview grants output insights for most cmdlets is like saying “The Grand Canyon is Big.” But that makes it no less true or interesting — to me, at least. Let me explain…

What PowerShell Out-Gridview Grants Output Insights Means

PowerShell cmdlets manipulate data objects. These have named properties. When you output them, you can see the values associated with all properties for an object instance (rows). You can also see the values associated with individual properties for all instances (columns).

Simply put, what Out-Gridview does is to grab the values associated with each instance’s properties and throw them up in a window like the one you see in the lead-in graphic. As you can see in the top line of that window this shows the results of the get-service cmdlet, from which the resulting objects’ Name, Status and RequiredServices property values are all shown. This is cool and helpful all by itself, but there’s more: a LOT more.

Working the GridView Window

Let’s call the windowed output from Out-Gridview a “GridView Window.” It’s actually an output from the Interactive Script Editor (ISE) that’s part of the overall PowerShell runtime environment.

In this GridView Window, you can click on any column head therein to sort the data by the values in that column. By default it comes sorted on whatever shows up in column 1 (aka “alphabetical order, by Name”). But you can also sort on Status, or RequiredServices as well.

Wait! There’s still more:

  • You can add all kinds of filters to the output shown in the Window
  • Types of filters include
    • contains (string or value partial matching anywhere)
    • does not contain (string or value absent)
    • starts with (initial string character matching)
    • equals (string or value exact match)
    • does not equal (string or value not matched or equal)
    • ends with (ending string character matching)
    • is empty (property has no value defined or is null)
    • is not empty (property has a value defined or is not null)
  • You can add as many filters as you like, change them as you go, and the GridView Window’s contents change dynamically to keep up
  • Data shows up as you type

Overall, this is a great way to examine data from cmdlet outputs in PowerShell. It means you don’t have to scroll up and down in the command window, nor do you have to save the data to a file and open it using your favorite editor. The gridview data is, however, evanescent (when you close the window, the data is gone). It doesn’t do away with piping output into files: it’s just a (temporary) alternative, but a darned good one!

Facebooklinkedin
Facebooklinkedin

Windows 10 Copilot Limitations

Dang! I’d have to call my desktop experience “a swing and a miss.” I jumped on the KB5023378 Preview update, expecting to get Copilot out of that amendment. Wrong! Among the first words in the afore-linked update Support note, key Windows 10 Copilot limitations emerge. This includes this scoping statment: “This [Copilot addition] only applies to devices that run Home or Pro editions…” (emphasis mine). As you can see from the lead-in graphic for reasons that are too long and tedious to explain, this PC is running Windows 10 Enterprise. Sigh.

Bitten By Windows 10 Copilot Limitations

Sigh. It just goes to show that my personal dark cloud hasn’t quit hovering in the vicinity. I’ve often observed that if MS slides an update out as a gradual release, my PCs are invariably in the rear guard. This is something of a spin on this all-too-familiar situation, but nontheless an amusing one.

Fortunately, my physical desktop is not the only Windows 10 image I can run. I just jumped over to the ThinkPad P16 Mobile Workstation where I have a couple of Win10 images from which to choose. My cleanest one (installed last week for an AskWoody column) is installing same right now. When it reboots, I expect to see a Copilot icon in the Taskbar. Here goes…

Overall, install time on a 4GB Gen2 VM was quick. The whole thing took under 3 minutes to download, install, then cycle through post-reboot update processing. Good stuff. But did I see Copilot on the Taskbar when it was all done? Nope.

I had to turn on and relaunch the VM to come back from the update reboot. And another reboot didn’t bring it up, either. Nor did a right-click in the Taskbar show a Copilot control. No Copilot item under Settings → Personalization, either. Very interesting. I’m obviously going to have to learn more to get Copilot working on my Windows 10 Pro VMs. Should be fun: stay tuned!

That Old Familiar Sensation

I see in the Windows Latest coverage (Mayank Pamar) that “Microsoft has also warned that the feature may not be available on devices with compatibility issues, including devices with an incompatible app.” Why do I get the feeling that includes either my ThinkPad P16 Mobile Workstation or its Hyper-V runtime environment for my 2 Windows 10 VMs on that machine?

Note Added December 6: Maybe I should be grateful none of my Win10 PCs got Copilot? I’m seeing numerous reports that MS has put updates for both 10 and 11 on hold because of Copilot issues. I guess waiting is better than troubleshooting problems of Microsoft’s making. Isn’t that just the way things go here in Windows-World?

Facebooklinkedin
Facebooklinkedin

Author, Editor, Expert Witness