首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在64位Windows7系统上使用32位Python os.popen时未返回任何信息

在64位Windows7系统上使用32位Python os.popen时未返回任何信息
EN

Stack Overflow用户
提问于 2011-03-01 00:06:49
回答 3查看 1.6K关注 0票数 1

我正在尝试使用以下命令在64位Windows 7系统上运行bitlocker加密检查:

代码语言:javascript
复制
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系统上的完全位块加密,我将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-01 23:33:08

manage-bde.exe位于“真正的”System32目录中。32位应用程序在尝试访问时会自动重定向到%windir%\SysWOW64。您可以通过SysNative别名访问它:

代码语言:javascript
复制
import os
os.popen(r'C:\Windows\SysNative\manage-bde.exe -status c:').read()
票数 3
EN

Stack Overflow用户

发布于 2011-03-21 04:59:26

解析manage-bde的输出有点麻烦。在未来的Windows版本中,输出格式可能很容易更改,您的脚本可能会中断。

更干净、更易维护的替代方案是使用BitLocker WMI提供程序Win32_EncryptableVolume。具体地说,是GetProtectionStatus方法。

票数 0
EN

Stack Overflow用户

发布于 2017-03-04 00:10:41

如前所述,您可以通过Sysnative别名(即%windir%\Sysnative)从“实际”System32目录访问64位应用程序。但请注意,%windir%\Sysnative仅为32位应用程序定义,对64位应用程序无效:“64位应用程序不能使用Sysnative别名,因为它是虚拟目录而不是真实目录”(link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5144402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档