Zmienne niezapisujące się w HKCU\Environment wskazują na brak uprawnień zapisu do tej gałęzi rejestru profilu użytkownika.
Rola gałęzi HKCU\Environment w systemie Windows
Gałąź rejestru HKEY_CURRENT_USER\Environment, zapisywana skrótowo jako HKCU\Environment, przechowuje zmienne środowiskowe przypisane do konkretnego profilu użytkownika. Są to ustawienia inne dla każdego konta, na przykład własna wartość PATH, TEMP albo zmienna używana przez określony program. Zmienne zapisane w tym miejscu nie są ustawieniami całego komputera. Odpowiednikiem dla wszystkich użytkowników jest gałąź HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.
Sam wpis w rejestrze nie zmienia automatycznie środowiska już uruchomionych procesów. Program otrzymuje kopię zmiennych środowiskowych podczas startu, zwykle od procesu nadrzędnego. Dlatego po zapisaniu wartości w HKCU\Environment nowa konfiguracja może być widoczna dopiero w programach uruchomionych później, po ponownym zalogowaniu albo po ponownym uruchomieniu Eksploratora Windows. Dotyczy to również sytuacji, w której wartość została poprawnie zapisana, ale użytkownik sprawdza ją w oknie wcześniej otwartego wiersza polecenia.
Uprawnienia zapisu i typowe przyczyny odrzucenia zmiany
Jeżeli zmienna nie zapisuje się w HKCU\Environment, pierwszym podejrzeniem są uprawnienia do klucza rejestru lub problem z załadowaniem profilu użytkownika. Konto powinno mieć możliwość zapisu wartości w swoim kluczu HKCU. Odmowa dostępu może wynikać z celowo zmienionych list kontroli dostępu, uszkodzonego profilu, narzędzia ograniczającego modyfikacje rejestru albo działania zasad grupy. Skrót HKCU odnosi się do profilu użytkownika aktualnie używanego przez dany proces, więc administrator uruchomiony pod innym kontem nie zapisuje automatycznie wartości w profilu właściwej osoby.
Znaczenie ma także sposób uruchomienia programu. Edytor rejestru, PowerShell lub narzędzie konfiguracyjne uruchomione przez usługę, zadanie harmonogramu albo konto systemowe może korzystać z innego profilu niż interaktywna sesja użytkownika. Podobnie przekierowanie przez mechanizmy kontroli konta użytkownika nie powinno być traktowane jako dowód, że zapis trafił do właściwego miejsca. W diagnostyce należy potwierdzić nazwę konta, ścieżkę profilu i dokładny klucz, a nie tylko sprawdzić, czy zmienna pojawia się w jednym oknie ustawień systemowych.
Weryfikacja wpisu bez mylenia rejestru ze środowiskiem procesu
Stan klucza można odczytać z wiersza polecenia poleceniem reg query HKCU\Environment. Do sprawdzenia konkretnej wartości służy na przykład reg query HKCU\Environment /v PATH. Jeżeli wpis nie istnieje, można zweryfikować, czy narzędzie używane do zapisu zwraca komunikat o odmowie dostępu, błędnej składni lub nieprawidłowym typie danych. Wartość tekstowa zwykła jest przechowywana jako REG_SZ, natomiast zmienna zawierająca odwołania do innych zmiennych może wymagać typu REG_EXPAND_SZ, aby system mógł rozwinąć zapis w odpowiednim momencie.
W PowerShell odczyt można wykonać przez Get-ItemProperty -Path 'HKCU:\Environment'. Trzeba jednak rozróżnić wynik odczytu rejestru od wyniku polecenia $env:PATH. Pierwsze polecenie pokazuje wartość zapisaną w profilu, a drugie pokazuje środowisko bieżącego procesu PowerShell, które mogło zostać utworzone przed zmianą. Po poprawnym zapisie można powiadomić aplikacje o zmianie komunikatem systemowym WM_SETTINGCHANGE z parametrem Environment, ale nie każdy program odświeża środowisko w trakcie działania. Najpewniejszym testem jest uruchomienie nowego procesu i sprawdzenie wartości w tej nowej sesji.
Postępowanie serwisowe przy problemach ze zmiennymi użytkownika
Diagnostyka powinna objąć kolejno istnienie klucza, uprawnienia do zapisu, konto używane przez proces oraz źródło, które może nadpisywać ustawienie. Jeżeli wpis znika po wylogowaniu, należy sprawdzić zasady grupy, skrypty logowania i programy zarządzające profilem. Jeżeli wpis pozostaje w rejestrze, lecz nie działa w nowo uruchomionym programie, problem może dotyczyć składni wartości, nieprawidłowego typu rejestru, kolejności dziedziczenia albo błędnego użycia ścieżki. Szczególnej ostrożności wymaga modyfikacja PATH, ponieważ przypadkowe zastąpienie całej wartości może uniemożliwić uruchamianie programów dostępnych wcześniej z wiersza polecenia.
Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, w tym diagnostyką problemów z systemem Windows, profilem użytkownika oraz konfiguracją środowiska. W ramach analizy można ustalić, czy przyczyną jest brak zapisu do HKCU\Environment, błędna konfiguracja konkretnego programu, zasady systemowe czy tylko korzystanie ze starej sesji procesu. Zmiany w rejestrze powinny być wykonywane dopiero po sprawdzeniu bieżących wartości i z zachowaniem możliwości odtworzenia wcześniejszej konfiguracji.