Category Archives: Letters from the Ed

{WED} Windows 10 Power Options Include NVMe Idle Timeout

Here’s another factoid that falls under the heading of “I didn’t know Windows 10 could do that.” In this case, the particular widget in question is Power Options (Control Panel). The right PowerShell command or its equivalent Registry tweak makes an NVMe item appear. Actually, this item occurs under the Hard Disk entry. Its full name is Primary NVMe Idle Timeout (see below). In fact, it defines an idle timeout value for an NVMe SSD in the boot/system role.  Hence my post title: Windows 10 Power Options Include NVMe Idle Timeout. Here’s how it looks:

Windows 10 Power Options Include NVMe Idle Timeout.nvme-info

Until you enable this attribute (PowerShell) or set the right RegKey value, you won’t see this in Power Options.

In case you didn’t already know, NVMe stands for Non-Volatile Memory Express. Usually, it’s a kind of flash memory that might be a solid state disk (SSD), a PCIe add-in card, an M.2 card, or something similar. NMVe is incredibly popular because it’s fast and increasingly affordable. Nearly all of my newer systems boot from an NVMe drive. Lots of vendors make NVMe drives. Right now, my systems include such drives from Samsung, LiteOn and Toshiba.

Make Windows 10 Power Options Include NVMe Idle Timeout

In fact, to see this entry in Power Options, you must reverse Windows 10’s default setting. Thus, the operative part of the command string reads -ATTRIB-HIDE. The minus sign does the magic that makes the entry appear. You can cut and paste the whole string (shown below)  into PowerShell. For illlustration, it’s also shown in the screencap that follows the command-line text input.

powercfg -attributes SUB_DISK D639518A-E56D-4345-8AF2-B9F32FB26109 -ATTRIB_HIDE

Windows 10 Power Options Include NVMe Idle Timeout.ps

Entering the command gives zero feedback, but the change shows up immediately in Power Options.
[Click image for full-sized view.]

 The following command string makes this NVMe entry invisible in Power Options:

powercfg -attributes SUB_DISK D639518A-E56D-4345-8AF2-B9F32FB26109 +ATTRIB_HIDE

Of course, the only difference is the plus sign in the final command element. The preceding value is a GUID for this particular Power Options setting.

Do It in the Registry, If You Prefer

The name of the corresponding registry key is, in fact, the afore-cited GUID. The highlighted Attributes value controls if the NVMe item is visible in Power Options. Here again, a value of 0 makes the option visible; 1 makes it disappear. String alert! The fully-qualified registry key name is:

HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\d639518a-e56d-4345-8af2-b9f32fb26109

Just for the record, HKLM is a common abbreviation for HKEY_LOCAL_MACHINE. For better visualization, here’s a screencap of all that good stuff:

Windows 10 Power Options Include NVMe Idle Timeout.regedit

The complete registry location occurs just below the command menu line, and includes two (2) GUIDs in its path.
[Click image for full-sized view.]

Once again, a value of zero (0) for Attributes means the NVME timeout item shows up in Power Options. A value of one (1) means it’s hidden.

Does NVMe Idle Timeout Really Matter?

Looking at the default value (200 ms), I’m inclined to think not. That’s so fast that altering the value won’t affect the PC much (or at all). But it’s always interesting to learn something new about Windows 10. There’s a lot more going on in general, and in Power Options, than one might think. And who knows? Someday, this tidbit may come in handy.

[Note] Thanks, Sergey Tkachenko/WinAero.com for covering this topic. He posted on this topic sometime in the last 24 hours. (Alas, his posts aren’t dated.) Check it out: it’s entitled Add Primary NVME Idle Timeout to Power Options in Windows 10. Bolshaya spaciba, Sergey!

Facebooklinkedin
Facebooklinkedin

{WED} Diagnosing Dead Windows 10 USB Flash Drives

