Es existiert eine ganze Reihe von Programmen, die eine sichere Verschlüsselung der Laufwerke eines Windows-Rechners ermöglichen. Mit BitLocker bieten aktuelle Windows-Versionen nicht nur eine gute, fest integrierte Lösung an, sondern auch die Möglichkeit, dieses Feature mithilfe der PowerShell zu verwalten und zu betreuen. Wir zeigen, welche Möglichkeiten dem Administrator mit der PowerShell in diesen Fällen zur Verfügung stehen.
Die Verschlüsselung der Laufwerke unter Windows in Nutzerkreisen ist noch immer nicht so populär, wie es unter Sicherheitsaspekten sinnvoll wäre. Gerade für mobile Systeme wie Notebooks ist es ratsam, die Festplatten mit einer transparent arbeitenden Verschlüsselung wie BitLocker zu sichern. So sind die Daten nämlich selbst dann noch geschützt, wenn ein Dieb die Festplatte ausbaut und dann den Zugriff versucht. Für Systembetreuer und Administratoren bedeutet das unter anderem, dass sie die Möglichkeit nutzen sollten, die Einrichtung und Konfiguration der Festplattenverschlüsselung zu automatisieren.
An dieser Stelle kommt dann die PowerShell ins Spiel. Microsoft stellt neben entsprechenden Cmdlets mit "manage-bde" und "repair-bde" auch Kommandozeilen-Werkzeuge bereit. Sowohl die PowerShell-Cmdlets als auch die Kommandozeilen-Befehle erlauben es, alle Aufgaben und Einstellungen auszuführen, die über die Systemsteuerung möglich sind. Zwar hat es die BitLocker-Einstellung bei der Vorabversion von Windows 11 sowie bei der Windows-Version 21H2 von Windows 10 zu einem Link in den neuen Systemeinstellungen gebracht, doch der führt nach wie vor zu Einstellungen in der alten Windows-Oberfläche aus den Zeiten vor Windows 10.
Systemprofis und Administratoren fahren also in diesem Fall mit der Kommandozeile und der PowerShell besser. Wir haben die Beispiele in diesem Beitrag sowohl mit der aktuell auf den Windows-Systemen standardmäßig installierten Version 5.1 als auch unter der Open-Source-Variante PowerShell 7 ausprobiert. Dabei kamen Windows-10- und Windows-Server-2019-Rechner zum Einsatz. Hier ergaben sich in Bezug auf die BitLocker-Cmdlets und -Möglichkeiten keine Unterschiede.
Die Verschlüsselung der Laufwerke unter Windows in Nutzerkreisen ist noch immer nicht so populär, wie es unter Sicherheitsaspekten sinnvoll wäre. Gerade für mobile Systeme wie Notebooks ist es ratsam, die Festplatten mit einer transparent arbeitenden Verschlüsselung wie BitLocker zu sichern. So sind die Daten nämlich selbst dann noch geschützt, wenn ein Dieb die Festplatte ausbaut und dann den Zugriff versucht. Für Systembetreuer und Administratoren bedeutet das unter anderem, dass sie die Möglichkeit nutzen sollten, die Einrichtung und Konfiguration der Festplattenverschlüsselung zu automatisieren.
An dieser Stelle kommt dann die PowerShell ins Spiel. Microsoft stellt neben entsprechenden Cmdlets mit "manage-bde" und "repair-bde" auch Kommandozeilen-Werkzeuge bereit. Sowohl die PowerShell-Cmdlets als auch die Kommandozeilen-Befehle erlauben es, alle Aufgaben und Einstellungen auszuführen, die über die Systemsteuerung möglich sind. Zwar hat es die BitLocker-Einstellung bei der Vorabversion von Windows 11 sowie bei der Windows-Version 21H2 von Windows 10 zu einem Link in den neuen Systemeinstellungen gebracht, doch der führt nach wie vor zu Einstellungen in der alten Windows-Oberfläche aus den Zeiten vor Windows 10.
Systemprofis und Administratoren fahren also in diesem Fall mit der Kommandozeile und der PowerShell besser. Wir haben die Beispiele in diesem Beitrag sowohl mit der aktuell auf den Windows-Systemen standardmäßig installierten Version 5.1 als auch unter der Open-Source-Variante PowerShell 7 ausprobiert. Dabei kamen Windows-10- und Windows-Server-2019-Rechner zum Einsatz. Hier ergaben sich in Bezug auf die BitLocker-Cmdlets und -Möglichkeiten keine Unterschiede.
So kommt die Verschlüsselung aufs Windows-System
Auf aktuellen Windows-10-Rechnern steht BitLocker nur in der Home-Version nicht zur Verfügung. Bei Windows 10 Professional oder Enterprise ist die Software zur Geräteverschlüsselung standardmäßig vorhanden, muss aber in der Regel noch aktiviert werden. Ausnahmen sind dabei beispielsweise die Surface-Geräte von Microsoft – bei ihnen ist diese Art der Verschlüsselung automatisch aktiv.
Auch die Server-Versionen von Windows unterstützen den Einsatz der Laufwerksverschlüsselung. Allerdings ist es bei den Server-Betriebssystemen notwendig, BitLocker über den Server-Manager oder das neue Windows Admin Center als Feature zu installieren. Zudem kann an dieser Stelle die Möglichkeit, Betriebssystem-Volumes von Clientsystemen in Domänennetzwerken mittels der Netzwerkentsperrung beim Neustart automatisch zu entsperren, dann als Feature mit auf das System kommen.
Und natürlich können Sie BitLocker mithilfe der PowerShell auf den Windows-Server bringen. Dazu ist es sinnvoll, zunächst einmal zu überprüfen, ob BitLocker auf dem System bereits installiert ist:
Get-WindowsFeature -Name Bitlocker
Meldet das Cmdlet in der Spalte "Install State", dass das Feature "Installed" ist, ist die Software direkt einsetzbar. Steht dort hingegen "Available", muss der Administrator das Feature noch aufspielen, was mit den dazugehörigen Sub-Features und Werkzeugen mithilfe des folgenden Aufrufs gelingt:
Install-WindowsFeature Bitlocker
-IncludeAllSubFeature
-IncludeManagementTools
Danach meldet das Cmdlet den Status "Success" als "True" und weist explizit darauf hin, dass nun ein Neustart des Betriebssystems notwendig ist. Diesen stoßen Sie mit Restart-Computer direkt über die PowerShell an.
Das Modul und seine Cmdlets
Nach dem Reboot steht dann nicht nur die Laufwerksverschlüsselung, sondern auch das entsprechende PowerShell-Modul mit den Cmdlets [1] für die BitLocker-Verwaltung bereit. Der Aufruf von
Get-command -module Bitlocker
zeigt Ihnen dann, welche speziellen Cmdlets Ihnen nun für die Arbeit mit BitLocker zur Verfügung stehen. Wer sich zunächst über alle Laufwerke seines Windows-Systems und deren Verschlüsselungsstatus informieren möchte, erreicht das durch den Aufruf von Get-BitLockerVolume – das funktioniert aber nur mit Administratorrechten. Der Befehl listet sämtliche Laufwerke auf, die mit dem Rechner verbunden sind. Wollen Sie nur ein bestimmtes Laufwerk anzeigen lassen, dient dazu der Parameter "-MountPoint <Laufwerk>", also beispielsweise
Get-BitlockerVolume -MountPoint "E:"
Dabei zeigen die Optionen "Protection Status", "VolumeStatus" und "AutoUnLock enabled" wichtige Informationen über den aktuellen Zustand der Festplatten beziehungsweise der Partitionen an. Ist die Festplatte verschlüsselt, steht der "Protection Status" auf "On". Der "Vol-umeStatus" ist noch genauer und zeigt an, dass die Platte oder die Partition bereits vollständig verschlüsselt ist. Haben Sie die Platte für die automatische Laufwerksentsperrung konfiguriert, wird das unter "AutoUnlock enabled" angezeigt. Gerade wenn ein System sehr viele Laufwerke aufweist, kann es praktisch sein, nur diejenigen aufzulisten, die eine vollständige Verschlüsselung durch BitLocker aufweisen. Dazu ist es sinnvoll, die Eigenschaft "VolumeStatus" des entsprechenden Objekts wie im folgenden Aufruf abzufragen:
Mithilfe der beiden Cmdlets "Enable-Bitlocker" und "Disable-Bitlocker" können Sie dann ein Laufwerk oder eine Partition ver- beziehungsweise wieder entschlüsseln. Dazu ist wieder das gewünschte Laufwerk zu übergeben.
Zudem benötigt das Kommando zum Verschlüsseln noch einige weitere Parameter. Dazu gehört neben der Verschlüsselungsmethode, die Sie mit dem Parameter "-EncryptionMethod" übergeben, zusätzlich die Mitgabe eines Passworts, mit dem Sie dann anschließend das Laufwerk sperren.
Zudem können Sie anstelle des Parameters "-RecoveryKeyPath" unter anderem den Pfad zu einem Wiederherstellungsschlüssel mitgeben, der beispielsweise auf einem USB-Stick liegt. Außerdem fügen wir noch den Parameter "-EncryptionMethod Aes 256" für die Verschlüsselungsmethode an. Hier wählen Sie in Ihrem Skript zwischen "Aes 256" und "Aes 128". Mit "-UseSpaceOnly" legen wir weiterhin fest, dass wir nur den Speicherplatz auf dem Volumen verschlüsseln wollen, der auch mit Daten belegt ist. Wir haben hier das Passwort sehr einfach mittels des Cmdlets "Read-Host" an eine Variable "$PassW" übergeben, um den Einsatz von "Enable-Bitlocker" zu demonstrieren:
Nach diesem Aufruf ist das Laufwerk verschlüsselt, aber noch nicht "verschlossen". Das geschieht dann mit Hilfe des folgenden Kommandos:
Lock-Bitlocker -MountPoint "E:"
Danach müssen Nutzer, die auf dieses Laufwerk wechseln wollen, im Explorer das Passwort eingeben oder das Cmdlet "Unlock-Bitlocker" zusammen mit dem Passwort nutzen – wobei wir hier wieder davon ausgehen, dass Sie es in der Variablen "$PassW" hinterlegt haben:
Unlock-Bitlocker -MountPoint "E" -Password $Pass
Gerade das Cmdlet "Enable-Bitlocker" bietet noch eine große Anzahl weiterer Parameter und Optionen an. Microsoft stellt dazu eine ausführliche Dokumentation unter [2] bereit, die unter anderem die Verwendung eines TPM-Moduls beschreibt. Auch mit Hilfe des Befehls
get-help Enable-Bitlocker -full
bringen Sie eine ganze Reihe von Beispielen auf den Bildschirm, die demonstrieren, wie die verschiedenen Parameter zum Einsatz kommen.
Direkt von der Kommandozeile
Für die Arbeit mit BitLocker hat Microsoft auf den Betriebssystemen auch ein Befehlszeilenwerkzeug im Angebot, das sich ebenfalls gut für den Einsatz in Skripten eignet. Das Tool heißt "manage-bde" und bietet viele Möglichkeiten zum Einsatz und zur Steuerung der Laufwerksverschlüsselung. Um dieses Kommandozeilentool zu nutzen, sind Administratorrechte – also eine Eingabeaufforderung oder ein PowerShell-Fenster mit erhöhten Rechten – notwendig. Dann zeigt beispielsweise der folgende Aufruf den BitLocker-Status auf dem lokalen System an:
manage-bde status
Die Anzeige ist dabei ziemlich ausführlich und bringt nicht nur den Konvertierungsstatus (Ist die komplette Festplatte verschlüsselt oder nur der verwendete Speicherplatz?), sondern auch die Verschlüsselungsmethode und die eingesetzte Schlüsselschutzvorrichtung auf den Screen. Hier sehen Sie dann sofort, ob das System mit TPM ausgestattet ist und ob dieses beim Volumen mit dem Betriebssystem zum Einsatz kommt. Durch den Aufruf von
manage-bde on <Laufwerk>
manage-bde off <Laufwerk>
schalten Sie dann die Verschlüsselung für das jeweilige Laufwerk ein oder wieder aus. Wollen Sie beispielsweise ein via BitLocker geschütztes Laufwerk entsperren, nutzen Sie dazu den folgenden Befehl mit dem entsprechenden Schlüssel (der immer 48 Stellen umfasst) oder mit dem Wiederherstellungskennwort in der folgenden Form:
Mithilfe des Parameters "-RecoveryKey <Laufwerk>" lesen Sie dann beispielsweise auch einen Schlüssel ein, der auf einem externen Laufwerk abgespeichert ist:
manage-bde – unlock F: -RecoveryKey T:\
Laut der Dokumentation bietet manage-bde auch die Möglichkeit, das TPM-Modul auszulesen und zu konfigurieren. Allerdings verursachte der Aufruf von manage-bde -tpm bei unseren Versuchen sowohl auf aktuellem Windows 10 (Professional und Enterprise in der Version 21H1) als auch auf Windows Server 2019 (Version 1809) eine Fehlermeldung. Diese informierte uns, dass manage-bde das Trusted Platform Modul "in dieser Version von Windows" nicht verwalten könne. Es folgte die Empfehlung, das MMC-Snap-in "TPM verwalten" oder die entsprechenden PowerShell-Cmdlets zu bearbeiten. So konnten wir dann die TPM-Einstellung durch den Aufruf von Get-TP auf den verschiedenen Geräten problemlos anzeigen.
Als Administrator stehen Ihnen mit dem "TrustedPlatformModule" eine ganze Reihe von Cmdlets zur Verfügung. Mit deren Hilfe können Sie das Trusted Platform Modul nicht nur auslesen, sondern unter anderem zurücksetzen oder untersuchen, welche Features das Modul in dem spezifischen Gerät unterstützt.
Zum Abschluss möchten wir der Vollständigkeit halber noch das Kommandozeilen-Werkzeug "repair-bde" erwähnen. Damit bietet Microsoft zusätzlich eine Software an, die laut Beschreibung versucht, kritische Teile eines stark beschädigten Laufwerks zu rekonstruieren und wiederherstellbare Daten zu retten. Das gilt aber ausdrücklich nur, wenn das Laufwerk mithilfe von BitLocker verschlüsselt wurde und der Nutzer über ein gültiges Kennwort oder einen Wiederherstellungsschlüssel zur Entschlüsselung verfügt. Das Tool arbeitet nach der folgenden Syntax:
Dabei sollten Sie mithilfe des Schlüsselpakets und des Wiederherstellungskennworts beziehungsweise -schlüssels Teile eines durch BitLocker geschützten Laufwerks zwar auch dann entschlüsseln können, wenn der Datenträger beschädigt ist. Der Befehl kann ein Laufwerk allerdings nicht reparieren, wenn irgendetwas während des Ver- oder Entschlüsselungsvorgangs fehlgeschlagen ist.
Fazit
Durch eine Verschlüsselung der Laufwerke reduziert sich die Angriffsfläche eines Windows-Systems gerade auf mobilen Endgeräten deutlich. Dadurch, dass BitLocker ein fester Bestandteil der professionellen Versionen von Windows 10 ist und auch bei Windows 11 sein dürfte, ist es eine gute Wahl zur Verschlüsselung sowohl der Laufwerke in den Rechnern als auch von externen Speichermedien wie USB-Sticks. Microsoft bietet mit einer Reihe von PowerShell-Cmdlets und den zusätzlichen Kommandozeilen-Programmen viele Möglichkeiten, die Konfiguration und Überwachung der Laufwerksverschlüsselung mit Hilfe von Skripten zu automatisieren.