【问题标题】:How can i Get local Machine Name in VM using C#?如何使用 C# 在 VM 中获取本地机器名称?
【发布时间】:2019-12-26 09:52:29
【问题描述】:

我们如何获取运行我的虚拟机的本地主机机器名称?

例子:

本地机器名称 --> ABC
虚拟机名称 --> XYZ

如果我试图在 VM 中获取本地机器名称,我将得到 VM 机器名称,即:XYZ。但在这里我需要ABC。 我怎样才能得到?

我试过System.Environment.MachineNameDns.GetHostName() 也试过了。

【问题讨论】:

  • 您想要从 VM 中托管 VM 的主机的名称吗?您使用的虚拟机管理程序是什么?您可以搜索它是否为 VM 提供了一些代理,例如VMware Tools,如果这会以某种方式暴露主机名。

标签: c# .net virtual-machine


【解决方案1】:

是否要使用 System.Environment.MachineName 获取 VM 的主机名?不,你根本不能那样做。

MachineName 仅绑定到正在运行的机器名称(获取 NETBIOS 名称),在您的情况下是正在运行的 VM 名称,而不是您的 VM 主机名。

参考:https://docs.microsoft.com/en-us/dotnet/api/system.environment.machinename?view=netframework-4.7

更新 1: 如果您仍想获取 VM 主机名,请从 VM 中检查此注册表项的注册表值:

HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters

在 .NET 中,我们可以获取此值,您可以使用 Microsoft.Win32.Registry 类中的 API。

【讨论】:

  • 任何参考? TIA
  • 他不想要虚拟机的主机名。他想要运行 VM 的机器的名称。
猜你喜欢
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2011-01-11
  • 2018-03-30
  • 2016-06-29
  • 2022-11-02
  • 2019-02-25
相关资源
最近更新 更多