我很难实现这个看似非常简单的目标...
我必须在几台计算机上收集单个注册表项的值,以便审核扫描的计算机是否需要使用较新版本的软件进行修补。我只允许根据公司政策使用python 3(这是关于毒品的,但我能做些什么)。
我一直在研究使用winreg模块连接到远程计算机(使用凭据,我们在域上)但我一次又一次地面对
TypeError:该对象不是PyHKEY对象 (或许多其他问题。)
这似乎是一个非常普遍的需求,我很惊讶我找到了python 3的任何例子,我可以用它来弄清楚我做错了什么。
任何人都愿意给予的任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
你能展示你正在写的代码吗?你打开钥匙了吗?很多人确实遇到了问题,因为他们没有打开它?这只是猜测,希望它有效
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'SYSTEM\CurrentControlSet\Enum\Root')
答案 1 :(得分:0)
winreg
模块不允许您执行reg query
做的事情。例如,要读取BuildLabEx
reg键值,这就是我的工作:
import subprocess
keyPath = "\\\\RemoteMachineName\\HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion"
output = subprocess.run(["reg",
"query",
keyPath,
"/v",
"BuildLabEx"],
capture_output=True,
text=True)
print(output.stdout)
以上代码段等同于:
reg query "\\RemoteMachineName\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" /v BuildLabEx