Hi,
I have basically the same problem as DanielRay: Bitlocker volumes won't auto-unlock unless a user logs into the system.
My setup:
Physical machine with Windows Server 20H2 (Core) and Hyper-V enabled. Two storage pools (one "simple", one "mirror") with two Disks and two Volumes (D: and E:). Both volumes are BitLocker encrypted with auto-unlock enabled. I use a Ryzen 5 3rd gen consumer CPU with firmware TPM.
However, when I restart the server and don't login once, all my shares on volume D: and E: are missing. Also, the administrative shares (D$, E$) won't show up. Accessing via Windows Admin Center WebGUI, I can see, that there is only one volume (C:) under "Files & file sharing".
Once I log in (e.g. via Remote Desktop), the administrative shares instantly appear and Windows Admin Center displays volumes D: and E:. I have to login with the user which enabled Bitlocker auto-unlock, as any other user won't work.
This seems to be, because the ExternalKey encrypter, which has the AutoUnlockProtector=True flag, is stored in the HKCU-registry hive (HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\FveAutoUnlock\<ProtectorGuid>). The HKCU-hive only get loaded, when the specific user signs in. So, the system cannot unlock Bitlocker volumes during system start.
However, I had this exact same scenario working on an older version of Windows Server and different hardware. So, I thought, I made a mistake and encrypted / decrypted all volumes multiple times - even reinstalled the whole system, but I cannot get this to work.
I did some further testing inside some Hyper-V virtual machines with Hyper-V TPM emulation:
- Windows Server 2019 Desktop Experience, "regular volume" for reference and Storage Pool Disk+Volume. Auto-unlock worked as expected without the need for a user to login.
- Windows Server 2019 Core, "regular volume" for reference and Storage Pool Disk+Volume. Everything worked as expected. My assumption was, that that the GUI versions did something different.
- Windows Server 20H2 (Core), "regular volume" for reference and Storage Pool Disk+Volume. Even in this scenario, everything worked as expected. I have no idea why, because it matches my physical machine best.
The main difference between my physical machine and my virtual machines I noticed was, that the HKCU...\FveAutoUnlock is not present. I assume, that’s why auto-unlock works, because it is not dependent on the HKCU-hive. Sadly, I don't know why BitLocker behaves differently.
Some reasons I can think of:
- Different behavior of systems with Hyper-V Hypervisor / without Hyper-V Hypervisor (although I got this working some years ago on a bare metal Hyper-V host).
- Different behavior of AMD Firmware TPM and Hyper-V emulated TPM
- ?
If anyone has additional ideas or hints, I could test, please let me know. Next Thing I try is using a discrete TPM.