So, I installed Windows 10 Pro and Windows 10 ProWMC on VMs. Then I compared registry and filesystem. Here is the result: Code: demo.ovh.eu/download/01e6e68ec24857226df9d8ce4db62730/whatchanged_windows10pro_windows10prowmc.7z
I was going down this road myself and not sure were the "Turn Features on or Off" gets it's list from and even then, where does it get the files to install it. After about 3 days of playing trying to get something, I came up empty handed. This would be the dream here, drop a bunch of files in and just add the feature. Media Center is such a integrated part of Windows, it would very difficult to figure out file by file and registry key by registry key to get it fully running unless you had access to the installer. Remember, There is a lot of system dependences that it has, off the top of my had before my coffee is finished this morning, Play Ready, Media Player, foundation based codes, Directx... and there are a few more. I went down this road, took 2 VM's side by side, 10074, One WMC, One standard build and did the copy, file by file, registry by registry key. Deeper you go into the registry, your like OMG. The last stage that I finally got to after playing tons of keys, any file that I can think of, I finally imported the whole HKLM key from the WMC box to the standard build and I finally got some where. The OS loaded like normal (no noticed bugs besides the large list that was in 10074), as for WMC, the services would not start and I got "This program is not authorized to run". I think I got very close to running it but, due to the security check, it was a complete failure. A full list of registry keys and files that are copied would be the key thing here. I have my USB drive with all the files I copied over but, this was 10074 and copying the whole HKLM over from a beta to a RTM version is going to have other effects. Nothing I want to try in the RTM. I wonder if extracting one of the cabs I have from the beta versions will have a file list and registry key list, if that data can be extracted from there, it would save loads of time finding EXACTLY what needs to be done as a list. Maybe I will attempt going down this road later this week when I have some free time. The Windows\WinSxS folder is where I run that question on stuff, I believe that is where the actual installer is for WMC, it's where we are able to extract the files from. If your thinking of finding a way to put it in "Turn Windows features on or off" I think this will be a VERY important part of this. Thoughts ?
Maybe here: Code: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageDetect This key contains "MediaCenter" on Windows 10 "ProfessionalWMC", while Windows 10 "Professional" doesn't.
Thin PC is just a custom Windows embedded build, to have WMC in it the additional packages are taken from the Embedded disk. So no difference. And even installing MCE on embedded itself WMC may not start depending on the SKU used when configuring it, leading to the same scenario you have in your screenshot. I believe that only patching eshell (and maybe other files) can lead somewhere. Another way I tought could be doing the work an on offline image mounted with dism and doing it also with the WMC branding cab, then upgrading the SKY with the proper DISM command. Like we did with the previous W10 builds. But that would be hard as well, I guess dism will check signatures versions and so on, so maybe it isn't viable path.
Nice to see abbodi here, I hope he likes this challenge, even if he doesn't like/use WMC. After all if we find a way it would be useful for other things like some server packages on desktops...
I also have something else that MIGHT be of use to this project, When Windows 8 was released, in the first few months, Media Center was no available as an option. SO And&Tech (cant find any reference to it on their site but, it's in the installer), created an Installer for Windows Media Center. I have had this buried on my HD from the release of Windows 8... It's a Windows 8 Media Center installer (No it does not work on 8 or 8.1 any more) Back on Windows 8, it did work but, in the last few months, I have tried installing it on 7, 8, 8.1 and 10, it will install but, will not run. the ehshell.,exe is version 6.1.7600.16385 This DID run before. So maybe this file was patched, Right now, if I run it, it does nothing, no errors in the event log, no crashing, nothing... I did the copy and inport thing and ended up with the same thing, same security error, would be nice if we could get that patched and if we could get work then troubleshoot step by step till we get it. There is a lot of aspects in WMC and how it ties into Windows so, it could be more havoc then most of us think.
I guess you must adjust the ehshell.exe.config (and the other .config) with some bindingRedirect to newVersion="10.0.0.0" instead of "6.1.0.0" or whatever is written in yours , like I did with serverwmc and my channel logos to get them working on W10 Something like this Spoiler Code: <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> <supportedRuntime version="v2.0.50727"/> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.MediaCenter" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.0.3000.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.0.3100.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.0.6000.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.MediaCenter.UI" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.0.3000.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.0.3100.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.0.6000.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="ehRecObj" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.0.3000.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.0.3100.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.0.6000.0" newVersion="10.0.0.0" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="ehShell" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.MediaCenter.Shell" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="mcstore" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="mcstoredb" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="ehiExtens" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="BDATunePIA" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="mcstore" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="mcstoredb" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="mcepg" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="ehiProxy" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="6.1.0.0" newVersion="10.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration> Anyway, if you can upload that installer somewhere would be appreciated.
Port WMC to Windows 10 This is what I was able to find about the "Windows\WinSxS" folder: thewindowsclub.com/winsxs-folder-windows-7-8 Again, I don't think there is anything of use there, other than redundant copies of some of the ehome files. Here is a link to the .zip conversion of the above file: dw4.convertfiles.com/files/0064554001439897603/whatchanged_windows10pro_windows10prowmc.zip This comparison seem very similar the previous Windows 8.1 Pro vs Windows 8.1 Pro with Media Center comparison. Here are the directories that show up in each comparison: Spoiler Windows 8.1: Program Files\Embedded Lockdown Manager Program Files\WindowsApps ProgramData\Microsoft\Crypto\RSA\MachineKeys ProgramData\Microsoft\Windows\Caches ProgramData\Microsoft\Windows\Start Menu ProgramData\Microsoft\Windows Defender\Support ProgramData\regid.1991-06.com.microsoft Windows\assembly Windows\ehome Windows\Help Windows\ImmersiveControlPanel\Settings Windows\Microsoft.NET\assembly Windows\rescache\_merged Windows\ServiceProfiles\LocalService\AppData\Local Windows\servicing Windows\System32 Windows\SysWOW64 Windows\WinStore Windows\WinSxS Windows 10: ProgramData\Microsoft\Crypto\SystemKeys ProgramData\Microsoft\Windows\AppRepository ProgramData\Microsoft\Windows\ClipSVC\Archive\Apps ProgramData\Microsoft\Windows\Start Menu ProgramData\Microsoft\Windows\WER\ReportQueue ProgramData\regid.1991-06.com.microsoft Users\Administrator Users\All Users\Microsoft\Crypto\SystemKeys Users\All Users\Microsoft\Windows\AppRepository Users\All Users\Microsoft\Windows\Start Menu Users\All Users\regid.1991-06.com.microsoft Users\Default Users\Public\Recorded TV Windows\AppReadiness Windows\ehome Windows\INF Windows\Logs Windows\Microsoft.NET\assembly Windows\prefetch Windows\ServiceProfiles Windows\servicing Windows\System32 Windows\syswow64 Windows\WinSxS The crossed out directories we should be able to rule out as having anything to do with the WMC. Some will be automatically created when the WMC is setup for the first time (such as the "Recorded TV" folder and all the folders in the "Users" directory). The directories in blue appear in both the Windows 8.1 and Windows 10 comparison and should be considered candidates to be copied. (The "Start Menu" directory in italics just adds a shortcut for the WMC to the start menu and is not important.) This seems like a similar conclusion. Any ideas?
Have a look at this key: Code: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions\ProductPolicy Use this tool to read the value: Code: remkoweijnen.nl/blog/2010/06/15/having-fun-with-windows-licensing/ Comparison between Windows 10 ProWMC and Windows 10 Pro: Code: img11.hostingpics.net/pics/658337licensing.png
This is a fact, not a conclusion i already made custom WMC installer (used b 9926 files) and i'm pretty positive that all the steps are accurate (taken and followed dism operation steps) but as expected: Windows cannot open this program because it has been prevented by a software restriction policy the steps are really simple: - Copy files (preferably using a .wim container to preserve security ACLs) - Register the Security Catalogs .cat (using signtool.exe) - Install .NET assemblies Spoiler Code: set _ngen=%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe %_ngen% install "ehiActivScp, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "loadmxf, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiwmp, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehRecObj, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiProxy, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiWUapi, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Mcx2Dvcs, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.iTV, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiUserXp, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "mcplayerinterop, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.Playback, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.iTV.Media, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.ITVVM, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "mcupdate, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "mcglidhostobj, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "mcstore, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiBmlDataCarousel, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiTVMSMusic, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehexthost, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehshell, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiUPnP, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.Mheg, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.Interop, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "mcepg, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.UI, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehCIR, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiExtens, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.TV.Tuners.Interop, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "mcstoredb, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.Sports, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.Bml, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "BDATunePIA, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=x86" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.Shell, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiVidCtl, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "ehiiTV, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 %_ngen% install "Microsoft.MediaCenter.iTv.Hosting, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil" /NoDependencies /queue:1 set _regasm=%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe %_regasm% "%SystemRoot%\ehome\ehRecObj.dll" %_regasm% "%SystemRoot%\ehome\ehCIR.dll" - Create services... Spoiler Code: sc create ehRecvr binPath= "%systemroot%\ehome\ehRecvr.exe" error= ignore start= demand type= own DisplayName= "@%SystemRoot%\ehome\ehrecvr.exe,-101" depend= RPCSS obj= "NT AUTHORITY\networkService" sc create ehSched binPath= "%systemroot%\ehome\ehsched.exe" error= ignore start= demand type= own DisplayName= "@%SystemRoot%\ehome\ehsched.exe,-101" depend= RPCSS obj= "NT AUTHORITY\networkService" sc create Mcx2Svc binPath= "%SystemRoot%\system32\svchost.exe -k LocalServiceAndNoImpersonation" error= normal start= demand type= share DisplayName= "@%SystemRoot%\ehome\ehres.dll,-15501" depend= SSDPSRV/DeviceAssociationService/TermService/fdphost obj= "NT Authority\LocalService" - Import registry settings
I've got two Media Center packages in regedit (Windows 8.1 with WMC). Also, there were two packages with MCUpdate, aren't they important too? Spoiler Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageDetect\Microsoft-Windows-MCUpdate-Package~31bf3856ad364e35~amd64~~0.0.0.0] "Microsoft-Windows-MCUpdate-Package~31bf3856ad364e35~amd64~nl-NL~6.3.9600.16384"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageDetect\Microsoft-Windows-MCUpdate-UpdateDLLs-IntelAMD-Package~31bf3856ad364e35~amd64~~0.0.0.0] "Microsoft-Windows-MCUpdate-UpdateDLLs-IntelAMD-Package~31bf3856ad364e35~amd64~nl-NL~6.3.9600.16384"=dword:00000002 "Package_2542_for_KB3000850~31bf3856ad364e35~amd64~~6.3.1.8"=dword:00000002 "Package_for_KB3064209~31bf3856ad364e35~amd64~~6.3.1.0"=dword:00000002 "Package_for_KB3064209_RTM~31bf3856ad364e35~amd64~~6.3.1.0"=dword:00000002 "Package_3_for_KB3064209~31bf3856ad364e35~amd64~~6.3.1.0"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageDetect\Microsoft-Windows-MediaCenter-Package~31bf3856ad364e35~amd64~~0.0.0.0] "Microsoft-Windows-MediaCenter-Package~31bf3856ad364e35~amd64~nl-NL~6.3.9600.16384"=dword:00000002 "Package_4910_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"=dword:00000002 "Package_2543_for_KB3000850~31bf3856ad364e35~amd64~~6.3.1.8"=dword:00000002 "Package_for_KB2978742~31bf3856ad364e35~amd64~~6.3.1.0"=dword:00000002 "Package_for_KB2978742_RTM~31bf3856ad364e35~amd64~~6.3.1.0"=dword:00000002 "Package_1_for_KB2978742~31bf3856ad364e35~amd64~~6.3.1.0"=dword:00000002 "Package_for_KB2973201~31bf3856ad364e35~amd64~~6.3.1.3"=dword:00000002 "Package_for_KB2973201_RTM~31bf3856ad364e35~amd64~~6.3.1.3"=dword:00000002 "Package_8_for_KB2973201~31bf3856ad364e35~amd64~~6.3.1.3"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageDetect\Microsoft-Windows-MediaCenter-Package-avcore~31bf3856ad364e35~amd64~~0.0.0.0] "Microsoft-Windows-MediaCenter-Package-avcore~31bf3856ad364e35~amd64~nl-NL~6.3.9600.16384"=dword:00000002 "Package_4911_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"=dword:00000002 "Package_2544_for_KB3000850~31bf3856ad364e35~amd64~~6.3.1.8"=dword:00000002
I can say this file is only here for GPOs. ADM/ADMX files contains registry references used to manage system configuration via GPO (locally or under Active Directory). Code: blogs.msdn.com/b/astebner/archive/2008/01/28/7294179.aspx
Yea, they would be important, unless you don't want guide updates, etc.... I don't see that "Microsoft-Windows-MCUpdate" key in Windows 7... I'll have to check a 10 w/WMC or a 8.1 box tonight..