在 Python 中从注册表中读取 HKEY CURRENT USER,指定用户 [英] Reading HKEY CURRENT USER from the registry in Python, specifying the user

查看:31
本文介绍了在 Python 中从注册表中读取 HKEY CURRENT USER,指定用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我在几个不同的用户帐户下运行子进程.我需要能够读取这些子进程写入注册表的一些信息.每个人都在写 HKEY_CURRENT_USER,我知道他们正在运行的用户帐户名.

In my application I run subprocesses under several different user accounts. I need to be able to read some of the information written to the registry by these subprocesses. Each one is writing to HKEY_CURRENT_USER, and I know the user account name that they are running under.

在 Python 中,如何从 HKEY_CURRENT_USER 读取特定用户的值?我假设我需要以某种方式加载用户名下的注册表值,然后从那里读取它们,但是如何?

In Python, how can I read values from HKEY_CURRENT_USER for a specific user? I assume I need to somehow load the registry values under the user's name, and then read them from there, but how?

为了确保清楚,我的 Python 程序以管理员身份运行,我有帐户user1"、user2"和user3",每个帐户在自己的 HKEY_CURRENT_USER 中都有信息.作为管理员,我如何读取 user1 的 HKEY_CURRENT_USER 数据?

edit: Just to make sure it's clear, my Python program is running as Administrator, and I have accounts "user1", "user2", and "user3", which each have information in their own HKEY_CURRENT_USER. As Administrator, how do I read user1's HKEY_CURRENT_USER data?

推荐答案

根据 MSDNHKEY_CURRENT_USER 是指向当前用户的HKEY_USERS/SID的指针.您可以使用 pywin32 来查找帐户名称的 SID.一旦你有了这个,你可以使用 open 并使用带有 _winreg 模块的注册表项.

According to MSDN, HKEY_CURRENT_USER is a pointer to HKEY_USERS/SID of the current user. You can use pywin32 to look up the SID for an account name. Once you have this, you can use open and use the registry key with the _winreg module.

import win32security
import _winreg as winreg

sid = win32security.LookupAccountName(None, user_name)[0]
sidstr = win32security.ConvertSidToStringSid(sid)
key = winreg.OpenKey(winreg.HKEY_USERS, sidstr)
# do something with the key

这篇关于在 Python 中从注册表中读取 HKEY CURRENT USER,指定用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