Posibles estados del chip TPM y gestión de bitlocker vía Cmd y Powershell
En este artículo, voy a intentar plasmar las posibles situaciones en las que podemos encontrar y posicionar el chip TPM, con el fin de activar Bitlocker en los equipos de nuestro parque.
Lo primero que debemos conocer es que el comando Manage-bde es el que nos permitirá ir cambiando el estado del chip, los comandos son:
- manage-bde –tpm –t #activa tpm
- manage-bde –tpm –takeownership contraseña #Para tomar propiedad del chip si no somos propietarios.
- manage-bde –on c: –skiphardwaretest –recoverypassword #Para lanzar bitlocker en la unidad c:
Lo segundo que debemos conocer es que como inevitablemente el scripting va a formar parte imprescindible del proceso, hay ciertos comandos y consultas wmi que nos harán conducir el proceso.
Primero y antes de nada, la consulta wmi y la clase que extraerá la información es:
$tpm = Get-WmiObject -class Win32_Tpm -namespace "root\CIMV2\Security\MicrosoftTpm"
De la información extraida en la variable $tpm, nos importa esto:
$tpm.isEnabled_InitialValue = True or False #¿Está habilitado?.
$tpm.isActivated.InitialValue = True or False #¿Está activado?.
$tpm.isOwned_InitialValued = True or False #¿Somos el propietario?.
Y esto nos puede dar las siguientes condiciones y debemos entonces actuar como se describe:
(($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $true) -and ($tpm.IsOwned_InitialValue -eq $true)) #entonces solo queda activar con “manage-bde –on c:….”
(($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $true) -and ($tpm.IsOwned_InitialValue -eq $false)) #Debemos hacernos propietarios y activar 1. manage-bde –tpm –takeownership contraseña y 2. manage-bde –on c:…
#Requieren activación de tpm “ manage-bde –tpm –t” el resto de condiciones:
(($tpm.isEnabled_InitialValue -eq $false) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false))
(($tpm.isEnabled_InitialValue -eq $false) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false))
Y
(($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false))
Saludos.