The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Archive for the ‘Windows’ Category

Ookla speedtest CLI for Windows has some undocumented arguments to accept license and GDPR

Posted by jpluimers on 2023/10/11

I had speedtest-cli running on MacOS and various Linux machines, but not yet on Windows (see for instance my post Ubuntu: Fixing the myserious “Failed to stop apt-daily.timer: Connection timed out”).

[Wayback/Archive] Install and Test Internet Speed with Speedtest CLI Command Line – NEXTOFWINDOWS.COM reminded me there is a Speedtest CLI for Windows download at at [Wayback/Archive] Speedtest CLI: Internet speed test for the command line, but I am a an automation/scripting/devops person, so luckily there are also [Wayback/Archive] Chocolatey Software | Speedtest by Ookla (don’t get [Wayback/Archive] Ookla.Speedtest download, as that is the GUI version).

Both the Chocolatey and winget packages are named the same, so that is quite confusing. This is how I have set them apart:

Read the rest of this entry »

Posted in *nix, *nix-tools, Batch-Files, Chocolatey, DevOps, GDPR/DS-GVO/AVG, Internet, ISP, KPN, Notepad++, Power User, Privacy, Scripting, SpeedTest, Windows, xs4all | 2 Comments »

Getting the Chocolatey shimgen generated shim target

Posted by jpluimers on 2023/10/10

For tomorrow’s post Ookla speedtest CLI for Windows has some undocumented arguments to accept license and GDPR I neede the full path to the speedtest.exe which I had installed using Chocolatey.

I know chocolatey uses a shim that redirects to the actual executable, so a simple where speedtest.exe would not cut it.

My guess would be that the generated shim allowed to either get the target pathname out, or have the target pathname encoded in it.

Luckily the first applies: a few of the shim command-line parameters are in [Wayback/Archive] Chocolatey Software Docs | Executable shimming (like symlinks but better):

You pass these arguments to an executable that is a shim (e.g. executables in the bin directory of your Chocolatey install, not choco.exe):

  • --shimgen-help – shows this help menu and exits without running the target
  • --shimgen-log – logging is shown on command line
  • --shimgen-waitforexit – explicitly tell the shim to wait for target to exit – useful when something is calling a gui and wanting to block – command line programs explicitly have waitforexit already set.
  • --shimgen-exit – explicitly tell the shim to exit immediately.
  • --shimgen-gui – explicitly behave as if the target is a GUI application. This is helpful in situations where the package did not have a proper .gui file.
  • --shimgen-usetargetworkingdirectory – set the working directory to the target path. Useful when programs need to be running from where they are located (usually indicates programs that have issues being run globally).
  • --shimgen-noop – Do not actually call the target. Useful to see what would happen if you ran the command.

But the below dumps show more more (using [Wayback/Archive] Strings – Windows Sysinternals | Microsoft Docs, [Wayback/Archive] clip | Microsoft Docs and post-processing in [Wayback/Archive] Notepad++).

Back to the second solution,

strings C:\ProgramData\chocolatey\bin\speedtest.exe | findstr speedtest.exe

showed

