我觉得我正在服用疯狂的药丸。因此,为了确保我正在使用的工作 api 的安全性,我必须从注册表中读取 2 个内容,然后将其传递给 suds。问题在于读取注册表值。无论我做什么,我都会得到“错误2系统找不到指定的文件”。我知道注册表文件在那里,但它不会让我阅读它。我已经在 2 个不同的 2008 r2 服务器上尝试了下面的代码。在一个 Windows 7 机器上,我可以读取这些值……但只能在一台机器上。下面是代码,我需要更改实际目录(以保护匿名)
from _winreg import *
key = OpenKey(HKEY_LOCAL_MACHINE, r"Software\a\b", 0, KEY_ALL_ACCESS)
devguid = QueryValueEx(key, "DeviceID")
devid = QueryValueEx(key, "DeviceGUID")
devnm = socket.gethostname()
如果我将目录更改为 \a\b 以外的其他目录,则它可以正常工作。我已经验证这些目录的权限与我可以读取的目录完全相同。
另外,我可以从 cmd 运行以下命令并获得我需要的输出: reg query HKLM\software\a\b /v DeviceGUID 但是当我从 python 脚本运行它时,它说找不到指定的文件。
import os
cmd = "reg query HKEY_LOCAL_MACHINE\software\a\b /v DeviceGUID"
a = os.system(cmd)
print a
以管理员身份运行我的脚本或任何东西都无济于事。由于某种原因,python 无法尝试准备注册表....