question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Use a different method to block support on Windows 8.1 (and future versions as needed)

See original GitHub issue

Summary of the new feature / enhancement

Per the discussion in #18854, we can’t use any way - even via DLL custom action - in Windows Installer to properly block install on Windows 10 and newer (and whatever equivalent Server SKU…2019?) because of AppCompat shims that cause every version API - including RtlGetVersion and friends - to lie about the version. At best you can check for Windows 8.1 era SKUs.

Instead, we need a different way to block install as needed to prevent customers getting into a bad situation where PowerShell may not work - especially problematic if they just upgraded a version that did work.

Proposed technical implementation details (optional)

I discussed a couple options with @SteveL-MSFT offline, listed in preferred order:

  1. I can write an EXE appropriately manifested that does not get shimmed by AppCompat (hopefully; it tends to be sticky). DLL custom actions get lied to because they run in an msiexec.exe host process which does get shimmed, but a separate EXE appropriately manifested and using RtlGetVersion could return 0 or 1 for supported or not supported, respectively. In this case, we’d probably just bake the requirements into the EXE rather than some way of passing an expression in, leading to potential overflows, etc. This could be built in the native repo and packaged along with other native binaries - consumed in the PowerShell/PowerShell repo.

  2. Write a burn chainer using WixStdBA that provides a simple XAML-like syntax, but we’d have to port the existing MSI-based UI. Initially this wouldn’t be cheap, but may be slightly cheaper to maintain going forward that MSI-based UI authoring in Wix. IMO, the XAML-like grammar is a little easier to grok. But every package manager reference would have to be updated, so it’s not just the authoring cost but the cost of updating all the references; though, this would likely be a one-time cost. What’s unknown is how this would affect admin deployments that might assume the MSI, like any existing Active Directory deployments via GPOs. It also adds some amount - though relatively small - to the overall package size.

Issue Analytics

  • State:open
  • Created 8 months ago
  • Comments:8 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
heathscommented, Jan 9, 2023

EXEs can also be distributed via WSUS, AD, etc. I wrote various extraction tools that took single- and multi-package chainers (Burn, or our previous chainers including those we’ve used since VS2005 and ~.NET 3.0) that would transpose is-installed and can-install logic. It’s doable, but still overkill if an EXE CA can avoid the version lies.

0reactions
stdin82commented, Mar 7, 2023

What i ment is that Windows 10 update team is using that LaunchCondition how it’s undocumented? that registry value exist since WinXP

Read more comments on GitHub >

github_iconTop Results From Across the Web

Windows 8.1 support ended on January 10, 2023
Support for Windows 8.1 will end on January 10, 2023. Learn what it means for you and how to move to a supported...
Read more >
How to Disable Microsoft Nags to Update Windows 8.1 [to buy ...
I understand they will drop the support for "old" OS, and new hardware can be skipped in all updates. It still doesn't mean...
Read more >
Disable "To get future Google Chrome updates, you'll need ...
How do we disable CONSTANT notifications that "To get future Google Chrome updates, you'll need Windows 10 or later. This computer is using...
Read more >
If Steam drop Windows 7 / 8 support, they also drop Linux ...
In addition, future versions of Steam will require Windows feature and security updates only present in Windows 10 and above.
Read more >
Windows 7 and Windows 8 Support
In addition, future versions of Steam will require Windows feature and security updates only present in Windows 10 and above. Although support won't...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found