Адрес ключа PATH в реестре Windows 10?

Каков правильный адрес в реестре Windows 10, из которого можно получить и установить переменную PATH?

Когда я запускаю программу Python ниже, ни один из следующих трех вариантов не работает:

from winreg import *
#The following line (uncommented) gives a list of things including Environment  
keyVal = r"SYSTEM\CurrentControlSet\Control\Session Manager"  
#The following line (uncommendted) gives an empty list of results (nothing)  
#keyVal = r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment"  
#The following line (uncommented) gives an error message as follows: "FileNotFoundError: [WinError 2] The system cannot find the file specified"  
#keyVal = r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path"  
aKey = OpenKey(HKEY_LOCAL_MACHINE, keyVal, 0, KEY_ALL_ACCESS)  
try:  
    i = 0  
    while True:  
        asubkey = EnumKey(aKey, i)  
        print(asubkey)  
        i += 1  
except WindowsError:  
    pass  

Windows CMD запускается от имени администратора, когда вызывается приведенный выше код Python. Я запускаю Windows CMD в качестве администратора в надежде избежать проблем с разрешениями при запуске вышеуказанного сценария для доступа к разделам реестра.

Примечание. Когда я ввожу regedit в меню "Пуск" Windows и разворачиваюсь до Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment , я вижу правильно заполненную переменную Path. Несмотря на то, что ошибка, показанная выше, выдается, когда я пытаюсь получить доступ к этому программно в качестве администратора.


2-е примечание: когда я пробую код на эту ссылку по предложению @SimonCrane и вызвать функцию с open_env_registry_key('system') , результатом будет ошибка при SYS_ENV_SUBPATH = r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path" или вообще никаких результатов при использовании SYS_ENV_SUBPATH = r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment" или SYS_ENV_SUBPATH = r"SYSTEM\CurrentControlSet\Control\Session Manager",


person CodeMed    schedule 06.01.2020    source источник
comment
Зачем вам это из реестра, когда вы можете получить доступ к переменным среды через os.environ?   -  person mikewatt    schedule 07.01.2020
comment
@mikewatt Потому что os.environ только временно изменяет PATH во время работы вызывающего скрипта. Напротив, запись в реестр необходима для постоянного изменения файла PATH.   -  person CodeMed    schedule 07.01.2020
comment
Посмотрите stackoverflow.com/questions/38516044/   -  person Simon Crane    schedule 07.01.2020
comment
@SimonCrane Я просмотрел вашу ссылку и опубликовал результаты в конце этой ОП. Что еще вы предлагаете здесь?   -  person CodeMed    schedule 07.01.2020