在我的应用程序中,我在几个不同的用户帐户下运行子进程.我需要能够读取这些子进程写入注册表的一些信息.每个人都在写 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?
推荐答案根据 MSDN,HKEY_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,指定用户
发布评论