BitLocker aktivieren mit manage-bde, PowerShell oder WMI


    Tags: , , ,

    Bitlocker LaufwerksverschlüsselungMit Hilfe der Gruppenrichtlinien kann man für BitLocker zwar verschiedene Einstellungen vorgeben, aber die Verschlüsselung startet man damit nicht. Ebenso wenig erstellt man damit Protectors, ohne die BitLocker nicht aktiviert werden kann. Für diese Aufgabe bieten sich manage-bde, PowerShell oder die WMI-Klasse Win32_EncryptableVolume an.

    Grundsätzlich würden sich Admins einen Mechanismus wünschen, mit dem sie die BitLocker-Verschlüsselung zentral anstoßen könnten. Einen solchen bekommt man über verschiedene Lösungen für das Endpoint Management, aber nicht mit den Bordmitteln.

    Automatische BitLocker-Aktivierung

    BitLocker kennt zwar eine automatische Verschlüsselung, aber diese greift nur unter ganz bestimmten Voraussetzungen. Dazu gehört eine moderne Hardware mit TPM (1.2 oder 2.0), auf der UEFI Secure Boot, Platform Secure Boot und DMA aktiviert sind.

    Die Verschlüsselung startet aber erst dann, wenn sich der User an seinem Microsoft-Konto oder an Azure AD anmeldet. Arbeitet man jedoch mit lokalen oder Domänen-Accounts, dann funktioniert die automatische Verschlüsselung nicht.

    In on-prem-Umgebungen muss man BitLocker daher auf andere Weise in Gang setzen. Dies kann man über das Dienstprogramm manage-bde oder ein PowerShell-Script mit den nativen BitLocker-Cmdlets oder WMI tun.

    Protectors als Voraussetzung

    BitLocker unterstützt eine ganze Reihe von Protectors, deren Aufgabe es ist, den Volume Encryption Key zu schützen bzw. freizugeben, wenn die Integrität des Systems oder die Legitimität des Benutzers bewiesen ist.

    Daher kann die Verschlüsselung nicht starten, bevor nicht zumindest ein Protector konfiguriert wurde. Versucht man es trotzdem, etwa über die WMI-Funktion encrypt(), dann erhält man den Fehler 0x8031002E (2150694958).

    Die Methode encrypt() gibt den Fehlercode 2150694958 zurück, wenn kein Protector existiert.

    Sowohl manage-bde als auch Enable-BitLocker bieten die Möglichkeit, beim Aktivieren der Ver­schlüsselung auch gleich die Protectors einzurichten. Bei WMI sind dies getrennte Prozesse.

    Eine solche Trennung zwischen dem Anlegen von Protectors und dem Aktivieren der Verschlüsselung ist unumgänglich, wenn man die Protectors bereits während des OS-Deployment erzeugen möchte. Die Hürden dafür sind indes sehr hoch, weil BitLocker keine Möglichkeit bietet, Benutzer nachträglich zu zwingen, eine beim Deployment vergebene Standard-PIN zu ändern.

    Zulässige Protectors

    Egal welche Methode man wählt, sie kann nur Protectors erzeugen, die nicht im Widerspruch zu den Gruppenrichtlinien stehen. Hat man etwa über die Einstellung Zusätzliche Authentifizierung beim Start anfordern den TPM-Protector oder bestimmte Kombinationen mit TPM ausgeschlossen, dann liegt es auf der Hand, dass man sie nachher auch auf der Kommandozeile nicht erstellen kann.

    Bestimmte Protectors scheitern beim Versuch ihrer Einrichtung, ohne dass man sie über Gruppenrichtlinien ausgeschlossen hat, weil sie über die Default-Einstellungen nicht zulässig sind. Das gilt besonders für den Schutz von Systemlaufwerken durch ein Passwort alleine. Für diesen Versuch kassiert man den Fehler 0x8031006A (2150695018).

    Die Konfiguration von TPM und PIN verhält sich hingegen umgekehrt. Wenn man diesen Protector nicht ausdrücklich über eine Gruppenrichtlinie zulässt, dann scheitert der Vorgang mit dem Fehler 0x80310060 (2150695008). Für TPM alleine gilt das hingegen nicht.

    Schließlich gilt es noch zu bedenken, dass nicht alle Protectors für alle Laufwerke geeignet sind. TPM und Kombinationen mit TPM bleiben für Systemlaufwerke vorbehalten, während etwa Auto-Unlock nur bei Datenlaufwerken funktioniert.

    Verschlüsselung aktivieren

    Der dafür nötige Aufruf sieht mit manage-bde so aus:

    manage-bde -on <Laufwerk:>

    Wenn noch keine Protectors existieren, dann versucht dieser Aufruf, automatisch einen TPM-Protector einzurichten. Ist das etwa wegen einer Gruppenrichtlinie nicht möglich, dann scheitert der Befehl.

    Gibt es noch keinen Protector, dann legt manage-bde automatisch einen für TPM  an. Dies kann an einer GPO-Einstellung scheitern.

    Alternativ kann man Protectors gleich an Ort und Stelle erzeugen, indem man dem Kommando die entsprechenden Parameter mitgibt:

    • RecoveryPassword oder -rp
    • RecoveryKey oder -rk
    • StartupKey oder -sk
    • Certificate oder -cert
    • TPMAndPIN oder -tp
    • TPMAndStartupKey oder -tsk
    • TPMAndPINAndStartupKey oder -tpsk
    • tpm
    • Password oder -pw
    • ADAccountOrGroup oder -sid

    Ein Beispiel für das Systemlaufwerk könnte so aussehen:

    manage-bde -on C: -RecoveryPassword -UsedSpaceOnly

    Als zusätzliche Optionen stehen UsedSpaceOnly und SkipHardwareTest zur Verfügung, um nur den mit Daten belegten Plattenplatz zu verschlüsseln bzw. den Hardware-Test zu überspringen. Mit dem Parameter ComputerName bzw. cn kann man BitLocker auch remote auf anderen PCs aktivieren.

    PowerShell

    Bevorzugt man PowerShell, um BitLocker zu starten, dann ist das Cmdlet Enable-BitLocker dafür zuständig. Auch damit kann man gleich Protectors einrichten, die Parameter dafür sind gleich wie bei Add-BitLockerKeyProtector:

    Enable-BitLocker -MountPoint c: -TpmAndPinProtector

    Auch hier kann man den Aufruf um die Schalter SkipHardwareTest und UsedSpaceOnly ergänzen.

    BitLocker aktivieren und gleichzeitig einen TPMandPIN-Protector anlegen. Der Recovery Key existiert hier bereits.

    Für das Remote-Management fehlt der Parameter ComputerName, so dass man eine Session auf dem Ziel-PC öffnen und den Befehl dort ausführen müsste.

    WMI

    Die WMI-Klasse Win32_EncryptableVolume bietet für diesen Zweck die Funktionen Encrypt() und EncryptAfterHardwareTest(). Letztere erfordert einen Neustart des Rechners. Beide setzen voraus, dass die benötigten Protectors existieren, sie lassen sich mit diesen Methoden nicht erstellen.

    Hier ein Beispielaufruf:

    $bl = Get-WmiObject `
    -Namespace "Root\cimv2\security\MicrosoftVolumeEncryption" `
    -ClassName Win32_EncryptableVolume -Filter 'DriveLetter="c:"' `
    -ComputerName win11-vm1-l1

    $bl.Encrypt()

    Wie man am Parameter ComputerName erkennt, aktiviert dieses Kommando die Verschlüsselung auf einem Remote-PC. Beide Funktionen sind nur über GetWmiObject, aber nicht mit Get-CimInstance verfügbar.

    Zusammenfassung

    Über Gruppenrichtlinien legt man zwar die Einstellungen für BitLocker fest, aber damit lassen sich weder die erforderlichen Protectors anlegen noch die Verschlüsselung starten. Manage-bde und Enable-BitLocker können beide Aufgaben in einem Durchgang erledigen, während die WMI-Klasse Win32_EncryptableVolume dafür separate Funktionen vorsieht.

    Die Cmdlets für das BitLocker-Management lassen sich auf Remote-PCs nicht anwenden. Alternativ kann man daher die WMI-Funktionen verwenden, aber auch manage-bde unterstützt den Parameter ComputerName.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links