I’ve probably owned 100+ USB Flash Drives (UFDs) over the years. In that entire time, I’ve had exactly three of them fail. My most recent failure occurred on Monday (March 16). This happened as I tried to build a 1909 bootable installer using the Media Creation Tool. The OS  downloaded successfully. But before the UFD finished building, MCT errored out (“There was a problem running this tool” as shown below). After a second failed try, I found myself diagnosing dead Windows 10 USB flash drives. This time around, the death was irreversible and indisputable. I’ll explain what I found so others can benefit from this experience.

Diagnosing Dead Windows 10 USB Flash Drives.wct-error

The error message doesn’t identify media as the problem explicitly, but it clearly identifies a problem and it fails to complete.
[Click image for full-sized view.]

Error Message Helps Diagnosing Dead Windows 10 USB Flash Drives

The error code is 0x80042405, so I turned to the Microsoft Error Lookup Tool for more information. The following PowerShell session screencap shows what it told me, which was both interesting and mysterious.

Diagnosing Dead Windows 10 USB Flash Drives.melt-output

Error message lookup reports a problem with the target disk, with key term “unsupported configuration.”
[Click image for full-sized view.]

I got my next real clue when I tried to find the UFD in Disk Management. It failed to finish loading until I removed the UFD. Obviously, it was having issues recognizing the drive. Then I loaded up MiniTool Partition Wizard (MTPW) and got the following information: “Bad disk.”

Diagnosing Dead Windows 10 USB Flash Drives.bad-ufd

MiniTool Partition Wizard calls out the UFD’s condition as a “bad disk.” That can’t be good!
[Click image for full-sized view.]

None of MTPW’s built-in facilitiees — partition recovery and data recovery, to be more specific — could find any files on the device. There was no path to recovery or reformatting at all. As a last ditch effort, I tried HDD Guru’s HDD LLF Lower Level Format tool (aka HDDLLF.4.40.exe). It couldn’t do anything with the UFD, either. To me that proves conclusively that this UFD is dead, dead, dead. End of story, except to observe that I paid less than US$10 for this 16GB Mushkin ATOM device, so it’s a tolerable loss. Next!

Facebooklinkedin
Facebooklinkedin

{WED} Microsoft Technet Gallery Retires June 2020

Here’s an interesting news item. On March 9, Robert Outlaw, Lead Program Manager, Docs.Developer Experience posted the immanent retirement of the Microsoft Technet Gallery. This is a long-time “public space” in the Microsoft DOCs web pages. Here, Microsoft MVPs, developers and community members have made a collection of over 25,000 PowerShell scripts for all and sundry server and desktop management tasks. But according to Mr. Outlaw, the Microsoft Technet Gallery retires June 2020. As the snippet at the head of this story says, the exact date for retirement is still TBD.

Technet Gallery Retires June 2020
Technet Gallery retirement post header info

[Click here for full-sized view.]

If Microsoft Technet Gallery Retires June 2020, Then What?

Having just delved into a Wayback Machine site snapshot from March 16, 2020, I see that the site is HEAVILY archived there. In fact, I couldn’t find a single page that wasn’t already present in that online archive. Interestingly, getting to the leaf (script) level in the Technet Gallery is like time travel. That’s because you’ll go back to the latest update to the script page itself when you navigate that far in the gallery. Thus, for an AD script named List all groups or users in an OU, I found myself back to October 2015.Under Networking, a NAT Detection script links to a September 2015 page.

I could go on and on, but I’m sure you get the idea. It is: while you may not be able to access the Technet Gallery pages live through Microsoft Docs come June 2020, that’s not really a problem. You’ll still be able to get to the archive through the Wayback machine. As far as I can tell, what’s available there is a full, faithful and complete copy of the whole shebang. Simply change your favorite for this valuable scripting resource to the last, best and final Wayback Machine snapshot taken just before MS pulls the plug. That way, you’ll retain access to its contents. When MS announces that date, I’ll provide a link to that ultimate snapshot as an addendum to this blog post.

Stay tuned!

[Note:] Here’s a shout out to Martin Brinkmann at ghacks.net. His story Microsoft announces retirement of the TechNet Gallery (and all its scripts) clued me into this upcoming retirement. Thanks, Martin: immer nochmals “Vielen Dank!”

