如何使用python3.xwinreg连接到远程注册表

2024-04-25 09:36:27 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图通过pythonwinreg连接到远程机器的注册表时,我遇到了一个问题。 我正在尝试从注册表中从当前登录的用户捕获映射的网络打印机。在

我的代码如下:

def enumRegKeySubkeys():
    key_path = "Printers\\Connections"
    target = r"\\192.168.20.164"
    rem_reg = ConnectRegistry(target, HKEY_CURRENT_USER)
    rem_key = OpenKey(rem_reg, key_path, 0, KEY_READ | KEY_WOW64_64KEY)
    result = []
    index = 0
    while True:
        try:
            subkey = EnumKey(rem_key, index)
            result.append(subkey)
            index += 1
        except EnvironmentError:
    return result

运行此程序时,我收到错误消息:

Traceback (most recent call last) File ".\test2.py", line 21, in print(enumRegKeySubkeys()) File ".\test2.py", line 8, in enumRegKeySubkeys rem_key = OpenKey(rem_reg, key_path, 0, KEY_READ | KEY_WOW64_64KEY) FileNotFoundError: [WinError 2] The system cannot find the file specified

如果我在本地运行

^{pr2}$

那就没问题了,我得到了我想要的。在

所有这些都发生在Windows域环境中,使用管理(域)权限运行,并且客户端上的远程注册表服务正在运行。在

提前感谢您的帮助!在


Tags: pathkeytargetreadindex远程注册表result
1条回答
网友
1楼 · 发布于 2024-04-25 09:36:27

实际上,ConnectRegistry(target, HKEY_CURRENT_USER)等于dos命令reg query \\target\HKEY_CURRENT_USER,这是无效的,因为远程服务器的reg查询只能用于HKLM和{}

在dos窗口中键入reg query /?,您可以看到:

[\\Machine\]FullKey: Machine - Name of remote machine, omitting defaults to the current machine. Only HKLM(HKEY_LOCAL_MACHINE) and HKU(HKEY_USERS) are available on remote machines

相关问题 更多 >