Я написал сценарий, который проверяет директории с пути и удаляет недоступные директории. Также я использовал фрагмент, чтобы запустить мой скрипт в качестве администратора. Но когда я проверяю свой Путь после выполнения скрипта - все равно.Изменение переменных окружения из сценария Python
import os
import sys
import win32com.shell.shell as shell
if __name__ == "__main__":
if os.name != 'nt':
raise RuntimeError("This script is implemented only for Windows")
ASADMIN = 'asadmin'
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
print("I am root now")
paths = os.environ.get('Path').split(';')
accessible_paths = []
for path in paths:
if os.access(path, os.R_OK):
accessible_paths.append(path)
new_path = ';'.join(accessible_paths)
os.environ['Path'] = new_path
print(new_path)
print(new_path == os.environ['Path'])
Итак, как я могу изменить переменную среды с помощью скрипта Python?
Начальные переменные системной среды загружаются диспетчером сеансов (smss.exe) из раздела реестра HKLM \ System \ CurrentControlSet \ Control \ Session Manager \ Environment'. winlogon.exe также объединяет пользовательский 'PATH', который загружается из ключа' HKCU \ Environment' пользователя. – eryksun