Facebooklinkedin
Facebooklinkedin

{WED} Freezing Visual Basic Signals Impending EOL

Surprise! An interesting item showed up on the Microsoft Devblogs on March 11 (Wednesday). Innocuously enough, it’s entitled “Visual Basic support planned for .NET 5.0.” To begin, the story explains that Visual Basic will get a bunch of capabilities to support .NET 5/.NET Core. Next, it proffers a list of new application types, and benefits of long-term stability. Then comes an interesting paragraph. Its import is that MS freezing Visual Basic signals impending EOL (End-of-life) for this language. Here’s what I’m talking about. (I added the bold emphasis):

Going forward, we do not plan to evolve Visual Basic as a language. This supports language stability and maintains compatibility between the .NET Core and .NET Framework versions of Visual Basic. Future features of .NET Core that require language changes may not be supported in Visual Basic. Due to differences in the platform, there will be some differences between Visual Basic on .NET Framework and .NET Core.

Freezing Visual Basic Signals Impending EOL.oldlogo

Here’s what the Visual Basic (aka VB) logo looked like back in the day. Microsoft Basic first appeared as Altair Basic in 1975!
[Click image for full-sized view.]

What Freezing Visual Basic Signals Impending EOL Really Means

Once upon a time, Bill Gates dropped out of Harvard to jump into computing. He and a Seattle friend, Paul Allen, founded Microsoft on April 4, 1975. Their very first product was a BASIC interpreter for Altair 8800 microcomputer. Later its name became Microsoft Basic. Later still, that changed to Visual Basic. And now, the end of its continued growth and support is in sight.

Gosh! Talk about the end of an era. In fact, it’s more like the the end of one universe, and the beginning of another. Honestly, I see it as a telling sign — amidst a raft of other, similar but lesser signs. Thus, there’s no doubt that Microsoft has reinvented itself completely. Azure and the cloud really do rule this roost, and that’s where Microsoft now lives. The rest of us are just catching up.

Personally, my first encounter with Basic came as a CompSci grad student at UT Austin in 1979. Many years later, I helped teach 5th and 6th graders Microsoft Small Basic at Cactus Ranch Elementary. This happened in 2015 and 2016 through their programming club. (In fact, my son was a participant, and I wanted to help out.) To me, it’s ironic that the URL for Small Basic is https://smallbasic-publicwebsite.azurewebsites.net/. The new already encapsulates the old. Soon, the new will leave the old behind completely. All I can say is: Wow!

Facebooklinkedin
Facebooklinkedin

{WED} Warning! Latest GeForce 442.59 May Cause BSOD

I’ve seen it before, and I’ll probably see it again. I just updated my production desktop to the latest GeForce driver, and it threw a BSOD. It’s one of the “mystery codes,” too: SYSTEM_EXCEPTION_THREAD_NOT_HANDLED. But when I say that the latest GeForce 442.59 may cause BSOD I already know what’s causing it. There’s a bug in the driver installer (not the driver) that causes a crash when it finishes the install. Thus, the driver itself is properly installed and working, as this GeForce snippet clearly shows:

Latest GeForce 442.59 May Cause BSOD.driver-ok

This snippet from GeForce Experience shows the latest driver version — 442.59 — is properly installed and working. Also shows yesterday’s date.

If Latest GeForce 442.59 May Cause BSOD, So What?

Yeah, it’s kind of disturbing — upsetting, even — to see your PC go down in flames with a BSOD. But as BSOD’s go, this one’s fairly benign. It would’ve bothered me a lot more if I hadn’t seen a run of these same BSODs in 2018 and 2019, right at the end of the GeForce driver install. Thus, I post this blog as a public service to warn others who may be keeping their GeForce drivers up-to-date. Before you do the install, close all open applications and save your work. If you’re seriously concerned, make an image backup just before running the driver install. But since the net result is a new and working driver, I’m inclined simply to say “Here they go again.” And of course, to let my readers know that they too may fall prey to this gotcha.