speedtest.exe
..\\lib\speedtest\tools\speedtest.exe
Cannot find file at '..\\lib\speedtest\tools\speedtest.exe' (
speedtest.exe
speedtest.exe

And towards the first,

strings C:\ProgramData\chocolatey\bin\speedtest.exe | clip

resulted in this fragment:

Read the rest of this entry »

Posted in Batch-Files, Chocolatey, CommandLine, Development, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows | Leave a Comment »

Jen Gentleman on Twitter: “Did you know that if you press CTRL + ALT + Tab then the ALT + Tab UI will stay open without you having to continue holding the keys down? 👀” / Twitter

Posted by jpluimers on 2023/09/25

[Wayback/Archive] Jen Gentleman 🌺 on Twitter: “Did you know that if you press CTRL + ALT + Tab then the ALT + Tab UI will stay open without you having to continue holding the keys down? 👀” / Twitter

I didn’t, so I suggested this:

[Wayback/Archive] Jeroen Wiert Pluimers on Twitter: “@JenMsft Works best if you do not use one single hand to press these keys at once.” / Twitter

–jeroen

Read the rest of this entry »

Posted in Keyboards and Keyboard Shortcuts, Power User, Windows, Windows 10, Windows 11 | Leave a Comment »

Figuring out the cause of “Controlled Folder Access” error messages.

Posted by jpluimers on 2023/09/13

Still need to investigate why every now and then Windows Remote Desktop causes this error:

C:\Windows\System32\mstsc.exe has been blocked from modifying %userprofile%\Documents\ by Controlled Folder Access.

Related links about EventID numbers 1123, 1124 and 5007:

This is the place in the Settings where you can enable the Controlled Folder Access feature:

Read the rest of this entry »

Posted in Power User, Windows, Windows 10 | Leave a Comment »

Microsoft Store: update all apps from the command-line

Posted by jpluimers on 2023/09/12

TL;DR

I have converted the below PowerShell one-liner into this batch file (the ^| syntax is to ensure the pipe runs within PowerShell, not within the batch file):

PowerShell 'Get-CimInstance -Namespace "Root\cimv2\mdm\dmmap" -ClassName "MDM_EnterpriseModernAppManagement_AppManagement01" ^| Invoke-CimMethod
 -MethodName UpdateScanMethod'

The why and how

Since I am a CLI person, and some Windows applications are only available on the Microsoft Store, I wanted to be able to initiate an update cycle from the command-line interface.

So I searched for [Wayback/Archive] microsoft store update all apps from the command-line – Google Search and found these to be valuable:

Read the rest of this entry »

Posted in Batch-Files, Development, Microsoft Store, Power User, PowerShell, Scripting, Software Development, Windows, Windows 10, Windows 11 | Leave a Comment »

Seams I might in part be the cause of (#3186) Remove easter egg “You are smarter than the average bear …” by pauby · Pull Request #3276 · chocolatey/choco

Posted by jpluimers on 2023/09/11

Only having really learned to speak English starting in my late teens, I never got the “smarter than the average bear” reference, so I filed what I thought was a bug early 2019: [Wayback/Archive] “You must be smarter than the average bear…” after upgrading to 7zip.install v18.6 and notepadplusplus.install v7.6.2 · Issue #1700 · chocolatey/choco which last year got this useful comment

I had this for several packages now, since I am updating them daily.
I am assuming there is a way to remove versions, which leads to this error until there is a new update.

It was confirmed this summer from

I’m smarter than the average bear at least once or twice a month. I think it might be packages which are pulled back and you happen to have installed that version

The bug got referenced this summer from [Wayback/Archive] Remove warning message about “smarter than the average bear” · Issue #3186 · chocolatey/choco.

This in turn lead to [Wayback/Archive] (#3186) Remove easter egg “You are smarter than the average bear …” by pauby · Pull Request #3276 · chocolatey/choco

That made me realise that for large groups of English speaking people “smarter than the average bear” would actually be a well known thing.

So I searched and learned a thing or two:

Read the rest of this entry »

Posted in .NET, Chocolatey, CommandLine, Development, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows | Leave a Comment »

Windows 10: whitelisting domains so updates still work

Posted by jpluimers on 2023/09/08

The internet access for my mentally retarded brother is fully based on whitelists.

It’s a simple reasoning: his mental abilities is basically a fixed box that does not grow. If he gains one part, he loses on another part.

This makes his risks assessments low and unpredictable at best, especially on the rapidly changing internet, hence whitelisting at the router level.

Whitelisting also implicates I need to update the ever changing list of domains that Windows 10 uses to keep newer versions up-to-date.

If you don’t, then you get an error [Wayback] 0xc1900223 while searching for or a applying updates. The description of that error isn’t accurate; what it actually means is that your computer cannot connect to one or more of the many update locations.

These links should help finding the ones for newer Windows versions (at the time of writing, there was no documentation for Windows 10 21H1 or newer):

Maybe one day someone makes an overview of these in one big worksheet to easily spot the differences. Until then it is a trial and error process every 6 months or so.

Related: [Archive.is] Jeroen Wiert Pluimers on Twitter: “Anyone knows when the 21H1 update of these instructions will be available?  Need to update the site of my mentally retarded brother. Maybe @shanselman or @JenMsft can help me get in touch with the right people for this?”

–jeroen

Posted in Power User, Windows, Windows 10 | Leave a Comment »

Installing the Microsoft To Do app from the Microsoft Store on Windows via the CLI was impossible at first, and requires GUI configuration

Posted by jpluimers on 2023/09/07

I prefer installing applications through the CLI (command-line interface). This way, things can be scripted and installation parameters be stored under version control.

A few months back I published Different ways for installing Windows features on the command line – Peter Hahndorf which wrote way earlier and amended with a few highlights I learned from unsuccessfully trying to Microsoft To Do. Of course that is possible from the GUI by following these links:

  1. [Wayback/Archive] To Do List and Task Management App | Microsoft To Do
  2. [Wayback/Archive] Get Microsoft To Do: Lists, Tasks & Reminders – Microsoft Store

But I don’t want GUI, I want CLI as that is way easier to automate than GUI. I knew this should theoretically be possible from my the above winget post.

Putting this to practice however at first failed. Later I found a GUI-based workaround. So this was not possible purely on the CLI.

This post is both a summary of the most important bits and a reminder for myself to check if installing Microsoft Store via [Wayback/Archive] Winget without a Microsoft Store account is still impossible (as when downloading via the GUI from the Microsoft Store site an account is not needed).

winget

First however on how I ended up at winget for anyway were these posts:

Read the rest of this entry »

Posted in Chocolatey, Microsoft Store, Power User, Windows, Windows 10, Windows 11, winget | Leave a Comment »

.NET/C#: Small command-line tool to query REST JSON results from a batch file.

Posted by jpluimers on 2023/08/29

Often the power is in the combinations of tools.

Read until the epilogue…

Prologue

In this case, I needed to be able to query the JSON results of calls to REST services from the command-line so I could process them in Batch files.

Since I could not find anything readily available, I originally Originally I opted for the PowerShell command-line scripting tool, as that ships with recent Windows versions and can re-use anything that .NET brings. But though [Wayback/Archive] .NET has built in JSON serialization support, there is [Wayback/Archive] no querying support in it.

Then I thought about Delphi, as it [Wayback/Archive] too has a built-in JSON parser, but even the well known [Wayback/Archive] JSON SuperObject library has no query support.

Back to .NET, which – like Delphi – has a well known and respected third party JSON library as well: [Wayback/Archive] NewtonSoft JSON aka JSON.net and that one [Wayback/Archive] does have support for querying JSON with the SelectToken function.

That’s the fundament of the rest of this article, with the potential to be used in a cross-platform as well.

So no need for a plan B.

Read the rest of this entry »

Posted in *nix, *nix-tools, .NET, Batch-Files, Conference Topics, Conferences, Development, Event, JavaScript/ECMAScript, jq, JSON, Power User, Scripting, Software Development, Windows, Windows Development | Leave a Comment »

Troubleshoot black screen or blank screen errors

Posted by jpluimers on 2023/08/08

Via Jan Gentleman, I learned

  • about the Ctrl+⇧ Shift+⊞ Win+B shortcut on Windows 10 and 11 that restarts starts video driver
  • that documentation is in [Wayback/Archive] Troubleshoot black screen or blank screen errors as

    Action 1: Try a Windows Key sequence to wake the screen.

    If you’re using a device with a keyboard connected to it, select Windows logo key Ctrl Shift B. If you’re in tablet mode, press the volume-up and volume-down buttons simultaneously three times within two seconds. If Windows is responsive, a short beep will sound and the screen will blink or dim while Windows attempts to refresh the screen.

Via:

 

Later I found out it also is in Table of keyboard shortcuts – Wikipedia: General shortcuts

Restart Video Driver Windows 10: Ctrl+⇧ Shift+⊞ Win+B[2][3]

Also I learned how people order the modifier keys is varying.

–jeroen

Posted in .NET, Development, Power User, Software Development, Visual Studio and tools, Windows, Windows 10, Windows 11 | Leave a Comment »