Адрес ключа PATH в реестре Windows 10? - PullRequest
1 голос
/ 07 января 2020

Какой правильный адрес в реестре 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",

...