OTOH, you could decide to skip this update and wait and see if the next one fails to provoke a BSOD. I’m happy to keep plugging away at this stuff, and will update this blog when the next driver comes out. If it throws another BSOD I’ll let you know. If it doesn’t, ditto. Stay tuned!

[Note added 3/19/2020, afternoon] I just installed version 442.74 on my production PC. It got all the way through the install without a glitch, and asked me if I wanted to reboot. I was otherwise engaged so I did not. Just rebooted a minute or two ago, and everything concluded successfully. One can hope it’s because the installer issue — whatever it may have been — is fixed, or no longer an issue. Done!

Facebooklinkedin
Facebooklinkedin

{WED} Why Is Win7 Marketshare 25%?

It’s been about six weeks now since Windows 7 hit end-of-life (EOL). Yet NetMarketShare still shows it with over 25% on active desktops. Statcounter shows it at over 30%. Why is Win7 Marketshare ~25% or higher? Who’s running the old OS? I have my suspicions, and would like to share them.

Win7 Marketshare 25%.nms-graph

Despite 6 weeks since EOL, around a quarter of all Windows OS users under NetMarketShare’s purview at still running Windows 7. Who and why are the questions I want answered.
[Click image for full-sized view.]

Just for the record, the US Government’s tracking site — analytics.usa.gov — shows a lower share of 15.4%. (NetMarketShare’s exact number is 25.2%, and Statcounter’s is 30.57%.) This already suggests that some continuing Windows 7 use occurs on PCs that don’t access US Government websites. In turn, this tells me that it’s likely that 40% of continuing Windows 7 users are outside the USA, perhaps even outside North America.

If Win7 Marketshare 25%, Who’s Using It and Why?

No matter what the real number is, I believe it may be somewhat bigger than any of the numbers already presented. A certain number of Windows 7 systems are situated in kiosks and in embedded situations. These are unlikely to access the Internet. That means they wouldn’t show up in any of the monitoring sites already cited. Thus, it’s important to understand that the numbers are probably at least 1-2% low. In fact, they may be as much as 5% low, depending on how many “quiet” Windows 7 PCs are out there.

User Classes Include Individuals, SMBs and Governments

As far as visible numbers go, my guess is that they’re split pretty evenly between SMB users and private individuals. My gut feeling is that enterprises have mostly (90% or better) migrated already. A a significant number of government (local, state, and federal/country) agencies or departments are paying for extended security updates, too. Essentially, they’re buying time while they get onto the migration path. News stories suggest the US Government is much less involved in this program than they were during the XP to Windows 7 transition. Then, the US DoD bought as many as 2 million seats worth of such support. That said, I’ve seen news that report the German Government is spending ~800K Euros for 33,000 seats’ worth of Windows 7 extended support. Worldwide, it’s likely that the number of paid seats (which MS does not publicly disclose) is in the 1-2 million range.

For private individuals, numerous factors explain die-hard Windows 7 use. These include laziness, inertia, and unwillingness or inability to spend on upgrades. Also, there could be a perceived lack of need to upgrade. (This might reflect an imperfect understanding of growing levels of security threats, or “if it ain’t broke, don’t fix it.” at work.) SMBs share all these reasons, too. They may also be bound by continued use of legacy applications (especially custom- or in-house-built code). These often won’t or can’t be upgraded to Windows 10 affordably or easily.

How Long Will Win7 Usage Stay High?

I am surprised that this number remains so large. I wonder how long it will take for that number to erode further. I’m especially keen to see when it might go below the 10% range. This generally indicates a mostly moribund Windows OS (look at Windows 8.1’s relatively tiny 3.48% figure). It should be an interesting phenomenon to watch. Thus, I’ll report back in on this from time to time (probably at 3-6 month intervals).

Facebooklinkedin
Facebooklinkedin

{WED} DISM /Resetbase Bites Back

