Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the supportedOS GUID for Windows Server 2019?

I'm trying to install some software on Windows Server 2019 that's not officially supported on it. Several older and newer versions of the same software (also unsupported) install and work just fine, but one particular version won't attempt the install, instead just flagging that it's not supported and greying out the checkbox for the main software component. I want to try and force it to run anyway, because my experience with the other versions suggests that if I can get it to try regardless, it'll probably work.

I have opened the exe file with Resource Hacker and found where it's checking for compatible OS's by GUID. Compatible OS's are listed up to Windows 10 (8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a). I figure if I change this GUID to the one for Server 2019, it might just trick it into forgetting that it's unsupported. But I can't find the GUID for Windows Server 2019. I found this thread that gives GUID's for several previous version, but nothing on Server 2019

like image 301
ASForrest Avatar asked Nov 06 '22 15:11

ASForrest


1 Answers

AFAIK, Windows Server 2019 is based on Windows 10 1809 (see HKLM\Software\Microsoft\Windows NT\CurrentVersion\ReleaseID) so the GUID is the same, ie {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}.

Glad you found a way out, but here are some other funny solutions:

Most devs actually just grey out the button (disable=True) but actually the code that would be called will not check whether the button was disabled or not.

There are some tools specifically designed to "re-enable" MFC gui buttons. One that worked for me was TurnItOn! Enable link to author's site

With that, just enable that button and enjoy. If this is not working, other tools like this exist that might support various MFC / GDI controls.

Another batch of solutions:

  • Windows compatibility mode (probably won't work)
  • Use SandboxIE sandbox to install your software, tricking it into thinking it's being run on Windows earlier versions. If you need to adjust the sandbox's returned registry keys, you can find what registry keys your installer is reading with Microsoft Procmon Just don't forget to make a process filter on your installer executable so it reduces your search scope. Once you found the key, open regedit.exe from your sandbox and modifiy the appropriate GUID. (Disclaimer: might not work if the GUID is given by some internal Microsoft API... If so, C skills will be required to get output of that API).
  • Use Virtualbox with a previous Windows version (not elegant solution)
  • Guess what installer your software was packaged with and open it in 7zip or whatever does the job (works on NSIS, does not work on InstallShield)

There's also a quite ultimate solution for this that needs a bit of work but usually works great: Create an alternate installer for your software:

  • Check what registry settings and files are created when installing your software on an earlier Windows version. Use RegShot to track registry modifications (filter out always changing keys like catroot etc). Again, you can use SandBoxie to easily track file modifications. Once you got that info, just create a SFX file containing your files and the .reg file, which you can import using reg import file.reg (can be launched directly from the SFX maker, ie 7zip or something alike) Also check if your software came bundled with some runtimes (Visual C or so) and add them to your installer.

Hope this can help.

like image 62
Orsiris de Jong Avatar answered Nov 24 '22 06:11

Orsiris de Jong