我正在尝试使用以下命令在64位Windows 7系统上运行bitlocker加密检查:
import os
os.popen('C:\Windows\System32\manage-bde.exe -status c:').read()并且它返回'‘(nothing)。
我也尝试过使用subprocess.Popen,也得到了同样的结果。
这是在64位Windows 7计算机上运行的32位版本的Python 2.6.6。当我使用64位版本的Python时,os.popen和subprocess.Popen都可以工作,但我无法使用64位Python,因为我有许多32位系统需要支持,而py2exe不支持64位平台上的捆绑。
谁知道我是否可以让subprocess.Popen或os.popen在使用32位版本的64位Windows系统上工作?我不确定我错在哪里。
或者,如果有人知道如何在不使用manage-bde.exe的情况下检查Windows7系统上的完全位块加密,我将不胜感激。
发布于 2011-03-01 23:33:08
manage-bde.exe位于“真正的”System32目录中。32位应用程序在尝试访问时会自动重定向到%windir%\SysWOW64。您可以通过SysNative别名访问它:
import os
os.popen(r'C:\Windows\SysNative\manage-bde.exe -status c:').read()发布于 2011-03-21 04:59:26
解析manage-bde的输出有点麻烦。在未来的Windows版本中,输出格式可能很容易更改,您的脚本可能会中断。
更干净、更易维护的替代方案是使用BitLocker WMI提供程序Win32_EncryptableVolume。具体地说,是GetProtectionStatus方法。
发布于 2017-03-04 00:10:41
如前所述,您可以通过Sysnative别名(即%windir%\Sysnative)从“实际”System32目录访问64位应用程序。但请注意,%windir%\Sysnative仅为32位应用程序定义,对64位应用程序无效:“64位应用程序不能使用Sysnative别名,因为它是虚拟目录而不是真实目录”(link。
https://stackoverflow.com/questions/5144402
复制相似问题