Module cli_tool_audit.win
Expand source code
import winreg
def get_installed_programs_registry():
"""List apps with windows versions (many are 4 part versions)"""
path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path, 0, winreg.KEY_READ | winreg.KEY_WOW64_64KEY)
programs = []
for i in range(0, winreg.QueryInfoKey(key)[0]):
skey_name = winreg.EnumKey(key, i)
skey = winreg.OpenKey(key, skey_name)
try:
name = winreg.QueryValueEx(skey, "DisplayName")[0]
version = winreg.QueryValueEx(skey, "DisplayVersion")[0]
programs.append((name, version))
except OSError:
pass
finally:
winreg.CloseKey(skey)
return programs
if __name__ == "__main__":
def run() -> None:
installed_programs = get_installed_programs_registry()
for name, version in installed_programs:
print(f"Name: {name}, Version: {version}")
run()
Functions
def get_installed_programs_registry()-
List apps with windows versions (many are 4 part versions)
Expand source code
def get_installed_programs_registry(): """List apps with windows versions (many are 4 part versions)""" path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path, 0, winreg.KEY_READ | winreg.KEY_WOW64_64KEY) programs = [] for i in range(0, winreg.QueryInfoKey(key)[0]): skey_name = winreg.EnumKey(key, i) skey = winreg.OpenKey(key, skey_name) try: name = winreg.QueryValueEx(skey, "DisplayName")[0] version = winreg.QueryValueEx(skey, "DisplayVersion")[0] programs.append((name, version)) except OSError: pass finally: winreg.CloseKey(skey) return programs