ConvertToReferencePoint 方法不起作用,获取作业参数的 NULL (HyperV 2016)

ConvertToReferencePoint method not working, getting NULL for job parameter (HyperV 2016)

本文关键字:NULL HyperV 2016 参数 不起作用 方法 获取 作业 ConvertToReferencePoint      更新时间:2023-10-16

>我正在尝试先创建一个快照,然后将快照转换为参考点。快照的创建成功,我可以在HyperV管理器中看到它。但是当我尝试使用快照引用调用 ConvertToReferencePoint 方法时,我得到的作业输出为 NULL。

创建快照后,我正在获取与其关联的设置数据并对其进行编辑以重命名创建的快照。我从中提取实例ID字段并生成发送到ConvertToReferencePoint方法的作业路径。CComVariant((L"Msvm_VirtualSystemSettingData.CreationClassName="Msvm_VirtualSystemSettingData",InstanceID="" + snapRef + L""").c_str()));

此外,DeleteSnapshot 和 DeleteSnapshotTree 方法工作正常,即使它们采用路径作为参数Msvm_VirtualSystemSettingData也是如此。我错过了什么吗?

主题相似但问题不同 :(WMI( ExecMethod out 参数 - 无论调用的结果如何,ResultingSnapshot 都是 NULL,为什么?

我什至尝试使用 WMI 资源管理器工具对以下参数进行硬编码。

AffectedSnapshot=\hostnameROOTvirtualizationv2:Msvm_VirtualSystemSettingData.InstanceID="Microsoft:5A58EE16-48E8-46E2-8162-065826537142"
ReferencePointSettings=""

转换为参考点:空响应。

Wbem::Parameters inParams;
//inParams.add(L"AffectedSnapshot", CComVariant((L"Msvm_VirtualSystemSettingData.CreationClassName="Msvm_VirtualSystemSettingData",InstanceID="" + snapRef + L""").c_str()));
inParams.add(L"AffectedSnapshot", CComVariant(L"\\IWF1117030\ROOT\virtualization\v2:Msvm_VirtualSystemSettingData.InstanceID="Microsoft:5A58EE16-48E8-46E2-8162-065826537142""));
inParams.add(L"ReferencePointSettings", CComVariant(L""));
Wbem::ParametersPtr outParams(new Wbem::Parameters);
outParams->add(L"Job", CComVariant());
m_wbemServices->execObjectMethod(L"Msvm_VirtualSystemSnapshotService", L"Name="" + instanceName + L""", L"ConvertToReferencePoint", inParams, outParams);

删除快照:工作正常。

std::wstring instanceName = getSingleInstanceNameForWMIClass(L"Msvm_VirtualSystemSnapshotService");
Wbem::Parameters inParams;
inParams.add(L"AffectedSnapshot", CComVariant((L"Msvm_VirtualSystemSettingData.CreationClassName="Msvm_VirtualSystemSettingData",InstanceID="" + snapRef + L""").c_str()));
Wbem::ParametersPtr outParams(new Wbem::Parameters);
outParams->add(L"Job", CComVariant());
m_wbemServices->execObjectMethod(L"Msvm_VirtualSystemSnapshotService", L"Name="" + instanceName + L""", L"DestroySnapshot", inParams, outParams);

没有错误消息。只是获得空值。 如果有人有示例代码来实现此目的,请分享。

检查如何在 WMI 资源管理器中创建快照。它应该是"恢复"类型,以便ConvertToReferencePoint工作。