Hyper-V无法加载虚拟机configuration

我昨晚将Windows 2008 Hyper-V主机服务器升级到了Windows 2008 R2。 升级进行得很顺利,但是当它作为新版本安装完毕后,我发现Hyper-V控制台UI中缺less17个虚拟机。

从我看到的Hyper-V事件日志

Log Name: Microsoft-Windows-Hyper-V-VMMS-Admin Source: Microsoft-Windows-Hyper-V-VMMS Date: 6/4/2011 2:31:26 AM Event ID: 16300 Task Category: None Level: Error Keywords: User: SYSTEM Computer: elune Description: Cannot load a virtual machine configuration: General access denied error (0x80070005) (Virtual machine ID 5185AC13-4148-4AFE-9024-6E74FE3C9754) Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-Hyper-V-VMMS" Guid="{6066F867-7CA1-4418-85FD-36E3F9C0600C}" /> <EventID>16300</EventID> <Version>0</Version> <Level>2</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x8000000000000000</Keywords> <TimeCreated SystemTime="2011-04-05T18:31:26.432942100Z" /> <EventRecordID>641</EventRecordID> <Correlation /> <Execution ProcessID="1964" ThreadID="2064" /> <Channel>Microsoft-Windows-Hyper-V-VMMS-Admin</Channel> <Computer>elune</Computer> <Security UserID="S-1-5-18" /> </System> <UserData> <VmlEventLog xmlns:auto-ns2="http://schemas.microsoft.com/win/2004/08/events" xmlns="http://www.microsoft.com/Windows/Virtualization/Events"> <VmName> </VmName> <VmId>5185AC13-4148-4AFE-9024-6E74FE3C9754</VmId> <ErrorMessage>%%2147942405</ErrorMessage> <ErrorCode>0x80070005</ErrorCode> </VmlEventLog> </UserData> </Event> 

这些“失踪”的虚拟机没有任何与之相关的在线快照。 即使是那些我根据微软的build议删除和合并了快照,并且他们“幸免于难”。

关于启动虚拟机似乎有很多“一般访问被拒绝错误(0x80070005)”的讨论。 但是我的情况是,Hyper-V服务无法加载configuration,所以Hyper-V知道这些虚拟机configuration位置在哪里,但没有权限访问它们?

这三个Hyper-V服务以LOCAL SYSTEM帐户启动,并且这些VM的“虚拟机”文件夹确实授予完全控制权限。 我从其他虚拟机观察到他们的文件夹有虚拟机组的附加ACE和VM GUID本身?

在这里输入图像说明

我试图复制这个ACE结构,但是Windows找不到那些缺less虚拟机的GUID主体。 什么会造成这个问题?

那么这是一个奇怪的手段。

关键是Windows / Hyper-V在某个地方引用了一个“列表”,告诉它哪些虚拟机在服务器上注册了。 我的虚拟机分散在多个驱动器中,所以必须有一个集中的存储库。 原来是这样的

C:\ ProgramData \ Microsoft \ Windows \ Hyper-V \ Virtual Machines

有符号链接指的是实际configurationXML文件的物理位置。 我注意到有问题的VM链接有一个“锁”图标。 在这里输入图像说明

我编辑了麻烦的符号链接的安全ACL。 果然,它没有像其他的NT虚拟机帐户,所以我把它授予用户组完全控制权。 重新启动Hyper-V虚拟机pipe理服务,它可以再次加载丢失的虚拟机。 它似乎没有虚拟机帐户工作。

仍然没有得到完整的深层次的答案,我正在寻找解释这些虚拟机帐户Hyper-V要求,但至less原来的虚拟机configuration可以重用。