Entsperren Sie das Bitlock-Datenlaufwerk als Standardbenutzer über die Befehlszeile

Entsperren Sie das Bitlock-Datenlaufwerk als Standardbenutzer über die Befehlszeile

Ich habe einen Windows 10 Pro-PC, keine Domäne, ich verwende BitLocker nicht auf dem Systemlaufwerk, habe aber einige feste Datenlaufwerke mit BitLocker und einem Kennwort verschlüsselt (kein TPM).

Wenn ich diese Laufwerke entsperren möchte, kann ich sie im Datei-Explorer auswählen und wählen. Unlock Drive...Nach Eingabe meines Passworts wird das Laufwerk entschlüsselt und ich kann es verwenden.

Da ich einige dieser Laufwerke mit demselben Passwort habe, habe ich ein Skript geschrieben, um sie alle gleichzeitig zu entsperren.

Unlock-BitLocker -MountPoint X: -Password $myPassword

Dies funktioniert einwandfrei, wenn es als Administrator mit erhöhten Rechten ausgeführt wird. Wenn ich das Skript jedoch als mein normaler Standardbenutzer ausführe, schlägt es fehl:

Get-CimInstance: Zugriff verweigert

WBEM_E_ACCESS_DENIED (0x80041003) Der aktuelle Benutzer ist nicht berechtigt, die Aktion auszuführen.

Ich gehe davon aus, dass sowohl der Datei-Explorer als auch das PowerShell-BitLocker-Modul dieselbe Win32-API verwenden. Warum funktioniert einer als Standardbenutzer und der andere nicht?

Beim Benutzen:

manage-bde –unlock E: -rp password

Ich bekomme:

BitLocker Drive Encryption: Configuration Tool version 10.0.14393
ERROR: An attempt to access a required resource was denied.
Check that you have administrative rights on the computer.

Mithilfe des Process Monitors kann ich sehen, dass der Zugriff auf den folgenden Registrierungsschlüssel verweigert wird:

HKLM\Software\Microsoft\WBEM\CIMOM

Ich habe auch herausgefunden, dass das Inhaltsmenü des Datei-Explorers die ausführbare Datei aufruft:

%systemroot%\System32\bdeunlock.exe

Daraufhin wird das kleine Popup-Fenster zur Eingabe des Kennworts angezeigt.

Bei Verwendung wird im Prozessmonitor bdeunlock.exekein Zugriff darauf angezeigt. Es scheint also, dass das Laufwerk entsperrt wird, ohne auf diesen Schlüssel zuzugreifen.HKLM\Software\Microsoft\WBEM\CIMOM

Es sieht so aus, als würden sowohl die PowerShell-Cmdlets als auch manage-bde.exeWMI verwenden:

Get-CimInstance
-Namespace "root\cimv2\Security\MicrosoftVolumeEncryption"
-ClassName Win32_EncryptableVolume

und ein Standardbenutzer hat darauf keinen Zugriff.

bdeunlock.exeSie können die Funktion jedoch möglicherweise direkt FveOpenVolumeWin FVEAPI.dllder Bitlocker-API-Datei verwenden, ohne vorher WMI zu verwenden.

Gibt es eine Möglichkeit, ein mit Bitlock gesperrtes Festplattenlaufwerk über die Befehlszeile als Standardbenutzer zu entsperren?

Antwort1

Sie können dem Standardbenutzer oder einer Sicherheitsgruppe, deren Mitglied sie sind, expliziten Zugriff auf das WMI-Objekt über den Pfad gewähren, den Sie unter ermittelt haben wmimgmt.msc.

Auf diese Weise müssen Sie dem Konto weder lokale Administratorrechte noch erhöhte Berechtigungen erteilen. Der Benutzer erhält lediglich den genauen und expliziten Zugriff auf die korrelierten WMI-Namespaces, den er nach Bedarf benötigt, und sonst nichts – die mindestens erforderlichen Berechtigungen zum Ausführen des Vorgangs.

Anweisungen

  1. Drücken SieWindows-Schlüssel+R, eintippen wmimgmt.mscund drücken Sie Enter. Klicken Sie mit der rechten Maustaste aufWMI-Steuerung (lokal)Option links und wählen Sie dann Properties.

  2. Gehen Sie zu SecurityRegisterkarte aus den Eigenschaftenfenstern und erweitern Sie dann dieRootzum Namespace auf die spezifischen WMI-Namespaceobjekte, für die Sie den Zugriff explizit gewähren müssen.

  3. Sobald Sie das entsprechende WMI-Namespace-Objekt markiert haben, wählen Sie die SecurityOption unten rechts im Eigenschaftenfenster aus, fügen das Benutzerkonto oder die Sicherheitsgruppen entsprechend hinzu und erteilen und legen bei Bedarf die entsprechenden Berechtigungen fest.


Beispiel-Screenshot

Bildbeschreibung hier eingeben


Weitere Ressourcen

Antwort2

Im Zuge meiner Recherchen habe ich, wie in der Frage selbst erläutert, die Sache genauer untersucht.

Verwenden Sie das PowerShell-Cmdlet, Unlock-Bitlockerda dessen Code auf jedem Windows-Computer im Klartext verfügbar ist.

Der erste Fehler während der Ausführung des Cmdlets tritt beim Aufruf auf:

