【发布时间】:2020-02-26 12:17:47
【问题描述】:
我使用较新的 Microsoft.Management.Infrastructure,我想将参数传递给 Msvm_VirtualSystemManagementService 类的 ModifySystemSettings 方法:
参数类型是嵌入 Msvm_VirtualSystemSettingData 实例的字符串。
在旧版本 System.Management 中,可以使用 ManagementBaseObject.GetText(TextFormat.WmiDtd20) 将其转换为字符串:
以下代码显示 ModifySystemSettings 方法的当前实现。 问题是 snapshotInstance.ToString() 显然是错误的。有谁知道如何正确传递参数?
CimInstance snapshotInstance = session.EnumerateAssociatedInstances(hvNamespace, vm, "Msvm_MostCurrentSnapshotInBranch", "Msvm_VirtualSystemSettingData", null, null).FirstOrDefault();
snapshotInstance.CimInstanceProperties["ElementName"].Value = "testSnapshot";
CimMethodParametersCollection modifySystemSettingsParameters = new CimMethodParametersCollection
{
CimMethodParameter.Create("SystemSettings",snapshotInstance.ToString(),CimType.String, CimFlags.In)
};
if(virtualSystemManagementService != null)
{
CimMethodResult result = session.InvokeMethod(hvNamespace, virtualSystemManagementService, "ModifySystemSettings", modifySystemSettingsParameters);
Console.WriteLine(result.ReturnValue.Value.ToString());
}
我的目标是更改快照的名称。
【问题讨论】:
标签: c# parameters wmi hyper-v msdn