For the past couple days now, I have been trying to compact a couple virtual machine hard drives VHDX via Hyper-V Manager. One of them worked without a hitch, however the other one I would go to Hyper-V manager, click edit disk and follow the normal procedures, but when I clicked finish, the box would just go away without it ever actually changing the size. I found a fix around this using a one line PowerShell command!
You can actually compact VHDX from Powershell just the same as you can in the GUI. Below is the command that you must run (keep in mind the virtual machine has to be off in order for this to work).
Optimize-Vhd -path <full path the vhd file> -Mode Full
This process takes some time, but it is worth saving that precious disk space! I just saved 100GB of hard drive space! Let me know in the comments if this helped you!