Get-CimInstance 
 -Namespace "root\cimv2\Security\MicrosoftVolumeEncryption" `
 -ClassName Win32_EncryptableVolume

Ich bekomme eineAccess Denied

@Homey_D_Clown_IT hat vorgeschlagen, die Sicherheit des betreffenden WIM-Objekts zu ändern. Öffnen Sie dazu , wmimgmt.mscklicken Sie mit der rechten Maustaste auf den WMI Control (Local)Knoten links und klicken Sie auf Properties. Wählen Sie die SecurityRegisterkarte aus, suchen Sie das Objekt Root\CIMV2\Security\MicrosoftVolumeEncryptionund klicken Sie auf die SecuritySchaltfläche. Fügen Sie eine Gruppe oder einen Benutzer hinzu, dem Sie das Entsperren der Bitlock-Laufwerke erlauben möchten. Aktivieren Sie die Berechtigung „Zulassen“ Execute Methods.

Anschließend kann der Standardbenutzer das manage-bde.exeTool zum Entsperren des Laufwerks verwenden:

manage-bde -unlock X: -pw

das Problem besteht darin, dass der Benutzer zur Eingabe des Kennworts aufgefordert wird. Ich muss derzeit vier Laufwerke entsperren und möchte das Kennwort lieber nur einmal eingeben.

Wenn Sie das Cmdlet „Unlock-Bitlocker“ in PowerShell verwenden, wird der vorherige Fehler umgangen, dafür wird aber ein anderer angezeigt:

Zugriff in Get-BitLockerVolumeInternal verweigert …

Wenn ich mir den Code des PowerShell-Moduls anschaue, bricht er ab, wenn der Code versucht, auf das Wiederherstellungskennwort zuzugreifen, was nur ein Administrator tun kann. Wenn ich den Code so ändere, dass dieser Fehler ignoriert wird und ich einfach weitermache, anstatt abzubrechen, funktioniert er einwandfrei.

Aber das ist ein schlechter Hack, denn ich musste die Moduldatei übernehmen, die Berechtigungen ändern und dann den Code bearbeiten. Das sind alles Dinge, die ich mit einer Windows-Systemdatei nicht tun sollte. Außerdem werden meine Änderungen beim nächsten Update dieses PowerShell-Moduls durch Microsoft überschrieben.

Eine Lösung besteht darin, die relevanten Codeteile in mein eigenes PowerShell-Modul zu kopieren und dieses stattdessen zu verwenden. Das ist möglicherweise nicht einmal legal.

Eine andere Lösung besteht darin, das Wiederherstellungskennwort zu entfernen:

manage-bde -protectors -delete X: -type recoverypassword

Damit bleibt mir nur noch ein einziger Schutz für das Bitlock-Laufwerk, nämlich das normale Passwort.

Warum ist es eine gute Idee, das Wiederherstellungskennwort von einem mit BitLocker verschlüsselten Festplattenlaufwerk zu entfernen?

Jeder Administrator kann das Wiederherstellungskennwort sehen und es zum Entschlüsseln des Laufwerks verwenden, WFT!

Mir ging es nur darum, die Daten auf den Laufwerken vor anderen zu schützen. Jemand könnte meinen PC stehlen, eine Live-CD mit Linux starten und sich so Zugriff auf ein Administratorkonto meiner Windows-Installation verschaffen.

Nachdem ich die Wiederherstellungskennwörter entfernt habe, kann ich das Original- Unlock-BitlockerCmdlet als Standardbenutzer verwenden, um meine Laufwerke zu entsperren. Ich musste noch die Berechtigungen für das WMI-Objekt wie oben beschrieben ändern.

Bearbeiten:Nach einem Windows 10 Update wurden in diesem Fall 14939.222die Berechtigungen auf dem root\cimv2\Security\MicrosoftVolumeEncryptionServer zurückgesetzt und ich musste sie erneut ändern. Eine dauerhafte Lösung scheint das also doch nicht zu sein.

Aufgrund dieser Zurücksetzung durch Windows Update habe ich beschlossen, die Änderung für die WMI-Berechtigung per Skript vorzunehmen. Ich verwende Set-WmiNamespaceSecurity.ps1das in diesemMicrosoft-Blogbeitrag, dann kann ich verwenden:

.\Set-WmiNamespaceSecurity.ps1 -namespace "root/cimv2/Security/MicrosoftVolumeEncryption" -operation add -account MyUserName -permissions  MethodExecute,Enable

Antwort3

Ich fürchte, Sie können dies nicht tun, wenn Sie das Skript als Sie selbst ausführen, es sei denn, Sie deaktivieren die Benutzerkontensteuerung auf Ihrem Computer vollständig. Wenn Ihre Frage jedoch mit der Vereinfachung der Verwendung Ihres Skripts zusammenhängt, habe ich vor einiger Zeit eine Lösung gefunden und verwende sie jedes Mal, wenn ich Skripts mit erhöhten Berechtigungen ausführen muss.

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) 
{   
    $arguments = $myInvocation.mycommand.definition
    Start-Process powershell -Verb runAs -ArgumentList $arguments
    Break 
}

Nachdem Sie diesen Code am Anfang eines Skripts eingefügt haben, wird das Skript automatisch mit erhöhten Berechtigungen erneut ausgeführt und alle seine Argumente werden erneut an die neue „Instanz mit erhöhten Berechtigungen“ übergeben.

Antwort4

Ich habe mir den Vorgang mit Process Monitor angesehen, um herauszufinden, was der Windows Explorer genau macht, wenn man in der GUI „Laufwerk entsperren“ auswählt. Es wird zufällig bdeunlock.exe gestartet, gefolgt vom Laufwerksbuchstaben. Dies scheint eine App zu sein, die nach dem Passwort fragt. Dies funktioniert mit Standardbenutzerberechtigungen.

verwandte Informationen