Ich habe einen Windows 10 Pro-PC, keine Domäne, ich verwende kein BitLocker auf dem Systemlaufwerk, aber ich habe einige Festplatten mit BitLocker und einem Kennwort (kein TPM) verschlüsselt.
Wenn ich diese Laufwerke entsperren möchte, kann ich sie im Datei-Explorer auswählen Unlock Drive...
und nach Eingabe meines Passworts auswählen , dass das Laufwerk entschlüsselt wird und ich es verwenden kann.
Da ich einige dieser Laufwerke mit demselben Kennwort habe, habe ich ein Skript geschrieben, um alle gleichzeitig freizuschalten.
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 normalen Standardbenutzer ausführe, schlägt dies fehl:
Get-CimInstance: Zugriff verweigert
WBEM_E_ACCESS_DENIED (0x80041003) Der aktuelle Benutzer hat keine Berechtigung zum Ausführen der Aktion.
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.
Mit Process Monitor kann ich feststellen, dass der Zugriff auf den folgenden Registrierungsschlüssel verweigert wird:
HKLM\Software\Microsoft\WBEM\CIMOM
Ich fand auch heraus, dass das Inhaltsmenü des Datei-Explorers die ausführbare Datei aufruft:
%systemroot%\System32\bdeunlock.exe
Daraufhin wird das kleine Popup-Fenster zur Eingabe des Passworts angezeigt.
Bei Verwendung bdeunlock.exe
von HKLM\Software\Microsoft\WBEM\CIMOM
wird im Prozessmonitor kein Zugriff auf angezeigt. Es scheint also, dass das Laufwerk entsperrt wird, ohne auf diesen Schlüssel zuzugreifen.
Es sieht so aus, als ob sowohl die PowerShell-Cmdlets als manage-bde.exe
auch WMI verwendet werden:
Get-CimInstance
-Namespace "root\cimv2\Security\MicrosoftVolumeEncryption"
-ClassName Win32_EncryptableVolume
und ein Standardbenutzer hat keinen Zugriff darauf.
Sie bdeunlock.exe
können die Funktion FveOpenVolumeW
in FVEAPI.dll
(Bitlocker-API-Datei) jedoch direkt verwenden, ohne zuvor WMI zu verwenden.
Gibt es eine Möglichkeit, ein Bitlock-Festplattenlaufwerk in der Befehlszeile als Standardbenutzer zu entsperren?
quelle
Unlock-Bitlocker
sind identisch es ist anders.manage-bde.exe
Antworten:
Sie können dem Standardbenutzer oder einer Sicherheitsgruppe gewähren, dass er Mitglied des expliziten Zugriffs auf das WMI-Objekt ist
wmimgmt.msc
.Auf diese Weise müssen Sie dem Konto keine lokalen Administrator- oder erhöhten Berechtigungen erteilen, und sie haben nur den genauen und expliziten Zugriff auf die entsprechenden WMI-Namespaces, den sie benötigen, und nichts weiter - die für die Ausführung des Vorgangs erforderlichen Mindestberechtigungen.
Screenshot-Beispiel
Weitere Ressourcen
quelle
manage-bde -unlock X: -pw
ein Laufwerk entsperren. Da dies mir half, die akzeptierte Antwort zu finden, erteile ich dieser Antwort das Kopfgeld.Als ich meine Forschung fortsetzte, die ich in der Frage selbst erklärte, habe ich mich weiter damit befasst.
Verwenden des PowerShell-Cmdlets,
Unlock-Bitlocker
da sein Code auf jedem Windows-Computer als Klartext verfügbar ist.Der erste Fehler bei der Ausführung des Cmdlets tritt beim Aufrufen auf:
Ich bekomme eine
Access Denied
@Homey_D_Clown_IT hat vorgeschlagen, die Sicherheit für das betreffende WIM-Objekt zu ändern. Öffnen
wmimgmt.msc
Sie dazu denWMI Control (Local)
Knoten auf der linken Seite und klicken Sie mit der rechten MaustasteProperties
. Wählen Sie dieSecurity
Registerkarte und suchen Sie das ObjektRoot\CIMV2\Security\MicrosoftVolumeEncryption
, klicken Sie auf dieSecurity
Schaltfläche. Fügen Sie eine Gruppe oder einen Benutzer hinzu, der das Entsperren der Bitlock-Laufwerke zulassen soll. Überprüfen Sie dieExecute Methods
Berechtigung Zulassen .Danach kann der Standardbenutzer das
manage-bde.exe
Tool zum Entsperren des Laufwerks verwenden:Das Problem ist, dass der Benutzer zur Eingabe des Kennworts aufgefordert wird und ich derzeit vier Laufwerke zum Entsperren habe. Ich würde es vorziehen, das Kennwort nur einmal einzugeben.
Beim Verwenden des Cmdlets Unlock-Bitlocker in PowerShell wird jetzt der vorherige Fehler übergeben, aber ein anderer angezeigt:
Wenn Sie in den Code des PowerShell-Moduls schauen, kommt es zu einem Fehler, bei dem der Code versucht, auf das Wiederherstellungskennwort zuzugreifen. Dies kann nur ein Administrator tun. Wenn ich den Code ändere, um diesen Fehler zu ignorieren und einfach fortzufahren, anstatt zu brechen, funktioniert es einwandfrei.
Dies ist jedoch ein schlechter Hack, da ich den Besitz der Moduldatei übernehmen, die Berechtigungen ändern und dann den Code bearbeiten musste. Alles, was ich mit einer Windows-Systemdatei nicht tun sollte, und meine Änderung wird überschrieben, wenn Microsoft das nächste Mal das PowerShell-Modul aktualisiert.
Eine Lösung besteht darin, die relevanten Codeteile in mein eigenes PowerShell-Modul zu kopieren und stattdessen dieses zu verwenden. Das kann nicht einmal legal sein.
Eine andere Lösung besteht darin, das Wiederherstellungskennwort zu entfernen:
Dadurch habe ich nur einen einzigen Schutz für das Bitlock-Laufwerk, das normale Kennwort.
Warum ist es eine gute Idee, das Wiederherstellungskennwort von einem mit BitLocker verschlüsselten festen Datenlaufwerk zu entfernen?
Jeder Administrator kann das Wiederherstellungskennwort anzeigen und damit das Laufwerk entschlüsseln. WFT!
Mein Ziel war es, die Daten auf den Laufwerken vor anderen Personen zu schützen. Jemand könnte meinen PC stehlen, von einer Live-CD booten und unter meiner Windows-Installation auf ein Administratorkonto zugreifen.
Nachdem ich die Wiederherstellungskennwörter entfernt habe, kann ich das ursprüngliche
Unlock-Bitlocker
Cmdlet als Standardbenutzer zum Entsperren meiner Laufwerke verwenden. Ich musste immer noch die Berechtigungen für das WMI-Objekt wie oben beschrieben ändern.Edit: Nach einem Windows 10 Update wurde in diesem Fall
14939.222
die Berechtigung auf dasroot\cimv2\Security\MicrosoftVolumeEncryption
zurückgesetzt und ich musste sie nochmal ändern. Das scheint also doch keine dauerhafte Lösung zu sein.Aufgrund dieses Zurücksetzens durch Windows Update habe ich beschlossen, die Änderung für die WMI-Berechtigung zu skripten. Ich verwende,
Set-WmiNamespaceSecurity.ps1
was in diesem Microsoft Blog Post verfügbar ist , dann kann ich Folgendes verwenden:quelle
Angesichts der obigen Diskussion sehe ich zwei Lösungen:
Für den zweiten Punkt sehe ich eine (etwas umständliche) Methode für einen Standardbenutzer, um ein Skript als Administrator zu starten, vorausgesetzt, Sie haben Zugriff auf das Administratorkonto, möchten es jedoch nicht für den täglichen Gebrauch verwenden.
Die Idee ist, eine geplante Aufgabe zu verwenden, die jede Minute nach der Anmeldung wiederholt als Administrator ausgeführt wird und nach dem Vorhandensein einer Datei sucht, die den BitLocker-Schlüssel enthält, und nur dann zu handeln, wenn die Datei vorhanden ist. Ein solcher Trigger verbraucht nicht zu viele Ressourcen und verlangsamt den Computer nicht.
In der folgenden Erläuterung wird die DOS-Befehlssyntax verwendet. Bei Bedarf verfügt PowerShell jedoch über eine ähnliche Funktionalität.
Wenn sich die Datei mit dem Schlüssel in befindet
/path/to/keyfile.txt
, ähnelt der geplante Task-Trigger zum Entsperren dem folgenden .bat-Skript:Um den Trigger zu starten, erstellen Sie die Datei über ein anderes Skript, das unter einem Standardbenutzerkonto ausgeführt wird:
Details zu diesen DOS-Befehlen finden Sie im Artikel:
Ein AZ-Index der Windows CMD-Befehlszeile
quelle
Ich fürchte, Sie können dies nicht tun, wenn Sie das Skript selbst ausführen, es sei denn, Sie deaktivieren die Benutzerkontensteuerung auf Ihrem Computer vollständig. Wenn Ihre Frage sich jedoch auf die Vereinfachung der Verwendung Ihres Skripts bezieht, habe ich vor einiger Zeit eine Lösung gefunden, die ich jedes Mal verwende, wenn ich Skripts mit erhöhten Berechtigungen ausführen muss.
Nachdem dieser Code am Anfang eines Skripts eingefügt wurde, wird das Skript automatisch mit erhöhten Berechtigungen erneut ausgeführt, wobei alle Argumente erneut an die neue "erhöhte Instanz" übergeben werden.
quelle
Ich habe den Prozess mit Process Monitor untersucht, um herauszufinden, was Windows Explorer genau macht, wenn ich "Unlock Drive" in der Benutzeroberfläche auswähle. Bdeunlock.exe wird gestartet, gefolgt vom Laufwerksbuchstaben. Dies scheint eine App zu sein, die zur Eingabe des Passworts auffordert. Dies funktioniert mit Standardbenutzerberechtigungen.
quelle
bdeunlock.exe
in meiner Frage erwähnt. Es hat eine GUI, ich möchte keine GUI.