FolderRisk: Do not touch
Hyper-V C:\ProgramData\Microsoft\Windows\Hyper-V
Hyper-V: default folder for virtual machine configuration files (.vmcx, .vmrs) and checkpoints; on Windows Server and on Windows 10/11.
What it’s for
By default Hyper-V stores virtual machine configuration files and their checkpoints here, unless you chose another location in the host settings or when creating the machine. The folder exists as soon as the Hyper-V feature is enabled: a role on Windows Server, but also on Windows 10 and 11 Pro, Enterprise and Education, which ship it as an optional feature. It is therefore not server-only.
Virtual disks, on the other hand, default to a different place: C:\Users\Public\Documents\Hyper-V\Virtual hard disks.
What it contains
Virtual Machines: a<GUID>.vmcxconfiguration file and a<GUID>.vmrsruntime state file per machine. The GUID is the machine’s identifier. Before Windows Server 2016 the configuration was an.xmlfile.Snapshots: checkpoints stored at the default location.InitialStore.xml, the default authorization store for Hyper-V role management.
If you set a virtual machine path, the configuration lives in <path>\<machine name>\Virtual Machines.
Risks and best practices
- Exclude this folder, the virtual disk folders and the
vmms.exeandvmwp.exeprocesses from antivirus scanning, as Microsoft’s page on Hyper-V host exclusions recommends; an antivirus locking a.vmcxprevents the machine from starting. - Do not move the files by hand: export the machine (
Export-VM) or move it withMove-VMStorage. - Back up with a Hyper-V-aware (VSS) tool or export, rather than copying this folder while machines run.
- To change the default locations for future machines, use
Set-VMHost.
Useful commands
# Host default locationsGet-VMHost | Select-Object VirtualMachinePath, VirtualHardDiskPath
# Where each machine livesGet-VM | Select-Object Name, Id, Path, ConfigurationLocation, SnapshotFileLocation
# As administrator: change the default locations (future machines)Set-VMHost -VirtualMachinePath 'D:\Hyper-V\VM' -VirtualHardDiskPath 'D:\Hyper-V\VHDX'
# Hyper-V host eventsGet-WinEvent -LogName 'Microsoft-Windows-Hyper-V-VMMS-Admin' -MaxEvents 30