Как узнать имя виртуальной машины windows

If you are running a virtual machine (VM) on Hyper-V, sometimes you want to know on which Hyper-V host this VM is running. If you don't have access to the Hyper-V host, you need to find that information from within the virtual machines operating system. Luckily, the hostname of the physical Hyper-V ...

If you are running a virtual machine (VM) on Hyper-V, sometimes you want to know on which Hyper-V host this VM is running. If you don’t have access to the Hyper-V host, you need to find that information from within the virtual machines operating system. Luckily, the hostname of the physical Hyper-V server the virtual machine is running on can be found in the virtual machines registry.

You can find that information under the following registry key:

ComputerHKEY_LOCAL_MACHINESOFTWAREMicrosoftVirtual MachineGuestParameters

You will get some additional information about the Hyper-V host as well as the physical Hyper-V Hostname of the VM.

Find the Hostname of a Hyper-V VM in RegistryFind the Hostname of a Hyper-V VM in Registry

You could also run the following PowerShell command to get the Hyper-V hostname inside the VM:

Get-ItemProperty -Path "HKLM:SOFTWAREMicrosoftVirtual MachineGuestParameters"  | Select-Object HostName

Since we run a version of Hyper-V in our Microsoft Azure datacenters, this also works with Azure VMs.

Get physical hostname of a Hyper-V VM using PowerShell (Azure VM)Get physical hostname of a Hyper-V VM using PowerShell (Azure VM)

I hope this post was helpful and shows you how you can find the hostname the physical Hyper-V host of a VM. if you have any questions feel free to leave a comment below.

