X

Как узнать и изменить UUID/GUID компьютера?

Каждый компьютер в сети должен иметь уникальный идентификатор UUID или GUID (в терминологии Microsoft). Он позволяет на базе этого ID аутентифицировать и активировать (при необходимости активации лицензий) компьютер.

Чтобы узнать GUID Windows компьютера, выполните команду Powershell на локальном компьютере:

get-wmiobject Win32_ComputerSystemProduct  | Select-Object -ExpandProperty UUID

или удаленно:

get-wmiobject Win32_ComputerSystemProduct -computername PC_NAME | Select-Object -ExpandProperty UUID

Это же значение содержится в реестре в ветке HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid.

Однако, если речь идет о виртуальных машинах, Vmware технически позволяет создать (или клонировать) машины, сохраняя идентичный UUID, что конечно плохо. UUID основан на пути к конфигурационному файлу VM и он генерируется, когда вы первый раз включаете машину или ресетите (сбрасываете до изначального состояния) её. Эта информация записывается в SMBIOS файл конфигурации виртуальной машины — *.vmx. Файл текстовый, его можно редактировать в текстовом редакторе.

Нужная вам строка будет выглядеть примерно так: uuid.bios = «00 11 22 33 44 55 66 77-88 99 aa bb cc dd ee ff»

Соответственно, вы можете поменять значение на уникальное. Все действия необходимо производить на выключенной виртуальной машине.

Больше информации в статье Vmware.

Альтернативно, вы можете изменить UUID группы виртуальных машин, если они расположены на ESXi, через PowerCLI, используя скрипт на Powershell.

Для запуска скрипта вам нужно указать IP адрес ESX хоста в качестве аргумента, где находится виртуалка. Например, changeUUID.ps1 192.168.0.10.

if ($args[0].length -gt 0) { 
    connect-viserver $args[0]
    $VMs = get-vm
    foreach ($vm in $VMs){
        $date = get-date -format “dd hh mm ss”
        $newUuid = “56 4d 50 2e 9e df e5 e4-a7 f4 21 3b ” + $date
        echo “VM: ” $VM.name “New UUID: ” $newuuid
        $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
        $spec.uuid = $newUuid
        $vm.Extensiondata.ReconfigVM_Task($spec)
        start-sleep -s 2
    }
}
else {Echo “Must supply IP address of ESX host. e.g. .changeUUID.ps1 192.168.0.10”}

[Посещений: 6 201, из них сегодня: 1]