循环访问存储在列表中的注册表项



我有几个Windows注册表项存储在文件中的python列表中。键存储为完整路径,我只想通过一次循环一个元素来确保它们存在。

HKEY_LOCAL_MACHINESystemCurrentControlSetServices
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotify
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogonUserinit
HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWinlogon\Shell
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon\Shell
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnceEx
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun
HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindowsload
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindows
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerSharedTaskScheduler
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindows\AppInit_DLLs

以上是我正在检查是否存在的密钥以及我的keys.txt文件的内容。

keysFile = 'keys.txt'
with open(keysFile) as f:
    keys = f.readlines()
keys = [x.strip() for x in keys]

上面的代码用于打开带有路径的文件,并将每一行存储为列表的一个元素。我只是迷失了如何使用这些路径来检查它们是否存在。我已经看到正在使用winreg,但我不确定这是否适用于此,因为这些是完整的路径。我将就如何应对这种情况提供任何指导。我是python和注册表的新手,所以请耐心等待。非常感谢。

我不知道

用于处理注册表的python模块(尽管它们可能存在(。我个人会在使用此维基百科页面时混合使用字符串格式和os模块来解决这个问题。我认为它看起来像这样:

import os
for key in keys: # you made this list already
    command = "Reg.exe QUERY {}".format(key) # apply string formatting to replace the {}
    os.system(command) # call our command on the command line

关于注册表脚本可能有很多需要了解的内容,但是一旦找到所需的命令,只需替换它们即可!希望这足以让你入门,欢迎来到StackOverflow XD!

最新更新