And yes, the first screenshot was taken on a Surface Pro X running Hyper-V on Windows 10 on ARM.

  • Remove From My Forums
  • Question

  • I have a program that copies a base VM hard drive file from the network to the local machine.  The base VM has Windows Server installed and has been syspreped.  

    The powershell script I use to create the new VM based off of the base hard drive file is as follows:

        powerShellInstance.AddScript(@»New-VM -Name » + strMachineName + @» -MemoryStartupBytes 8GB -BootDevice VHD -VHDPath C:VMrealvhdx.vhdx -Path ‘C:ProgramDataMicrosoftWindowsHyper-V’ -Generation 2 -Switch ‘Externall
    Switch'»);

    When I invoke the script, it works flawlessly.  Unfortunately I do not know the name the actual new Window machine.  I do know the name of the VM but that’s not the same thing.  I need to rename the new machine which is a manual process. 
    I need suggestions on how I can get the name of the new machine so I can automate the task. 

    Maybe I can hardset the IP in the New-VM script and use the IP address to resolve the name?  If so, how?  I would of course have to change the VM back to DHCP but I don’t see that being a huge deal.

    Thanks

    #AutomationNooby


    Bill Greer

  • Remove From My Forums
  • Question

  • I have a program that copies a base VM hard drive file from the network to the local machine.  The base VM has Windows Server installed and has been syspreped.  

    The powershell script I use to create the new VM based off of the base hard drive file is as follows:

        powerShellInstance.AddScript(@»New-VM -Name » + strMachineName + @» -MemoryStartupBytes 8GB -BootDevice VHD -VHDPath C:VMrealvhdx.vhdx -Path ‘C:ProgramDataMicrosoftWindowsHyper-V’ -Generation 2 -Switch ‘Externall
    Switch'»);

    When I invoke the script, it works flawlessly.  Unfortunately I do not know the name the actual new Window machine.  I do know the name of the VM but that’s not the same thing.  I need to rename the new machine which is a manual process. 
    I need suggestions on how I can get the name of the new machine so I can automate the task. 

    Maybe I can hardset the IP in the New-VM script and use the IP address to resolve the name?  If so, how?  I would of course have to change the VM back to DHCP but I don’t see that being a huge deal.

    Thanks

    #AutomationNooby


    Bill Greer

There are several ways you can determine the virtualization host (server with the Hyper-V role enabled), also called the physical host, that a VM is running on.

If the host OS is Windows Server 2008 R2, and the virtual machines on it are using the R2 integrations services, then you can query the following:

$[HKLMSOFTWAREMicrosoftVirtual MachineGuestParameters]
«HostName»=
«PhysicalHostName»=»
«PhysicalHostNameFullyQualified»=
«VirtualMachineName»=

Using SCVMM:

Get-VMMServer cluster.domain.com | Get-VM Server1 | Select-Object vmhost

Replace cluster.domain.com to the FQDN of your VMM cluster and Server1 to the server you’re looking for.

Using PowerShell:

This script pulls the host name from the VM’s registry.

Function Get-VMHost

{

   
(get-item «HKLM:SOFTWAREMicrosoftVirtual MachineGuestParameters»).GetValue(«HostName»)

}

Using WMI and PowerShell

function Get-VMOSDetail

{

    Param(

        [Parameter()]

        $ComputerName = $Env:ComputerName,

        [Parameter()]

        $VMName

    )

    # Creating HASH Table for object creation

    $MyObj = @{}

    # Getting VM Object

    $Vm = Get-WmiObject -Namespace rootvirtualization -Query
"Select * From Msvm_ComputerSystem Where ElementName='$VMName'"
-ComputerName $ComputerName

    # Getting VM Details

    $Kvp = Get-WmiObject -Namespace rootvirtualization -Query
"Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_KvpExchangeComponent"
-ComputerName $ComputerName

    # Converting XML to Object

    foreach($CimXml
in
$Kvp.GuestIntrinsicExchangeItems)

    {

        $XML = [XML]$CimXml

        if($XML)

        {

            foreach
($CimProperty in
$XML.SelectNodes("/INSTANCE/PROPERTY"))

            {

                switch
-exact ($CimProperty.Name)

                {

                    "Data"     
{ $Value = $CimProperty.VALUE }

                    "Name"     
{ $Name  = $CimProperty.VALUE }

                }

            }

            $MyObj.add($Name,$Value)

        }

    }

    # Outputting Object

    New-Object -TypeName PSCustomObject -Property $MyObj

}

Using System Center Configuration Manager:

This T-SQL query can be used to generate a report giving the number of hosts per guest:

SELECT [PhysicalHostNameFullyQualifi0] AS [Host FQDN], COUNT(PhysicalHostNameFullyQualifi0) AS [Count of Guests]
  FROM [v_GS_VIRTUAL_MACHINE]
  GROUP BY [PhysicalHostNameFullyQualifi0]

This T-SQL query can used to generate a report matching hosts to guests 

SELECT sys.Netbios_Name0, vm.PhysicalHostName0, vm.ResourceID
FROM dbo.v_GS_VIRTUAL_MACHINE AS vm
JOIN v_R_System AS sys ON vm.ResourceID = sys.ResourceID

Using MMC:

Resources:

  • Taylor Brown’s blog post of PowerShell scripts for Hyper-V using WMI
  • James O’Neils free library of PowerShell script for managing Hyper-V
  • Brien Posey free e-book about managing Hyper-V with PowerShell


See Also

  • PowerShell Portal
  • Wiki: Portal of TechNet Wiki Portals

Добавил:

Upload

Опубликованный материал нарушает ваши авторские права? Сообщите нам.

Вуз:

Предмет:

Файл:

Скачиваний:

81

Добавлен:

10.02.2015

Размер:

250.95 Кб

Скачать

  1. Таким же способом
    проверьте способность виртуальной
    машины Windows
    Server
    2003 с виртуальной машиной Windows
    XP
    (запустите утилиту ping
    на виртуальной машине Windows
    Server
    2003).

  • Выпишите назначение
    следующих ключей утилиты
    ping:
    t,
    a,
    l,
    w.

  • Поместите в отчет
    скриншот, в котором отражено подтверждение
    возможности установления связи между
    физическим компьютером и виртуальной
    машиной.

Задание 6.
Узнать имя физического компьютера и
название рабочей группы.

Указания к
выполнению

  1. Существует два
    способа узнать имя и рабочую группу
    компьютера. Первый способ: откройте
    окно системных свойств (щелкните правой
    кнопкой мыши по значку Мой
    компьютер – Свойства
    .
    На вкладке Имя
    компьютера

    определите имя компьютера и название
    рабочей группы.

  2. Второй способ (с
    помощью командной строки): для определения
    имени компьютера воспользуйтесь
    утилитой hostname.

Чтобы узнать
название рабочей группы, примените
утилиту nbtstat
(утилита
отображает информацию о протоколе NBT
– NetBIOS
через TCP/IP).
В командной строке введите:
nbtstat
a
<имя компьютера>.

  • Выпишите имя на
    виртуальной машине Windows
    XP
    и название рабочей группы.

  • Экспериментальным
    путем выясните максимальную длину
    имен NetBIOS.

Задание 7.
Изменить имя виртуальной машины и ввести
её в рабочую группу физического
компьютера.

Указания к
выполнению

  1. На виртуальной
    машине Windows
    Server
    2003 откройте окно системных свойств. На
    вкладке Имя
    компьютера

    нажмите кнопку Изменить…
    Введите имя машины (server)
    и название рабочей группы, совпадающее
    с названием рабочей группы виртуальной
    машины Windows
    XP.

  2. Проверьте новое
    имя виртуальной машины с помощью утилиты
    hostname.

  3. Проверьте,
    отображается ли виртуальная машина
    Windows
    XP
    в сетевом окружении виртуальной машины.
    Откройте окно Сетевое
    окружение

    из меню Пуск.
    Слева на панели Сетевых
    задач

    выберите пункт Отобразить
    компьютеры рабочей группы
    .
    Если все сделано правильно, в этом окне
    должно быть два компьютера – обе
    виртуальных машины.

  • Поместите в отчет
    скриншоты, в которых, отражены:

окно
Имя
компьютера

с названием рабочей группы виртуальной
машины Windows
Server
2003, результат выполнения утилиты
hostname,
окно Сетевое
окружение
.

Задание 8.
Проверить способность связи по именам
узлов.

Указания к
выполнению

  1. Запустить
    виртуальную машину Windows
    XP
    названную WinXP.
    На виртуальной машине Windows
    Server
    2003 в командной строке введите:

Ping WinXp

  1. Утилита ping,
    запущенная по IP-адресу,
    проверяет способность физического
    соединения двух узлов. Если использовать
    имя, то будет проверяться также
    способность разрешения имени.

  2. Аналогично
    проверьте связь с сервером на компьютере
    c
    виртуальной машинs
    Windows
    Server
    2003.

  • Поместите в отчет
    скриншот, в котором отражено подтверждение
    возможности установления связи между
    физическим компьютером и виртуальной
    машиной по именам узлов.

Самостоятельная
работа

  • Для всех заданий
    поместите в отчете скриншоты, отражающие
    правильность выполнения заданий.

  1. Подключите к сети
    третий компьютер (физический компьютер
    на котором установлено Oracle VirtualBox).
    Нарисуйте схему полученной сети.
    Проверьте возможность связи по
    IP-адресам.

  2. Добавьте физический
    компьютер в рабочую группу. Проверьте
    возможность связи по именам узлов.

  3. Организуйте
    постоянный опрос физического компьютера
    с одной из виртуальных машин при помощи
    утилиты ping.

  4. Выясните с одной
    из виртуальных машин имя физического
    компьютера при помощи утилиты ping.

  5. Изучите возможности
    утилиты tracert.

  6. Исследуйте
    возможности утилиты
    netstat.

Контрольные
вопросы

  1. Как узнать
    физический адрес компьютера?

  2. Нужно ли перезапускать
    компьютер, чтобы изменения вступили в
    силу, если изменяются следующие
    параметры:

  • настройки стека
    TCP/IP;

  • имя рабочей
    группы;

  • имя компьютера?

  1. Какова максимальная
    длина имен NetBIOS?

  2. Как с помощью
    утилиты ping
    определить достижимость узла? Какая
    информация, полученная при использовании
    утилиты ping,
    служит ответом о достижимости узла?

  3. Как определить
    IP-адрес
    удаленного узла, зная только его
    символьное имя?

  4. Как изменить
    размер пакета утилиты ping?

  5. Параметры свойств
    протокола TCP/IP
    компьютера локальной сети были настроены
    вручную. После этого компьютер может
    устанавливать соединение с любым
    компьютером внутренней сети, но
    компьютеры удаленной подсети остаются
    недостижимыми. Объясните, в чем проблема
    и как ее устранить.

  6. Какая утилита
    определяет имя узла?

Понравилась статья? Поделить с друзьями:
  • Как узнать все системные требования своего компьютера windows 10
  • Как узнать дату установки системы windows
  • Как узнать имя видеокарты на windows 10
  • Как узнать дату установки windows 7 через командную строку
  • Как узнать все пароли на компьютере windows 7