Erstellen Sie einen Klon der VirtualBox-Maschine, der nach der Installation von Windows keine Windows-Reaktivierung verursacht

Die meisten Anleitungen zum Installieren von Windows auf VirtualBox als Vorlage für schnelle Windows-Jobs weisen Sie an, einige Schritte zur Vorbereitung der virtuellen Maschine zu unternehmen vor der Installation von Windows (die beste Anleitung, die ich gefunden habe: grahamrhay.wordpress.com; ein weiterer ziemlich guter Führer: www.windowstablettv.com ). Leider habe ich diese Anleitungen nicht gelesen, bevor ich Windows auf der VM installiert und aktiviert habe, die ich als Vorlage verwenden wollte.

Ich möchte wissen, wie klonen Sie meine bereits aktive VM so, dass keine erneute Aktivierung von Windows erforderlich ist.

Wenn Sie in der VM-Definitionsdatei der Vorlage (der VBOX-oder XML-Datei für die VM) suchen, hat der Knoten /VirtualBox/Machine/Hardware (XPath-ID) kein Attribut uuid. Wenn ich jedoch versuche, mit VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> eine neue UUID für die Vorlage VM festzulegen, verliert die Vorlage VM ihren Aktivierungsstatus! (Zum Glück hatte ich eine Sicherungskopie der Vorlage erstellt.) Um mein Ziel zu erreichen, kann ich diesen Anleitungen nicht einfach folgen und so tun, als hätte ich sie nicht installiert Windows.

Author: palswim, 2012-09-11

5 answers

Zum Glück bemerkte ich etwas an all meinen virtuellen Maschinen, das ich nicht vorbereitet hatte, wie diese Anleitungen beschrieben hatten.

Ich lief VBoxManage showvminfo <uuid|name> und bemerkte, dass der Wert UUID mit dem Wert Hardware UUID übereinstimmte, was mich zu der Annahme veranlasste, dass die VM den Wert "Machine UUID" als "Hardware UUID" verwenden würde, wenn eine VM-Definition kein Attribut uuid im Knoten /VirtualBox/Machine/Hardware. Für meine Template-VM hatte sie also eine "Hardware-UUID", die ich verwenden konnte; Ich musste nur herausfinden, wie ich sie übertragen konnte alle Klone, die ich machen würde.

Um sicherzustellen, dass die UUID übertragen wird, können Sie einen von zwei Ansätzen verwenden:

  • Sie können die VM-Definitionsdatei der Vorlage direkt bearbeiten. Die "Hardware-UUID" wird nur dann in Klone übertragen, wenn /VirtualBox/Machine/Hardware das Attribut uuid hat. Also, kopieren Sie die /VirtualBox/Machine uuid attribut und fügen Sie es dem /VirtualBox/Machine/Hardware uuid attribut. Sie möchten wahrscheinlich die VirtualBox-Maschinendatenbank danach erneut initialisieren, indem Sie einen von Ihnen ausgeführten VirtualBox-Prozess schließen/beenden. (VBoxSVC manchmal verweilt auf Windows; Möglicherweise müssen Sie es aus dem Task-Manager töten.)
  • Sie können Ihre Vorlage klonen und eine neue VORLAGENVM erstellen und dann mit VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> die "Hardware-UUID" der neuen Vorlage auf die "Maschinen-UUID"/"Hardware-UUID"der ursprünglichen Vorlage setzen. Ich sage, Sie müssen die VM klonen, um eine neue VORLAGENVM zu erstellen, denn wenn Sie versuchen, die "Hardware-UUID" mit diesem Befehl in der ursprünglichen Vorlage festzulegen, wird das Attribut uuid nicht zum Knoten /VirtualBox/Machine/Hardware hinzugefügt, da es dies immer noch implizieren kann von der "Maschinen-UUID" und kopiert diesen Wert daher nicht in einen Klon, den er erstellt.
 12
Author: palswim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-04-15 17:10:37

Dieses Powershell-Skript erledigt die Arbeit:

  1. klonen Sie die Maschine, die bereits aktiviert ist.
  2. Schließen Sie Virtualbox-Präzesse aus dem Task-Manager.
  3. Führen Sie dieses Skript aus und ändern Sie die Variablen an Ihre Werte.

