在VM主机/ VM中查找SCVMM管理服务器

时间:2011-06-18 23:15:04

标签: powershell registry hyper-v

是否可以从Hyper-v主机中找到SCVMM管理服务器?这可能通过powershell吗?我试图找到哪台机器管理我的一个Hyper-v主机。我没有运气通过registry / wmi搜索。有什么想法吗?

提前致谢!

4 个答案:

答案 0 :(得分:1)

不确定powershell,但我今天必须这样做。

1)查找scvmm的端口配置。到目前为止,5985看起来像一个:Link

2)在您的主机上,运行 netstat -ano | find" 5985"

3)那应该返回连接的列表scvmm管理服务器。

答案 1 :(得分:0)

据我所知,没有。您可以做的是查询所有SCVMM服务器,看看哪些服务器知道该客户。

加载VMM模块并连接到VMM。

# VM name, might or might not be hostname
$guestToLook = "myLostVM"
# A list of all of your VMM servers
$VMMServers = @("vmmsrv01", "vmmsrv02", "vmmsrv03")
$VMMServers | % {
    # Connect to VMM server
    Get-VMMServer $_
    # Get a VM from the VMM host by guest name
    $vm = Get-VM -name $myLostVM
    # If VM object is returned, you got the VM from current VMM host.
    if($vm.Name -eq $myLostVM) { "{0} is managed by VMM host: {1}" -f $vm.Name, $_}
}

答案 2 :(得分:0)

这是PowerShell的解决方案。

首先,我们需要主机上的注册表路径以获取SCVMM配置值。

  1. $ scvmmAgentKeys =' HKLM:\ SOFTWARE \ Microsoft \ Microsoft System Center虚拟机管理器代理\安装'
  2. 现在我们从注册表路径中获取SCVMM代理端口。

    1. $ wsManTcpPort =(Get-ItemProperty -Path $ scvmmAgentKeys -Name WSManTcpPort).WSManTcpPort
    2. 最后,收集正在侦听该端口的地址。

      1. $ scvmmAddress =(Get-NetTCPConnection -LocalPort $ wsManTcpPort).LocalAddress |获得独特|其中{$ _ -ne" ::" }
      2. 请注意,如果其他任何内容在同一端口上建立连接(写入时的默认端口为5985),则$ scvmmAddress将是一个数组,其中包含其他已建立连接的地址,这些连接不一定是SCVMM。

答案 3 :(得分:0)

太棒了。唯一的更正应该是

3. $scvmmAddress = (Get-NetTCPConnection -LocalPort $wsManTcpPort).**Remoteaddress** | Get-Unique | where { $_ -ne "::" }