| Termin | Definicja |
|---|---|
| Ścieżki UNC w zmiennych nie działają (\\serwer\folder) | Ścieżki UNC w zmiennych niedziałające (\\serwer\folder) wskazują na ograniczenie niektórych poleceń niewspierających bezpośrednio ścieżek sieciowych jako katalogu roboczego. Ścieżki UNC w zmiennych — czym jest ten problemŚcieżka UNC, zapisywana w postaci Nie oznacza to automatycznie, że udział sieciowy jest niedostępny. Często problem wynika z różnicy pomiędzy sposobem, w jaki dane polecenie rozwija zmienną, a sposobem obsługi ścieżek sieciowych przez system Windows. Program może poprawnie odczytać tekst zmiennej, lecz potraktować go jako zwykły parametr, nieprawidłowy katalog roboczy albo nazwę lokalnego folderu. Znaczenie ma również to, czy zmienna jest rozwijana przez powłokę poleceń, PowerShell, skrypt uruchamiany przez harmonogram zadań, czy aplikację korzystającą z własnych reguł interpretowania ścieżek. Przykładowo zmienna Różnica między ścieżką lokalną, UNC i zmiennąŚcieżka lokalna, na przykład Ważna jest kolejność interpretacji. Najpierw powłoka może rozwinąć zapis zmiennej, następnie dane polecenie może zweryfikować, czy otrzymany tekst jest dopuszczalną ścieżką, a na końcu system może spróbować uzyskać dostęp do zasobu. Jeśli którykolwiek z tych etapów ma ograniczenia, bezpośredni zapis Osobnej uwagi wymagają znaki specjalne, cudzysłowy i końcowe ukośniki. W zależności od użytej powłoki zapis może zostać podzielony na kilka argumentów albo zmodyfikowany przed przekazaniem do programu. Niektóre aplikacje rozumieją tylko ścieżki lokalne, inne akceptują UNC jako źródło lub cel operacji, ale odrzucają je jako katalog roboczy. Możliwe jest także odmienne działanie tego samego skryptu uruchomionego ręcznie i przez usługę systemową, ponieważ oba procesy mogą działać z innym kontem oraz innym zestawem zmiennych. Przy porównywaniu sposobów użycia pomocne jest sprawdzenie trzech wariantów: ścieżki wpisanej bezpośrednio, tej samej ścieżki zapisanej w zmiennej oraz ścieżki wskazanej przez przypisaną literę dysku. Taki test pozwala ustalić, czy źródłem problemu jest rozwijanie zmiennej, obsługa UNC przez konkretne polecenie, czy też dostęp do samego udziału. Typowe błędy i sposoby ich rozpoznania - Ścieżki UNC w zmiennych nie działają (\\serwer\folder)Jednym z częstych błędów jest użycie ścieżki UNC jako katalogu roboczego w poleceniu, które wymaga dysku lokalnego. Powłoka może wtedy zgłosić, że nie może ustawić wskazanego katalogu, mimo że pliki w tym miejscu da się otworzyć w Eksploratorze. Innym przypadkiem jest przekazanie zmiennej bez cudzysłowów. Jeżeli nazwa udziału lub dalsza część ścieżki zawiera spacje, program może otrzymać kilka argumentów zamiast jednego adresu. Problemy bywają również powodowane przez pustą albo niepoprawnie ustawioną zmienną. Przydatne jest wyświetlenie jej zawartości przed wykonaniem właściwej operacji i sprawdzenie, czy nie ma w niej dodatkowych znaków, niewidocznych spacji, niezamkniętych cudzysłowów albo błędnie zapisanych ukośników. W skryptach należy też zweryfikować, czy zmienna jest dostępna w bieżącym procesie oraz czy nie została nadpisana przez inną konfigurację. Jeżeli ścieżka działa w oknie użytkownika, ale nie działa w zadaniu automatycznym, należy sprawdzić konto uruchamiające zadanie, jego uprawnienia do udziału i sposób uwierzytelnienia. Mapowanie dysku widoczne dla zalogowanego użytkownika nie zawsze jest dostępne dla procesu uruchomionego w tle. W takiej sytuacji odwołanie UNC może być właściwsze, lecz nadal musi być obsługiwane przez używane polecenie i konto. Do diagnostyki można wykorzystać proste porównanie: sprawdzić, czy zasób odpowiada po wpisaniu pełnego adresu, wyświetlić wartość zmiennej, przetestować odczyt konkretnego pliku oraz ustalić, czy błąd dotyczy odczytu, zapisu, zmiany katalogu, kopiowania czy uruchamiania programu. Należy unikać pochopnego zakładania, że każdy komunikat o braku dostępu oznacza uszkodzenie sieci. Przyczyną może być składnia, zakres zmiennej, uprawnienia, blokada zabezpieczeń albo ograniczenie samej aplikacji. W środowisku skryptowym często stosuje się jedno z kilku rozwiązań: przekazanie adresu jako poprawnie cytowanego argumentu, użycie polecenia przeznaczonego do kopiowania lub odczytu plików sieciowych, tymczasowe przypisanie udziału do litery dysku albo zmiana katalogu roboczego na lokalny i podawanie ścieżki UNC wyłącznie przy konkretnych plikach. Dobór metody powinien wynikać z rodzaju wykonywanej operacji, a nie tylko z tego, że dana forma zadziałała w pojedynczym teście. W jakich sytuacjach warto skorzystać z pomocy serwisu - Ścieżki UNC w zmiennych nie działają (\\serwer\folder)Zgłoszenie do serwisu jest uzasadnione, gdy ścieżki UNC działają niestabilnie, skrypty przestają wykonywać kopie plików, programy tracą dostęp do udziałów po ponownym uruchomieniu albo różne konta użytkowników otrzymują odmienne rezultaty. Warto przekazać informację, w jakiej powłoce wykonywane jest polecenie, czy ścieżka działa wpisana ręcznie, jaka zmienna bierze udział w operacji oraz czy problem występuje tylko w zadaniu automatycznym. Pomoc techniczna może obejmować analizę składni, zmiennych środowiskowych, uprawnień, mapowania zasobów, konfiguracji sieci i sposobu uruchamiania skryptu. Przed rozpoczęciem zmian powinno zostać ustalone, czy potrzebny jest dostęp do plików, katalogu, konkretnej aplikacji, czy wyłącznie możliwość ustawienia lokalizacji roboczej. Pozwala to ograniczyć zakres uprawnień i dobrać rozwiązanie, które nie zakłóci innych zadań wykonywanych na komputerze. W Warszawie takie przypadki można przekazać do Warszawskiego Pogotowia Komputerowego 24/7, opisując objaw oraz podając przykładowy sposób uruchomienia polecenia. Przydatne będzie przygotowanie komunikatu błędu, fragmentu skryptu bez haseł i danych poufnych oraz informacji, czy zasób jest osiągalny z poziomu Eksploratora. Dzięki temu możliwe staje się odróżnienie błędu ścieżki, problemu z uprawnieniami i ograniczenia konkretnego narzędzia. |