The requested operation could not be completed due to a file system limitation
Такая ошибка возникает тогда, когда динамический VHD-файл содержит внутри себя теневые копии. Для того, чтобы сжать такой файл, теневые копии необходимо удалить. Сделать это можно запустив в виртуальной машине, к которой относится этот файл, следующую команду:
vssadmin.exe delete shadows /all
Если после выполнения этой команды возникает ошибка
Snapshots were found, but they were outside your allowed context. Try removing them with the backup application which created them.
То следует воспользоваться командой diskshadow:
DiskShadow.exe
DISKSHADOW>Delete Shadows All
Все команды необходимо запускать в командной строке, запущенной с правами администратора.
Не забудьте после удаления теневых копий выключить виртуальную машину и можно запускать сжатие vhd-файла в оснастке Hyper-V.
Также сжатие vhd можно выполнить из командной строки с помощью diskpart, что может быть полезно в случае использования Hyper-V Server, у которого нет GUI:
Diskpart
select vdisk file="путь к vhd-файлу"
attach vdisk readonly
compact vdisk
detach vdisk