I’m a profound fan of the DISM (Deployment Image Servicing and Management) command. But I found myself surprised by the behavior of the /resetbase parameter today. For the record, the complete command syntax is DISM /online /cleanup-image /startcomponentcleanup /resetbase. Silly me: I understood that /resetbase would not allow changes to the base established. But I thought the /startcomponentcleanup would run first, and then the base would be reset. Wrong! Today, I tried it on my Surface Pro 3, and DISM /resetbase bites back: the two reclaimable packages I thought would be cleaned up are now frozen into my runtime image. Sigh. Here’s some illustrative PowerShell output, made after I’d already used the /resetbase option:
DISM /Resetbase Bites Back.ps-sequence

Notice that even though I ran a /startcomponentcleanup command between a pair of /analyzecomponentstore commands, the 2 reclaimable packages cheerfully persist. Sigh.
[Click image for full-sized view.]

Normally, running the dism /online /cleanup-image /startcomponentcleanup command would result in the second /analyzecomponentstore output reciting zero reclaimable packages, and no recommendation for component store cleanup. But I have no one but myself to blame for this, because I ran the /resetbase myself, not knowing it would freeze first and then fail to clean up at all. That’s why I like playing with test machines: not much real harm results even when things don’t work. Or when they don’t work the way I expect them to…

If DISM /Resetbase Bites Back, What to Do?

Not much, actually. I can either restore my most recent backup and do things right, or I can wait for 2004 and start afresh after that feature upgrade. Doing things right means: run dism /online /cleanup-image /startcomponentcleanup on the restored OS, then run the /resetbase version of that command to freeze the cleaned-up component store. I’m not sure it’s worth the effort, what with 2004 due out in the next month or two. OTOH, the Surface Pro 3 is a test machine and I won’t lose anything except time if I restore the latest Macrium backup, apply pending updates, and try again (the right way).

But now I know something important: if you want to use the /resetbase option in DISM, you should run the DISM /online /cleanup-image /startcomponentcleanup command first. That will clean up anything reclaimable. Then, when the number of reclaimable packages is zero, use the /resetbase option. Now, I know. Hopefully, you too can learn from my mistake. And so it goes, here in Windows-World!

Facebooklinkedin
Facebooklinkedin

{WED} Offline Samsung NWP2850 Misconfiguration Fix

If only I knew why this happens, I’d be happier living with this occasional gotcha. Alas, it seems that some Windows Update items reset the TCP port associated with my Samsung monochrome laser printer (NWP2850). When that happens, the printer shows up offline. Bizarrely, Printers and Devices reports the device as offline but offers no further help. I’ve learned to visit the right-click item named “Printer properties” when that happens. Resetting its IP port usually brings the printer back online. That’s what I offer up here, as an offline Samsung NWP2850 misconfiguration fix. Here’s what that properties window looks like with its Ports tab on display:

Offline Samsung NWP2850 Misconfiguration Fix.ports

From time to time a port named “SamsungNWP” with no IP address shows up checked here. This screencap shows the correct assignment.

What Is the Offline Samsung NWP2850 Misconfiguration Fix?

First, I have to rigure out the IP address assigned to my Samsung printer. NWP stands for “networked printer” BTW, so I have to scan my local network to find its current IP address assignment. For that purpose, I use NirSoft’s excellent NetBScanner. It produces a listing that tells me just what I need to know, as shown here:

Offline Samsung NWP2850 Misconfiguration Fix.netbscan

The Samsung printer shows up about half-way down the list at IP address 192.168.1.126. That’s why I checked the corresponding box in the previous window.
[Click item for full-sized view.]

It’s nice to run into a simple network problem that’s easy to fix in Windows 10. If only, if only, I didn’t have to run into it so often! But that’s the way things go sometimes. I’ve learned to live with it.

Facebooklinkedin
Facebooklinkedin

{WED} Another End of an Era: MS Announces Impending Final MCSA MCSE MCSD Retirements

Thanks to a rare weekend post from Martin Brinkmann at ghacks.net, I can share some big news. I now know MS Learning has a date for official retirement of its-big name 4LA (four-letter acronym) certs. This comes from an MS Learning Blog post and Alex Payne, GM of Global Technical Learning. Alas, these old stalwarts are all headed for retirement. Yes, that’s right: MS announces impending final MCSA MCSE MCSD retirements for June 30, 2020. Although I knew it was coming, it still has a big impact. In fact, rampant popularity of the MCSA and MCSE propelled me into the certification game. (I remember: this happened between 1994 and 1997). And 1997, of course, is when Exam Cram launched at Coriolis Press. (Pearson took it over in 2002, where it remains a pretty big deal today).

