[TIP] Hyper-V: transferir (export / import) maquinas virtuales Windows 11 - Problema de TPM

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 20580

    [TIP] Hyper-V: transferir (export / import) maquinas virtuales Windows 11 - Problema de TPM

    Cuando transferimos mediante export / import una maquina virtual windows 11 desde una maquina fisica a otra, esta no arranca y da un mensaje de error: "The key protector could not be unwrapped. Details are included in the HostGuardian-Client event log".

    La virtual importada arranca si desactivamos el TPM en la configuracion de la virtual, pero lo logico es tenerlo activvo.

    Es un problema de certificados, para solucionarlo, en la maquina origen miramos los certificados con el comando:

    Código:
    certutil -store "Shielded VM Local Certificates"
    Lo cual nos mostrará algo similar a esto:

    Código:
    [X:\]certutil -store "Shielded VM Local Certificates"
    Shielded VM Local Certificates "Shielded VM Local Certificates"
    ================ Certificate 0 ================
    Serial Number: 16f8da6e4aa4749346e9f73333421868
    Issuer: CN=Shielded VM Signing Certificate......
    -..........
    
    ================ Certificate 1 ================
    Serial Number: 437c46405bec4b9643e937094a1723c6
    Issuer: CN=Shielded VM Encryption Certificate .....
    .........​

    Y nos fijamos sobre todo en los SerialNumber de cada uno de los certificados para poder exportarlos.

    Ahora creamos una carpeta para contener la exportacion, por ejemplo: c:\temp. Y ejecutamos los dos comandos de exportacion cada uno con el SerialNumber anterior, sustiyendo la "password" con la que queramos.

    Código:
    certutil -exportpfx -p "password" "Shielded VM Local Certificates" 16f8da6e4aa4749346e9f73333421868 C:\Temp\ShieldedVMEncryption.pfx
    ​certutil -exportpfx -p "password" "Shielded VM Local Certificates" 437c46405bec4b9643e937094a1723c6 C:\Temp\ShieldedVMSigning.pfx
    ​
    Copiamos la carpeta c:\temp a la nueva maquina. Y desde ella ejecutamos para importar:

    Código:
    certutil -importpfx "Shielded VM Local Certificates" c:\Temp\ShieldedVMEncryption.pfx​
    certutil -importpfx "Shielded VM Local Certificates" c:\Temp\ShieldedVMSigning.pfx​
    Una vez importados, la virtual ya arrancará sin problemas.
  • jquilezl
    Super Moderator
    • Dec
    • 724

    #2
    Curioso, si copio y pego en una terminal el primer código, me da error de que no lo encuentra. Sin embargo, si en la misma terminal escribo directamente lo mismo, sí funciona:
    A saber qué más pega el copy paste.

    Microsoft Windows [Versión 10.0.22631.2265]
    (c) Microsoft Corporation. Todos los derechos reservados.

    C:\Windows\System32>certutil -store "Shielded VM Local Certificates"​
    Shielded VM Local Certificates​
    CertUtil: -store error del comando: 0x80070002 (WIN32: 2 ERROR_FILE_NOT_FOUND)
    CertUtil: El sistema no puede encontrar el archivo especificado.



    C:\Windows\System32>certutil -store "Shielded VM Local Certificates"
    Shielded VM Local Certificates "Certificados locales de VM blindadas"
    ================ Certificado 0 ================
    Número de serie: 2566c4e968c751a64cc78a08abe0cc89
    Emisor: CN=Shielded VM Encryption Certificate (UntrustedGuardian) (PC01)
    ...
    Prueba de cifrado correcta

    ================ Certificado 1 ================
    Número de serie: 4b2f63a770d2ce8847ce7626f02334bd
    Emisor: CN=Shielded VM Signing Certificate (UntrustedGuardian) (PC01)
    ...
    CertUtil: -store comando completado correctamente.

    C:\Windows\System32>

    Comentario

    • jmtella
      Administrator
      • Nov
      • 20580

      #3
      Originalmente publicado por jquilezl Ver Mensaje
      Curioso, si copio y pego en una terminal el primer código, me da error de que no lo encuentra. Sin embargo, si en la misma terminal escribo directamente lo mismo, sí funciona:
      A saber qué más pega el copy paste.

      Microsoft Windows [Versión 10.0.22631.2265]
      (c) Microsoft Corporation. Todos los derechos reservados.

      C:\Windows\System32>certutil -store "Shielded VM Local Certificates"​
      Shielded VM Local Certificates​
      CertUtil: -store error del comando: 0x80070002 (WIN32: 2 ERROR_FILE_NOT_FOUND)
      CertUtil: El sistema no puede encontrar el archivo especificado.



      C:\Windows\System32>certutil -store "Shielded VM Local Certificates"
      Shielded VM Local Certificates "Certificados locales de VM blindadas"
      ================ Certificado 0 ================
      Número de serie: 2566c4e968c751a64cc78a08abe0cc89
      Emisor: CN=Shielded VM Encryption Certificate (UntrustedGuardian) (PC01)
      ...
      Prueba de cifrado correcta

      ================ Certificado 1 ================
      Número de serie: 4b2f63a770d2ce8847ce7626f02334bd
      Emisor: CN=Shielded VM Signing Certificate (UntrustedGuardian) (PC01)
      ...
      CertUtil: -store comando completado correctamente.

      C:\Windows\System32>
      Las comillas... deben ser totalmente horizontales y en post estaban mal... las corrijo (ya que estan mal en varios sitios)

      Comentario

      • jquilezl
        Super Moderator
        • Dec
        • 724

        #4
        Bueno, funciona tal como has indicado.
        En un host W11 Enterprise he creado una VM W11, gen2 con TMP sin blindar. La inicio, configuración básica y la apago. La exporto a una carpeta.
        Ahora, por probar si hay diferencia, la blindo, la inicio (tarda un porrón más) y la apago. La exporto a otra carpeta.
        Copio ambas carpetas exportadas a otro equipo con W11 Enterprise.
        Importo la primera, la que está sin blindar. Me deja importarla en contexto (en la misma carpeta en que la he copiado por la red). La intento iniciar y me da fallo de certificado,
        Importo la segunda, la blindada. No me deja importarla en contexto, pero sí hacer una copia, creándole un identificador único nuevo. La intento iniciar y, evidentemente, da el mismo fallo de certificado.
        Importo en el segundo host los dos certificados generados como has indicado y ya me deja iniciar correctamente las dos VM.

        Gracias Jose por la información.

        Comentario

        Trabajando...
        X