| Termin | Definicja |
|---|---|
| Get-ChildItem Env: nie pokazuje zmiennej |
Czym jest komunikat „Get-ChildItem Env: nie pokazuje zmiennej”W PowerShellu polecenie Najczęściej brak wpisu wskazuje na różnicę między konfiguracją zapisaną w systemie Windows a zawartością pamięci już otwartego procesu PowerShell. Zmienne środowiskowe są przekazywane aplikacji podczas jej uruchamiania. Późniejsza zmiana ustawień nie musi więc zostać od razu odzwierciedlona w istniejącym oknie terminala. Podobny efekt występuje wtedy, gdy zmienna została ustawiona tylko dla innego użytkownika, wyłącznie w jednym programie albo tymczasowo w odrębnej sesji. Warto odróżnić trzy sytuacje: zmienna może nie istnieć w bieżącej sesji, może mieć inną nazwę niż zakładano albo może być dostępna w innym zakresie. W nazwach zmiennych środowiskowych zwykle nie rozróżnia się wielkości liter, ale znaczenie mają spacje, podkreślenia, znaki specjalne i dokładna pisownia. Polecenie pokazujące zmienne nie naprawia konfiguracji, lecz jedynie przedstawia stan widoczny z poziomu konkretnego procesu. Kontekst techniczny i porównanie zakresów zmiennych - Get-ChildItem Env: nie pokazuje zmiennejW systemie Windows zmienne środowiskowe mogą być zapisane w zakresie użytkownika albo w zakresie całego komputera. Po uruchomieniu PowerShell pobierane jest połączenie tych ustawień, przy czym wartości użytkownika mogą mieć pierwszeństwo przed wartościami systemowymi. Niezależnie od miejsca zapisu nowa sesja otrzymuje własną kopię środowiska. Dlatego wpis dodany w panelu ustawień systemowych, edytorze rejestru albo przez instalator programu może stać się widoczny dopiero po zamknięciu i ponownym uruchomieniu terminala. Do sprawdzenia konkretnej nazwy używa się na przykład polecenia: Alternatywnie stosuje się odczyt przez: Oba sposoby odnoszą się do środowiska bieżącego procesu. Pusty wynik albo wartość Istotna jest również różnica między zmienną środowiskową a zmienną PowerShell. Konstrukcja: tworzy zmienną powłoki, lecz nie dodaje wpisu do przestrzeni Takie ustawienie zwykle nie zmienia trwale konfiguracji użytkownika ani systemu i nie musi być dostępne po zamknięciu terminala. Odmiennie zachowują się polecenia instalacyjne, skrypty startowe oraz ustawienia profilu PowerShell, które mogą wprowadzać zmiany przy każdym uruchomieniu lub nadpisywać wcześniejsze wartości. Typowe problemy prowadzące do braku zmiennejJedną z częstych przyczyn jest sprawdzanie starego okna PowerShell po zmianie zmiennej w ustawieniach systemu. W takim przypadku zamknięcie wszystkich powiązanych terminali i uruchomienie nowego procesu często wystarcza do odświeżenia danych. Jeżeli używany jest terminal zintegrowany ze środowiskiem programistycznym, trzeba uwzględnić, że może on utrzymywać własny proces powłoki niezależnie od zwykłego okna PowerShell. Problemy mogą powodować także:
W diagnostyce przydatne jest porównanie kilku odczytów: Pierwsze dwa polecenia pokazują stan bieżącego procesu. Dwa ostatnie odczytują zapisane wartości odpowiednio dla użytkownika i całego komputera. Jeżeli ustawienie istnieje w jednym z trwałych zakresów, lecz nie występuje w pierwszych wynikach, przyczyną jest zwykle nieodświeżona sesja albo sposób uruchomienia programu. Gdy wszystkie odczyty zwracają pusty wynik, należy sprawdzić, czy nazwa i zamierzony zakres zostały określone prawidłowo. Nie powinno się bez potrzeby zmieniać zmiennych systemowych ani usuwać całych elementów ścieżki Kiedy najlepiej poprosić o ocenę stanu sprzętu - Get-ChildItem Env: nie pokazuje zmiennejZgłoszenie do serwisu jest uzasadnione, gdy zmienna nadal nie pojawia się po otwarciu nowej sesji, różne programy widzą odmienne konfiguracje albo po zmianach przestały działać narzędzia systemowe. Szczególnej ostrożności wymaga sytuacja, w której problem dotyczy Przed przekazaniem sprzętu warto zanotować dokładną nazwę zmiennej, polecenie użyte do jej sprawdzenia, informację o wersji powłoki oraz moment, od którego występuje problem. Pomocne jest także wskazanie, czy zmienna ma działać tylko w PowerShellu, czy również w innych aplikacjach systemu Windows. Takie dane ułatwiają rozdzielenie błędu konfiguracji od problemu z profilem użytkownika, uprawnieniami albo działaniem konkretnego programu. W Warszawskim Pogotowiu Komputerowym 24/7 można zlecić sprawdzenie konfiguracji systemu, profili użytkownika i zależności między terminalem a uruchamianymi aplikacjami. W ramach diagnostyki ustala się, czy brak wpisu wynika z nieodświeżonego procesu, błędnego zakresu zmiennej, konfliktu ustawień lub nieprawidłowego działania oprogramowania, a następnie dobiera się sposób uporządkowania konfiguracji bez przypadkowego naruszania pozostałych ustawień. |