[DISCUSSION] Patch WMC to run on Windows 10 final & possible alternatives

Discussion in 'Windows 10' started by ricktendo64, May 8, 2015.

  1. Shortyportuguese

    Shortyportuguese MDL Addicted

    Apr 3, 2019
    583
    215
    30
    So, is better to use Nsudo from previous installers?
     
  2. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    4,003
    2,965
    150
    #10702 acer-5100, Jan 8, 2024
    Last edited: Jan 8, 2024
    In my experience Nsudo 8 is more universal and less buggy than other solutions, but if Nsudo 9 or something else works for you, there isn't a compelling reason to replace it.
     
  3. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
    FWIW, I also hit the same issue with a single-user Hyper-V VM (with enhanced session, so much likely involving some RDP magic too).
    It's not terribly complicated to tweak the script to use NSudo8 instead of SuperUser for an advanced user, but it makes the user experience for everyone else a bit... suboptimal.
    IMHO, that would be nice if @abbodi1406 considered replacing SU by the battle proven NSudo8 :worthy:

    (Happy New Year everyone!)
     
  4. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    4,003
    2,965
    150
    Well given the elevation script is separate from the installer script, Is probably just matter of copying nsudo.exe in the bin folder and overwriting the elevation script with an older copy

    Not getting that, what changes for the end user if the elevation exe is X.exe over Y.exe (assuming they are both working)?

    To you !;)
     
  5. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
    Yup, just add NSudoC.exe in the bin folder and replace 'superUser64.exe Install.cmd' by 'NSudoC.exe -U:T -P:E "\"\"%~dp0bin\Install.cmd"' and it fixes the issue.

    Well, the scenario you describe (i.e having a dedicated Windows user for WMC with autologon) is likely quite common, so we're probably not the only ones who'll hit this weird behavior when using the 8.10 package.
    The user experience would be much better if it worked without tweaking the installation script, as the 8.8.x branch did :biggrin3:
     
  6. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    4,003
    2,965
    150
    @Kévin Chalet

    Ok

    I got your sentence wrongly :oops:

    I thought that "suboptimal" was referred to a version with superuser replaced with nsudo 8, so I did wonder how a fix could make the experience suboptimal...

    So to address what you really meant, frankly I'm bored about "normal" users that dont think twice when using the work of many people who spent months or even years (like in the WMC case) perfecting a program, but are unable even to "add water and stir", because it's too complicate.

    There are users here that follow this thread since 2015, and after a decade got NOTHING from a decade of development, suggestions, fixes and so on.

    This is not incompetence, this is laziness.
     
  7. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
    I believe it has a lot to do with the fact WMC has always been regarded by many users as a "turnkey" Media Center option: it used to be installed by default on most high-end Windows versions and configuring it was only a matter of answering a few questions (thanks to its amazing wizards).

    Sadly, it's no longer true today and there are lots of roadblocks: it's no longer officially supported, CableCARD no longer works on recent versions of Windows 10, the fullscreen mode is buggy on Intel's 11th+ iGPUs, many countries moved to HEVC/AC4 which isn't supported by WMC, etc. If we're honest, it takes a lot of dedication to keep using WMC in 2024... and not everyone has the skills (or patience) required to deal with all that stuff.

    @abbodi1406 any objection if I publish a 8.10.1 version of your package with NSudo8 instead of SuperUser?
     
  8. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
    #10708 Kévin Chalet, Jan 13, 2024
    Last edited: Jan 13, 2024
    Speaking of that, I finally took the time to give Patchou's Media Center Themer a try during the holidays (I've always been a huge Media Center Studio fan) and OMG, what a wonderful piece of software it is!
    It makes authoring and deploying WMC themes a whole lot easier. Not sure why I haven't tried it sooner...
     
  9. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    18,004
    96,148
    340
    Not at all, do please
     
  10. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
    #10710 Kévin Chalet, Jan 13, 2024
    Last edited: Jan 13, 2024
    Unfortunately, the x86 console version of NSudo 8.2 is flagged as a malware by Windows Defender, so it's not ideal (surprisingly, neither the x86 graphical tool nor the x64 CLI/GUI are flagged :jumpon:)

    I tried with gsudo and it seems to work on my Hyper-V VM machine (it's a signed executable, so it probably helps not being flagged). Do you guys have any experience (or concerns) with it?
     
  11. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    4,003
    2,965
    150
    #10711 acer-5100, Jan 13, 2024
    Last edited: Jan 13, 2024

    Sure, but those people can use W7/W8/W8.1 with the official WMC or LTSC2015 + the old package w/o any major drawback.

    My personal idea is that if someone has the curiosity and the will to try WMC on "unsupported OSes" has very likely enough skill to launch a TI prompt and to type install.cmd

    Well at least for win11 the problem is already solved in the worst possible way, there isn't any public 32 bit version :D
    No, sorry. I didn't investigate a lot on alternate exe after I figured out that 8.2 worked practically everywhere.

    But maybe is worth to take a look to runasTI by bau / aveyo that requires no external exe at all.


    P.S. I didn't play a lot with the latest version from @abbodi1406, except for 9200 version. But I think there is a regression over the 8.8.1 I use since the stone age... looks like is not possible to set the miniguide to 3/4/5 rows (using epg123) something that I always do and that always worked since w7.

    Given you are experimenting right now, can you check if it behaves the same for you?

    P.S2 About nsudo graphical, likely it can be used in a batch using the start command
     
  12. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
  13. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    18,004
    96,148
    340
    Yes

    TrustedInstaller ACLs on files and directories is superfluous
    it should only be set on real CBS package
     
  14. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
    @abbodi1406 okay, thanks. What about the symlinks (well, hard links to be exact): was it deliberate too?
     
  15. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    18,004
    96,148
    340
    You can say so
    i don't think hardlinks are useful without WinSxS
    and the new copy is more appropiate for proper NGEN operation
     
  16. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    4,003
    2,965
    150
    I disagree here.

    If nothing else hardlinks avoid a waste of space.

    Back on I time decided to make 8.7/8.8.x purposely to replace the duplicated files with proper hard links, and I never had a problem with them
     
  17. Kévin Chalet

    Kévin Chalet MDL Member

    Apr 11, 2019
    152
    134
    10
    Well, it sadly breaks important scenarios like the one @acer-5100 mentioned. I just double-checked and as I expected, the GACed assemblies were hard links on the original Windows 7 version.
    Regarding NGEN, I'd expect native images to be invalidated (and recreated) when the associated managed assembly is updated.
     
  18. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    18,004
    96,148
    340
    It's hardlinked because It's CBS
    do you see .NET Framework 4.x files/GAC hardlinked?

    what's the problem exactly with "non hardlink" scenario?
     
  19. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    4,003
    2,965
    150
    #10719 acer-5100, Jan 13, 2024
    Last edited: Jan 13, 2024

    In the original WMC each file has three hard links: working directory/winsxs/msil.

    SxS links are useless in non DISM installations so below is what I did back in the "middle age" in 8.7/8.8

    Code:
    
    echo Creating hard links
    
    
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\BDATunePIA\v4.0_6.3.0.0__31bf3856ad364e35\BDATunePIA.dll %SystemRoot%\ehome\BDATunePIA.dll  >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\mcplayerinterop\v4.0_6.3.0.0__31bf3856ad364e35\mcplayerinterop.dll  %SystemRoot%\ehome\mcplayerinterop.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\mcstoredb\v4.0_6.3.0.0__31bf3856ad364e35\mcstoredb.dll %SystemRoot%\ehome\mcstoredb.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\mcupdate\v4.0_6.3.0.0__31bf3856ad364e35\mcupdate.exe %SystemRoot%\ehome\mcupdate.exe >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\Mcx2Dvcs\v4.0_6.3.0.0__31bf3856ad364e35\Mcx2Dvcs.dll %SystemRoot%\ehome\Mcx2Dvcs.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\Microsoft.MediaCenter.Interop\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.Interop.dll %SystemRoot%\ehome\Microsoft.MediaCenter.Interop.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\Microsoft.MediaCenter.iTV.Media\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.iTV.Media.dll %SystemRoot%\ehome\Microsoft.MediaCenter.iTV.Media.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\Microsoft.MediaCenter.Mheg\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.Mheg.dll %SystemRoot%\ehome\Microsoft.MediaCenter.Mheg.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_64\Microsoft.MediaCenter.TV.Tuners.Interop\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.TV.Tuners.Interop.dll %SystemRoot%\ehome\Microsoft.MediaCenter.TV.Tuners.Interop.dll >nul 2>&1
    
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_32\ehexthost32\v4.0_6.3.0.0__31bf3856ad364e35\ehexthost32.exe %SystemRoot%\ehome\wow\ehexthost32.exe >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_32\ehexthost32\v4.0_6.3.0.0__31bf3856ad364e35\ehexthost32.exe.config %SystemRoot%\ehome\wow\ehexthost32.exe.config >nul 2>&1
    
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehCIR\v4.0_6.3.0.0__31bf3856ad364e35\ehCIR.dll %SystemRoot%\ehome\ehCIR.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehexthost\v4.0_6.3.0.0__31bf3856ad364e35\ehexthost.exe %SystemRoot%\ehome\ehexthost.exe >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehexthost\v4.0_6.3.0.0__31bf3856ad364e35\ehexthost.exe.config %SystemRoot%\ehome\ehexthost.exe.config >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiActivScp\v4.0_6.3.0.0__31bf3856ad364e35\ehiActivScp.dll %SystemRoot%\ehome\ehiActivScp.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiBmlDataCarousel\v4.0_6.3.0.0__31bf3856ad364e35\ehiBmlDataCarousel.dll %SystemRoot%\ehome\ehiBmlDataCarousel.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiExtens\v4.0_6.3.0.0__31bf3856ad364e35\ehiExtens.dll %SystemRoot%\ehome\ehiExtens.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiiTV\v4.0_6.3.0.0__31bf3856ad364e35\ehiiTV.dll %SystemRoot%\ehome\ehiiTV.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiProxy\v4.0_6.3.0.0__31bf3856ad364e35\ehiProxy.dll %SystemRoot%\ehome\ehiProxy.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiTVMSMusic\v4.0_6.3.0.0__31bf3856ad364e35\ehiTVMSMusic.dll %SystemRoot%\ehome\ehiTVMSMusic.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiUPnP\v4.0_6.3.0.0__31bf3856ad364e35\ehiUPnP.dll %SystemRoot%\ehome\ehiUPnP.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiUserXp\v4.0_6.3.0.0__31bf3856ad364e35\ehiUserXp.dll %SystemRoot%\ehome\ehiUserXp.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiVidCtl\v4.0_6.3.0.0__31bf3856ad364e35\ehiVidCtl.dll %SystemRoot%\ehome\ehiVidCtl.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiwmp\v4.0_6.3.0.0__31bf3856ad364e35\ehiwmp.dll %SystemRoot%\ehome\ehiwmp.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehiWUapi\v4.0_6.3.0.0__31bf3856ad364e35\ehiWUapi.dll %SystemRoot%\ehome\ehiWUapi.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehRecObj\v4.0_6.3.0.0__31bf3856ad364e35\ehRecObj.dll %SystemRoot%\ehome\ehRecObj.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\ehshell\v4.0_6.3.0.0__31bf3856ad364e35\ehshell.dll %SystemRoot%\ehome\ehshell.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\loadmxf\v4.0_6.3.0.0__31bf3856ad364e35\loadmxf.exe %SystemRoot%\ehome\loadmxf.exe >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\mcepg\v4.0_6.3.0.0__31bf3856ad364e35\mcepg.dll %SystemRoot%\ehome\mcepg.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\mcglidhostobj\v4.0_6.3.0.0__31bf3856ad364e35\mcglidhostobj.dll %SystemRoot%\ehome\mcglidhostobj.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\mcstore\v4.0_6.3.0.0__31bf3856ad364e35\mcstore.dll %SystemRoot%\ehome\mcstore.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.dll %SystemRoot%\ehome\Microsoft.MediaCenter.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.Bml\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.Bml.dll %SystemRoot%\ehome\Microsoft.MediaCenter.Bml.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.iTV\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.iTV.dll %SystemRoot%\ehome\Microsoft.MediaCenter.iTV.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.iTv.Hosting\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.iTv.Hosting.dll %SystemRoot%\ehome\Microsoft.MediaCenter.iTv.Hosting.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.ITVVM\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.ITVVM.dll %SystemRoot%\ehome\Microsoft.MediaCenter.ITVVM.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.Playback\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.Playback.dll %SystemRoot%\ehome\Microsoft.MediaCenter.Playback.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.Shell\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.Shell.dll %SystemRoot%\ehome\Microsoft.MediaCenter.Shell.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.Sports\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.Sports.dll %SystemRoot%\ehome\Microsoft.MediaCenter.Sports.dll >nul 2>&1
    mklink /h %SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.MediaCenter.UI\v4.0_6.3.0.0__31bf3856ad364e35\Microsoft.MediaCenter.UI.dll %SystemRoot%\ehome\Microsoft.MediaCenter.UI.dll >nul 2>&1
    
    echo.
    The problem is that epg123/mychannels logo patches on the fly

    Microsoft.MediaCenter.Shell.dll (IIRC)

    which means that, in copied file scenario, it patches just one file, while WMC uses the other copy (the original one).
     
  20. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    4,003
    2,965
    150
    #10720 acer-5100, Jan 13, 2024
    Last edited: Jan 13, 2024