【问题标题】:WMI methods for Hyper-V network management is failing on Windows 2012用于 Hyper-V 网络管理的 WMI 方法在 Windows 2012 上失败
【发布时间】:2013-02-06 13:18:58
【问题描述】:

我一直在尝试使用 WMI 类(使用 C++)来管理 Hyperv 中的虚拟交换机,例如创建、删除、将虚拟网络附加到 VM 等。我能够在 Windows 2008 R2 上完美地完成所有操作。但它们都不能在 Windows 2012 上正常工作。

例如,当我创建一个外部网络时,我在 Msvm_VirtualSwitchManagementService 类的对象上调用了一个名为 CreateSwitchPort 的方法。它在 2k8R2 上工作,但失败,参数返回值为 32768,这意味着失败。谁能指出为什么该方法会返回错误?如何调试问题?有没有我应该给予的权限。非常感谢这方面的任何帮助。

--罗摩克里希那。

【问题讨论】:

    标签: wmi hyper-v


    【解决方案1】:

    Hyper-V 2012 支持以前的WMI API,我已经成功使用了。 Hyper-V 2012 引入了 v2 API,但这与您无关。

    CreateSwitchPort 是一个非常简单的调用。这是一个非常易读的 Python 示例。 Python 调用返回一个添加了 [out] 参数的元组。

        #Create a port on the vswitch.
        (new_port, ret_val) = switch_svc.CreateSwitchPort(
                                            Name=str(uuid.uuid4()),
                                            FriendlyName=vm_name,
                                            ScopeOfResidence="",
                                            VirtualSwitch=extswitch.path_())
    

    检查 VirtualSwitch 参数是否有效。我使用如下所示的 WMI 查询来获取此对象。如果 VirtualSwitch 未连接到外部 NIC,则会失败。您的查询成功了吗?

            return self._conn.Msvm_ExternalEthernetPort(IsBound='TRUE')[0]\
            .associators(wmi_result_class='Msvm_SwitchLANEndpoint')[0]\
            .associators(wmi_result_class='Msvm_SwitchPort')[0]\
            .associators(wmi_result_class='Msvm_VirtualSwitch')[0]
    

    接下来,查看 name Name 参数是否需要唯一。如果使用静态名称,调用可能会因为命名冲突而失败。

    如果这些都没有帮助,则开始实时检查 Hyper-V WMI 对象。您可以使用 Python 和 WMI bindings for Python by Tim Golden

    【讨论】:

    • 非常感谢您的回复。我能够创建一个交换机端口。但是现在我在将交换机附加到虚拟机时遇到了问题。当我检查事件查看器时,我收到“无法添加设备‘合成以太网端口’”错误。这是什么意思?非常感谢任何帮助。
    • 如果答案有帮助,那么您需要接受它。发布一个新问题,给我发消息,我会看看。
    • 很抱歉我应该提到它。是的,您的回复对我了解如何创建交换机端口非常有帮助。我没有对名称参数使用 GUID 格式。只要我通过 GUID 而不是名称,它就成功了。甚至事件查看器日志也很有帮助。再次感谢。
    • 我不确定我是否可以在这里给您发消息,或者是否可以发送消息。我是堆栈溢出的新手。所以我在这篇文章中添加评论。我提出了一个关于如何使用 AddVirtualSystemResources 方法的新问题。请帮助我将虚拟网络连接到虚拟机。
    • 您需要接受我发布的问题的答案。单击答案旁边的向上/向下箭头下的复选标记。这使我能够进行更多编辑,并告诉其他人答案是有用的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多