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