Hyper-V: a VM will not start — 0x80070569 or "failed to open attachment"
The VM worker process cannot open something it needs — usually the VHDX — because the per-VM security identity lacks permission on the file or the share.
What you see
Starting a VM fails immediately with a permissions error naming the VHDX path, or a logon failure. Common after restoring a VM, moving files by hand, or copying a VM between hosts.
What is actually wrong
Each VM runs as NT VIRTUAL MACHINE\<VM GUID>. That identity needs explicit permission on the VHDX. Copying or restoring files loses the ACL, and the identity differs on the new host.
Codes and articles
Fixes (2)
Restore the per-VM ACL on the disk files
Files are on local storage or a CSV.
Get the VM's ID — this is the SID the worker process runs under.
Get-VM -Name 'MyVM' | Select-Object Name, Id, StateLook at the current ACL on the VHDX and note whether the VM's GUID appears.
(Get-Acl 'D:\VMs\MyVM\disk.vhdx').Access | Format-Table IdentityReference, FileSystemRights -AutoSizeGrant the VM identity full control on the file.
$vm = Get-VM -Name 'MyVM'icacls "D:\VMs\MyVM\disk.vhdx" /grant "NT VIRTUAL MACHINE\$($vm.Id):(F)"
The identity is per-VM and contains the VM's GUID, so it cannot be copied between hosts or recreated by inheritance.
If several files are involved — checkpoints, AVHDX chains — grant on the folder instead.
icacls "D:\VMs\MyVM" /grant "NT VIRTUAL MACHINE\$($vm.Id):(OI)(CI)(F)" /TThe supported alternative is to remove and re-add the disk in the VM's settings, which makes Hyper-V write the ACL itself.
Start-VM -Name 'MyVM'Get-VM -Name 'MyVM' | Select-Object Name, State
Fix constrained delegation for SMB-hosted VMs
VM files are on an SMB 3 file share.
Confirm the host computer account has full control on the share and the NTFS path — both, not one.
Check delegation is configured for the CIFS service on the file server.
Get-ADComputer HV01 -Properties msDS-AllowedToDelegateTo | Select-Object -ExpandProperty 'msDS-AllowedToDelegateTo'Without constrained delegation the host cannot present the caller's credentials to the file server, and the failure surfaces as a permissions error on the VHDX.
Add it if missing.
Set-ADComputer HV01 -Add @{'msDS-AllowedToDelegateTo'=@('cifs/FS01.example.local','cifs/FS01')}Restart the Hyper-V host so the ticket cache is rebuilt.
Get-SmbShareAccess -Name VMs -CimSession FS01Related faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.