Here’s a quote straight from the blog post:

 

Since we announced our focus on role-based training and certifications in September 2018, we’ve added a total of 34 certifications to our portfolio across Azure, Modern Workplace, and Business Applications. As we continue to expand on role-based learning offerings, all remaining exams associated with Microsoft Certified Solutions Associate (MCSA), Microsoft Certified Solutions Developer (MCSD), Microsoft Certified Solutions Expert (MCSE) will retire on June 30, 2020.

When MS Announces Impending MCSA MCSE MCSD Retirements, Then What?

Of course, this shift has been underway at Microsoft Learning since September 2018. MS is axing its big-name, freestanding certs, and promoting role-based certifications. There are a lot of them around (34, according to the preceding quote). In fact, MS now lumps them together with MTA and MOS certs. (Explanation: MTA = Microsoft Technology Associate, and MOS = Microsoft Office Specialist.) All fall under various job roles at the “Browse all certifications” page at MS Learning. Overall, these include:

AI Engineer DevOps Engineer Messaging Administrator
Administrator Developer Modern Desktop Administrator
Data Analyst Enterprise Administrator Security Engineer
Data Scientist Finance & Operations Consultant Solutions Architect
Database Administrator Fundamental Skills (MTA) Teamwork Administrator

Heads-up: that’s 15 roles in all, if you’d care to count them.

Thus, when retirement rolls around at mid-year in 2020, MS certification finishes its total make-over. Truly, I’m a little saddened and nostalgic about this evolution, but it’s inevitable for many reasons. Of course, Azure leads this new parade. It proves the importance of virtualization and (or in) the cloud. Get ready: It’s almost time to say hello to a brave new world.

Cheers!

MS Announces Impending Final MCSA MCSE MCSD Retirements.table
The first 16 of 79 role-based MS certs (including MTA and MOS items).

Above, you’ll find the first 16 (of 70-plus items) that show under “Browse all certifications” at MS Learning right now. It’s downright fascinating…

Facebooklinkedin
Facebooklinkedin

{WED} Future Win10 Driver Updates All Optional

Here’s an interesting tidbit from the MS Hardware Dev Center, posted February 18. It comes from Senior Program Manager Kevin Tremblay who focuses on Windows OneCore (OS kernel, methinks) and “device enablement” (LinkedIn Profile). Going forward, device driver updates for Windows 10 will always show up in Windows Update as “Optional updates.” Because future Win10 updates all optional now, that means users must initiate such updates manually. In fact, working through the process means:

1. Clicking Optional Updates

2. Checking boxes next to one or more available device driver updates

3. Clicking a “Download and install” button on the Optional updates page to initiate (and approve) those activities.

Here’s what a sample Drive updates window looks like, showing the checkboxes and the “Download and install” button. I’ve already made use of this feature myself on Fast Ring Insider Preview test machines, and can confirm it works as it’s supposed to from personal experience.

Future Win10 Driver Updates All Optional.example

Going forward, Win10 users will have to acquiese and participate actively, before WU will install device drivers on their PCs.
[Click image for full-sized view.]

If Future Win10 Driver Updates All Optional, Then What?

Previous Win10 feature updates have come in for qvetching, criticism, and occasional cries of anguish because of updates installed automatically. They could show up, without prior warning for users. This denies them the opportunity to refuse, or to take preventive measures (a backup image to restore should something go sideways, for example). As far as device drivers go, this is now off the table. Good on Microsoft, for making this change. Because drivers are a perennial and predictable source for post-update instability, this new approach provides a way to avoid trouble, rather than having to clean up a post-update mess. But wait? Isn’t this the way things worked in Windows 7 and 8.x versions. What was once old, is now new again, it seems. A welcome bit of news nevertheless!

Facebooklinkedin
Facebooklinkedin