RemoteFX vGPU any idea on how ro restore it after April 2021? [SOLVED]

Discussion in 'Windows Server' started by acer-5100, Jul 4, 2021.

  1. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    #1 acer-5100, Jul 4, 2021
    Last edited: Sep 5, 2022
    As in the title MS removed forcefully that great functionality from Win Servers and Win 10 starting from April 2021 CUs.

    Given the supposed vulnerability that triggered the ugly move, is supposed to be started from the guest machines, anyone that uses the feature for personal needs shouldn't care a lot of it.

    So, at the moment, the only choice is to block the updates after march 2021 or stop using the feature.

    I ask myself if someone here is able to make a package to restore it and/or or to install it in 2004+ systems that came directly w/o the feature.

    Thanks in advance.
     
  2. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    #2 acer-5100, Sep 4, 2022
    Last edited: Sep 4, 2022
    (OP)
    One year and half later...:rasta:

    Although looks like nobody cares or have idea of what I was talking about, after a while I solved the problem.

    It's not incredibly difficult nor super easy, but it works perfectly (actually in case of 1809+ even better than the initial release)

    rfx2.PNG


    As you can see not only I have it working in the very latest 22H2 build, but I went further restoring the configuration GUI that MS removed since Server 2019 / Win 10 1809

    Not going to write a tutorial, for now.

    I can just tell that removing the Hyper-V, Microsoft-Hyper-V, and RemoteFX packages, and replacing them with the xxxxx.1 ones (or even better with cabs exported from a build from march 2021) is enough to restore the functionality to the xxxxx.1 level (which for 1809+ means full functionality but no GUI), then for 1809+ builds 1 or more dlls from older builds needs to be replaced.

    Ping me if you are interested.

    But if you are interested I may change my mind.
     
  3. charredchar

    charredchar MDL Novice

    Sep 9, 2022
    3
    2
    0
    I personally feel most people "don't care" because of GPU-Paravirtualization and GPU-Partitioning being the next big things involving GPUs in VMs. I personally run vNext just for GPU-PV on multiple VMs.

    That being said, is there something you needed RemoteFX for specifically that the other two options couldn't have helped with? I am curious.

    Though congrats on getting it working! I can not imagine that being easy.
     
  4. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    #4 acer-5100, Sep 10, 2022
    Last edited: Sep 10, 2022
    (OP)
    I politely disagree here, Remote FX is not just a great thing for datacenters that serve virtualized studios, is also capable of doing great things for personal use, for people like me that has an home server (but single users nowadays are too lazy to learn things). Say I can do gaming on a Turion X2 notebook from the XP era. Not AAA gaming, obviously, but modern gaming that such notebook can't afford at all on its own, (it lacks even OpenGL3).

    Sure the trend is that, but your sentence sounds a bit like Marie Antoniette that suggested brioches to people who didn't have a slice of bread to eat.

    GPU-P needs a modern GPU with recent drivers, is not an option at all for me. First because the money needed, second because even if I wanted to spend money I'd rather buy more modern client HW w/o relying on any kind of server virtualization.

    Third: there is no fun just buying something that you know works out of the box

    Fourth: because my server has just a 1x PCI slot and attaching a more powerful/modern GPU to it is not an option.

    Fifth: modern GPU on a server which is on H24 means a lot of wasted energy, it was something I cared 10 years ago, let alone today with the skyrocketing price of the electricity.


    Sixth speaking of GPU para, to all the above reasons having a Nvidia solution is something that never make in my house. The last NVIDIA card I bought was a Riva 128 in 1999 or so and was more than enough.


    Thanks

    Yepp not easy, but way easier than this :D
     
  5. charredchar

    charredchar MDL Novice

    Sep 9, 2022
    3
    2
    0
    I don't disagree with any of this. :) What I meant before is most people don't worry about RemoteFX anymore because of GPU-P and GPU-PV is becoming more popular. I've seen a lot of talk about those two and very very little about RemoteFX. I feel Microsoft failed by removing RemoteFX without having something comparable in its place but they only care about enterprise, honestly, and NVidia handles it all with their datacenter GPUs. It would be great if Microsoft updated RemoteFX for smaller businesses to use instead of needing to rely on NVidia and their insane licensing fees. AMD might have something with their datacenter cards but that stuff is kept so secret normal people just have no idea about it and they still cost a fortune as well.

    GPU-PV shouldn't need more modern drivers but it does require both the host and guest to be Windows as the guest shares drivers with the host. This does mean the driver needs to run on both Windows 10/11 along with what ever guest you intend to use. If I recall, I've seen some people get it working with AMD cards as well so it isn't limited to NVidia, I am not sure about Intel though. With the fact RemoteFX only worked on Windows guests anyway it is my belief that is exactly what GPU-PV is meant to replace.
     
  6. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    #6 acer-5100, Sep 11, 2022
    Last edited: Sep 11, 2022
    (OP)
    Obviously It's becoming more popular. It's the only choice in roughly the same league of RFX, sure there are other proprietary solutions from VMware, Citrix and so on, but GPU-P is what resembles more RFX

    Obviously they care only about enterprise, but the enterprises should have sued MS. Indeed while the removal of RFX not just from a "next" OS but from a living infrastructure is something of really nasty from the commercial POV (while still being a technical failure as you say), that possibly did cost thousands of dollars to many companies that relied on it.

    What people would do if say Chrysler or BMV, recalled some car models for a (potential) problem to the gears, and removed the automatic shift to "fix" the problem?

    What a TAXI company would say?

    I'm amazed by the lack of reaction to such incredible move.

    VMware did a similar move but, in that case, no one force you to move to a newer version and no one removed anything from user's PCs using a practically mandatory Cumulative Update.

    Maybe recent intel GPUs cope well with GPU-P, but my Ivy bridge GPU don't like it.

    Get-VMPartitionableGpu just returns nothing on my "unofficial" Server 2020, but 2019 and 2022 behaves the same way.

    Perhaps even the Direct Device Assignement that is a no go for companies but could be a half solution for hobbyist and small studios, is a no go for me as the OS refuses to unmount the Host VGA, blaming on outdated firmware.

    Well I have a couple of AMD cards handy I could use via a 16x to 1x PCI adapter, but that would make sense just as self train duty but pragmatically would be just a solution looking for a problem ;)
     
  7. uultimaa

    uultimaa MDL Novice

    Jan 24, 2015
    6
    1
    0
    Hi @acer-5100

    I'm very interested in doing this, can you provide some instructions?

    Virtual machines using the "old" RemoteFX vGPU can be live migrated. Virtual machines using DDS, GPU-P or GPU-PV can't be live migrated. I'd call that a killer app.

    Long live RemoteFX vGPU.
     
  8. pm67310

    pm67310 MDL Guru

    Sep 6, 2011
    2,304
    1,534
    90
    you use mum file ?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  9. charredchar

    charredchar MDL Novice

    Sep 9, 2022
    3
    2
    0
    By the way, have you tried to see if RemoteFX can work alongside GPU-PV? I would actually like to give it a try to see if it fixes some of the CUDA issues I have but I can't take the GPU-PV VMs I'm running offline and risk breaking them just to test it.
     
  10. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    Sorry guys I'm really busy teese days, I'll detail more on the subject as soon as possible.
     
  11. uultimaa

    uultimaa MDL Novice

    Jan 24, 2015
    6
    1
    0
    No problem @acer-5100, no rush. Thank you for replying for now.

    I guess I could piece this together, from your description of package switching and other posts about package removal and addition. It would just be nice to use the exact method you did and avoid any gotcha's you may have encountered.

    Peace :worthy:
     
  12. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
  13. uultimaa

    uultimaa MDL Novice

    Jan 24, 2015
    6
    1
    0
    @acer-5100 you absolute diamond.

    Thank you sir. I'll block some time and try this out.
     
  14. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    Thanks but you're a bit exaggerated :p


    Perhaps I tested the above with the very latest 19045.2604 (February 2023 CU) update and it works as usual

    upload_2023-2-17_16-10-27.png
     
  15. rkm

    rkm MDL Novice

    Sep 25, 2012
    14
    5
    0
    I'm so thrilled with @acer-5100 idea to restore RemoteFX, that I've tried everything. I've now spent 9 hours and still unsuccessful, possibly because I cannot obtain his same 19041 releases.

    I've tried all of the normal MDL links, including the CloudMail links, etc -- but I have not been able to locate this version. Closest I can get, before 19041, is the 17763 release.

    Using that release -- the Hyper-V removal/replacement does work fine. However, the RemoteFX install always triggers the: Error: 0x800f081e The specified package is not applicable to this image.

    All of this DISM works great:
    Code:
    DISM /Online /Disable-Feature /FeatureName:Microsoft-Hyper-V
    DISM /Online /Disable-Feature /FeatureName:Microsoft-Hyper-V-Offline
    DISM /Online /Disable-Feature /FeatureName:Microsoft-Hyper-V-Online
    DISM /Online /Disable-Feature /FeatureName:RSAT-Hyper-V-Tools-Feature
    DISM /Online /Disable-Feature /FeatureName:Microsoft-Hyper-V-Management-PowerShell
    DISM /Online /Disable-Feature /FeatureName:Microsoft-Hyper-V-Management-Clients
    DISM /Online /Disable-Feature /FeatureName:VmHostAgent
    DISM /Online /Disable-Feature /FeatureName:VirtualMachinePlatform
    
    DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V-Offline /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V-Online /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:RSAT-Hyper-V-Tools-Feature /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V-Management-PowerShell /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V-Management-Clients /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:VmHostAgent /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    Then I get to:
    Code:
    DISM /Online /Enable-Feature /FeatureName:RemoteFX-Support /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    DISM /Online /Enable-Feature /FeatureName:Microsoft-Windows-RemoteFX /All /Source:"H:\Mount\sources\sxs" /LimitAccess
    That always results in the error: Error: 0x800f080c (feature name is unknown)

    When that kept failing, I tried installing every .mum package separately, like this:
    Code:
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-Remotefx-Clientvm-Rdvgwddmdx11-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-clientVM-RemoteFXWDDMDriver-WOW64-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-Graphics-Virtualization-Host-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-HyperV-Integration-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-VM-Setup-merged-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-VM-Setup-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-VM-Setup-WOW64-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-Virtualization-RemoteFX-User-Mode-Transport-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-Virtualization-RemoteFX-User-Mode-Transport-WOW64-Package~31bf3856ad364e35~amd64~~10.0.17763.1.mum"
    
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-Remotefx-Clientvm-Rdvgwddmdx11-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-clientVM-RemoteFXWDDMDriver-WOW64-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-Graphics-Virtualization-Host-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-HyperV-Integration-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-RemoteClient-Setup-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-VM-Setup-merged-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-VM-Setup-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-RemoteFX-VM-Setup-WOW64-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-Virtualization-RemoteFX-User-Mode-Transport-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    dism /image:"H:\Mount\" /add-package:"Microsoft-Windows-Virtualization-RemoteFX-User-Mode-Transport-WOW64-Package~31bf3856ad364e35~amd64~en-US~10.0.17763.1.mum"
    This is where I continue to get the: Error: 0x800f081e The specified package is not applicable to this image.

    I've tried to find a way to download a 19041 update to slipstream in, but haven't found a way to do that.

    I'm running on 10.0.25314 (Windows vNext Server Datacenter Preview) -- I'm wondering if that could be related to the problem, as well?

    ...I'm out of ideas....

    Does anyone have any other ideas I should try before giving-up?

    Thank you in advance :)
     
  16. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    #17 acer-5100, Apr 22, 2023
    Last edited: Apr 23, 2023
    (OP)

    Hi obviously the packages taken from a different version aren't going to work

    You need to go to the UUPdump website, start the wizard to build a 21H2 ISO or whatever is the oldest 1904x version it show, then choose download the UUP set. they are all 19041 except the (useless for our purpose) cumulative updates used to bring the 19041 image to 19044 or whatever.

    Alternatively you can use a 19041 live installation or ISO (anything from 19041.1 to 19043.868) and export the relevant cabs using SXSv1 (or a similar tool).

    In that case you can install the .cab directly, no need to unpack them and use .mums
     
  17. rkm

    rkm MDL Novice

    Sep 25, 2012
    14
    5
    0
    @acer-5100 Thank you for the suggestions.

    In my post, I mentioned I've spent a great deal of time trying to find any early version of 19041 mentioned in your post; I have not been able to find one anywhere.

    If there were some way to find a 19041 early release with .cab's that I could install, I would much prefer that -- sadly, after hours trying, I've located nothing.

    Thank you, I was not familiar with UUPdump. They do have a cumulative update to 19041.84 (the earliest 19041 release), they list these three files:
    Code:
    windows10.0-kb4539080-x64-baseless.cab
    windows10.0-kb4539080-x64-baseless.psf
    windows10.0-kb4539080-x64.cab
    Based on this, am I correct in assuming that I would just slipstream the .cab files into the .wim file, as follows:
    Code:
    DISM /Image:"X:\Win17763" /Add-Package /PackagePath:"X:\Win19041\windows10.0-kb4539080-x64-baseless.cab"
    DISM /Image:"X:\Win17763" /Add-Package /PackagePath:"X:\Win19041\windows10.0-kb4539080-x64.cab"
    That handles the .CAB files, however...

    I have not been successful attempting to integrate the .PSF file. Do you have any ideas on that?

    The two cab files are only 128MB while the .PSF is over 424MB ... which causes me to feel like the .PSF file is important in the process?

    Thank you in advance for any insight :)
     
  18. acer-5100

    acer-5100 MDL Guru

    Dec 8, 2018
    3,645
    2,620
    120
    #19 acer-5100, Apr 23, 2023
    Last edited: Apr 23, 2023
    (OP)

    I don't understand.

    First you say, you looked for 19041.1 forever then, when you find it, you try to update to 19041.84?

    Just don't download/install any CU, like I suggested above.

    Download the .esds and the language pack and unpack them (only the archives that contains mums/manifest) in a folder to have the mums in one place, then use my script.

    Alternatively you can make a 19041.1 ISO, using the downloadable script to make an ISO., just change the ini to Integrate Updates = N, then extract the relevant cabs, then install them in your target installation.

    BTW i suggest that second way only to people who has already handy a 19041.1 ISO or Installed system, when starting from scratch the .mum way makes more sense.
     
  19. rkm

    rkm MDL Novice

    Sep 25, 2012
    14
    5
    0
    #20 rkm, Apr 23, 2023
    Last edited: Apr 23, 2023
    Sure, I'll clarify:

    FIRST:
    I was looking for any version of 19041 that you originally mentioned in the RemoteFX post (19041.870 or earlier)

    LATER: I was attempting to follow your reply to my post, where you wrote:
    Based on your comment, I looked for the oldest 19041 version. The oldest 19041 was 19041.84.

    I thought I was following your instructions, I apologize if I made a mistake.

    The earliest version of 19041.1*** appears to be 19041.113 -- I will move forward with this.

    Thank you for the explanation. I'll download all 37 files (75 files minus 38 language files) of the .ESD files.

    I have not been able to find a way to download all 37 together (and download managers don't work due to their two-page rate-limited approach) -- so I'll download each of the 37 manually.

    If I'm doing this wrong and should not be downloading 37 .ESD files, please let me know.


    EDIT / UPDATE: The .113 files are not available, I am now downloading the 19041.153 version.

    Okay, I will do this and I assume I will use ESD Descrypter Tools to unpack the ESD files?

    Also, I can't use your script as-is because every link to download the install_wim_tweak.exe is dead; however, I can just try to go through the DISM procedure as I mentioned in my first post, if that's okay.

    I know the .ISO isn't required (and adds extra hassle) and your first method is best -- but for only for sake of learning and others stumbling on this post in the future --

    I'm not familiar with the "downloadable script" to build an .ISO (and I didn't locate anything w/search).

    Is there another term I should use to locate this?

    Thank you again for your insight. I'm sorry that many of these techniques are new to me and as a result, I've made several mistakes.