Denken Sie daran, dass die Namen der virtuellen Maschinen Groß-und Kleinschreibung berücksichtigen.

$ORIGVirtualMachineName="BaseDevWin7"
$clonedVirtualMachineName="DevWin7a"
$vboxDir="c:\Program Files\Oracle\VirtualBox"
cd $vboxDir
$uid=$($($(.\VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
.\VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid
 3
Author: Marcelo Saied,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-03-25 06:20:41

Dank der obigen Hinweise habe ich erfolgreich einen Computer mit Win7-Gast geklont, der zu Testzwecken ohne erneute Aktivierung auf einem Kubuntu-Host ausgeführt wird.

Mein Rechner war bereits aktiviert und hatte (wie oben beschrieben) eigentlich keine Hardware-UUID.

Für mich sieht es so aus, als ob die MASCHINEN-UUID nur für die Virtualbox-Verwaltung gedacht ist, während die HARDWARE-UUID von der Windows-Aktivierungslogik verwendet wird. Wenn keine Hardware-UUID vorhanden ist, stellt Virtualbox die Maschinen-UUID für den Gast bereit, dh Microsoft kennt die Maschine UUID.

So hat es in meinem Fall ohne erneute Aktivierung gut funktioniert: 1) Kopieren Sie die virtuelle Maschine (Ordner) mit normalen Datei-Browser. 2) Öffnen Sie die .vbox-Datei in einem einfachen Texteditor. 3) Da es kein UUID-Attribut für die "Hardware" gab, kopieren Sie das UUID-Attribut des Computers (z. B. uuid= " {xxx11111-2222-3333-4444-xxxxxxxxxxxx}") an den Eintrag "hardware". 4) Generieren Sie eine neue UUID für die Maschine, z.B. mit uuidgenerator.net. 5) Überschreiben Sie den UUID-Maschinenwert mit dem generierte UUID-Wert. => Erfolgen.

Um beide Maschinen parallel im VB Manager zu verwalten, ist es kniffliger:
1. Benennen Sie die Festplatte des Klons um .vdi-Datei.
2. Geben Sie in der Befehlszeile eine neue UUID über den Befehl "VBoxManage internalcommands sethduuid .vdi. VBManager setzt eine neue UUID und zeigt sie an.
3. Fügen Sie im VB Manager die neue Maschine hinzu. Bearbeiten Sie den Computer, indem Sie die neue Festplattendatei hinzufügen (und entfernen Sie die ursprüngliche VDI, falls noch vorhanden).

Jetzt hast du eindeutige IDs für alle virtuellen Maschinen und Festplatten. Sie können beide Maschinen im VB-Manager parallel verwalten.

 2
Author: Dieter Schlueter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-23 00:44:41

Voll klonen Sie die Maschine. Starten Sie es nicht.

Über die Befehlszeile:

VBoxManage modifyvm "Geklonten VM name" --hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Verwenden Sie als UUID die Maschinen-ID (oder Hardware-ID, falls vorhanden) des ursprünglichen Computers.

Um die folgende UUID zu erhalten, verwenden Sie:

VBoxManage showvminfo "Ursprünglicher VM-Name"

Dies sollte funktionieren. Getestet auf Windows 10 Gast, bereits aktiviert.

 1
Author: user4691,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-10-19 17:50:07

Die obige Antwort funktioniert! Ich habe es auf einer Windows 10-Vorlage getestet.

" Voll klonen Sie die Maschine. Starten Sie es nicht. Von der Kommandozeile: VBoxManage modifyvm "Geklonten VM name" --hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Verwenden Sie als UUID die Maschinen-ID (oder Hardware-ID, falls vorhanden) des ursprünglichen Computers. Um die diese UUID zu erhalten: VBoxManage showvminfo "Ursprünglicher VM-Name"

Dies sollte funktionieren. Getestet auf Windows 10 Gast, bereits aktiviert.

 0
Author: Mags,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-11-01 17:34:20