Jednym z istotnych ulepszeń bezpieczeństwa systemu operacyjnego Windows (od wersji Vista) było wprowadzenie funkcji Kontrola konta użytkownika (UAC). Kontrola konta użytkownika prosi o potwierdzenie użytkownika przy każdym uruchomieniu programu, który próbuje wprowadzić zmiany w ustawieniach systemu. Jednym z efektów ubocznych UAC jest brak dostępu do podłączonego (przez netto użyć) dyski sieciowe z aplikacji działających w trybie uprzywilejowanym (Uruchom jako administrator). Oznacza to, że po uruchomieniu wiersza polecenia lub menedżera plików (to samo, Total Commander) z podwyższonymi uprawnieniami nie będą one zawierać (niedostępnych) liter dysków zamontowanych folderów sieciowych.
W tej notatce pokażemy, jak w Windows 10, Windows 8.1 i Windows 7 przyznać dostęp do dysków sieciowych z aplikacji działających w trybie uprzywilejowanym (uruchom jako administrator). Problem występuje zarówno w przypadku folderów sieciowych połączonych za pomocą zasad grupy, jak i folderów połączonych użytkowników niezależnie.
Jest ważne. Zdecydowanie odradza się całkowite wyłączenie UAC, nawet w przypadku jednej określonej aplikacji.Rzeczywiście, gdy UAC jest włączony z „uprzywilejowanej” aplikacji w systemie Windows, nie można uzyskać dostępu do dysku sieciowego podłączonego w trybie normalnym. Pokażmy, jak wygląda problem. Na przykład upewnij się, że w wierszu polecenia uruchomionym z uprawnieniami zwykłego użytkownika systemu masz dostęp do zawartości podłączonego dysku sieciowego Z: \.
Jeśli w kontekście tego samego użytkownika, aby otworzyć okno wiersza polecenia z uprawnieniami administratora, wtedy przy próbie uzyskania dostępu do tego samego dysku pojawi się komunikat, że nie znaleziono określonej ścieżki:
System nie może znaleźć określonej ścieżki..Takie zachowanie systemu może powodować szereg niedogodności, gdy aplikacje są często uruchamiane w trybie uprzywilejowanym. Możesz uruchamiać aplikacje bez uprawnień administratora, ale nie zawsze ma to zastosowanie.
Dlaczego tak się dzieje?? Ta funkcja jest powiązana z mechanizmem UAC dla użytkownika z uprawnieniami lokalnego administratora. Faktem jest, że gdy taki użytkownik loguje się do systemu, tworzone są dwa tokeny dostępu: jeden token dostępu z wyłączonymi uprawnieniami administratora (token dostępu z filtrem - z którego uruchamia się większość programów) i pełnoprawny token administratora z pełnymi prawami w systemie (w tym kontekście wszystkie programy, które otrzymały potwierdzenie podniesienia uprawnień w UAC są wykonywane).
Jeśli używasz polecenia whoami / all
porównaj obecne uprawnienia tego samego użytkownika w dwóch sesjach cmd.exe (zwykłej i uprzywilejowanej), możesz zobaczyć, że są one bardzo różne. W poniższej tabeli wymieniono różnice w grupach i bieżące dane uwierzytelniające w każdej sesji..
Regularna sesja użytkownika | Sesja użytkownika uprzywilejowanego | |
Grupa dostępu | Etykieta obowiązkowa \ Średnia etykieta poziomu obowiązkowego S-1-16-8192 | Etykieta obowiązkowa \ Etykieta wysokiego poziomu obowiązkowego S-1-16-12288 |
Uprawnienia | SeLockMemoryPrivilege SeMachineAccountPrivilege SeShutdownPrivilege SeChangeNotifyPrivilege SeUndockPrivilege SeIncreaseWorkingSetPrivilege SeTimeZonePrivilege | SeLockMemoryPrivilege SeIncreaseQuotaPrivilege SeMachineAccountPrivilege SeSecurityPrivilege SeTakeOwnershipPrivilege SeLoadDriverPrivilege SeSystemProfilePrivilege SeSystemtimePrivilege SeProfileSingleProcessPrivilege SeIncreaseBasePriorityPrivilege SeCreatePagefilePrivilege SeBackupPrivilege SeRestorePrivilege SeShutdownPrivilege SeSystemEnvironmentPrivilege SeChangeNotifyPrivilege SeRemoteShutdownPrivilege SeUndockPrivilege SeManageVolumePrivilege SeImpersonatePrivilege SeCreateGlobalPrivilege SeIncreaseWorkingSetPrivilege SeTimeZonePrivilege SeCreateSymbolicLinkPrivilege SeDelegateSessionUserImpersonatePrivilege |
Gdy UAC jest włączony, aplikacje tego samego użytkownika można uruchamiać w dwóch kontekstach (uprzywilejowanym i nieuprzywilejowanym). Podczas podłączania współdzielonych folderów sieciowych system tworzy dowiązania symboliczne (DosDevices), które przechowują mapowanie liter dysków i ścieżek UNC. Łącza te są powiązane z bieżącą sesją dla bieżącego tokenu dostępu do procesu i nie są dostępne z poziomu innego tokenu.
W związku z tym może również wystąpić odwrotny problem: jeśli użytkownik ma uprawnienia administratora na swoim komputerze, to podczas podłączania dysków sieciowych za pomocą skryptów logowania zasad grupy, zadań harmonogramu lub SCCM (które działają z podwyższonymi uprawnieniami), dyski te nie są widoczne dla użytkownika w Eksploratorze Windows (proces nieuprzywilejowany).
Uwaga. W systemie Windows Server można uruchomić Eksploratora Windows z podwyższonymi uprawnieniami.Aby obejść ten problem, możesz zalecić połączenie (przez wykorzystanie netto
lub rundll32 SHELL32.dll, SHHelpShortcuts_RunDLL Connect
) dyski sieciowe w kontekście wiersza polecenia uruchamianego z uprawnieniami administratora. Ale to rozwiązanie nie zawsze ma zastosowanie i nie jest zbyt wygodne..
Istnieje prostsze rozwiązanie, do jego wdrożenia należy wprowadzić następujące zmiany w rejestrze:
- Otwórz Edytor rejestru (regedit.exe).
- Przejdź do klucza rejestru HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System .
- Utwórz nowy parametr (typu DWORD) o nazwie EnableLinkedConnections i wartość 1 .
Wskazówka. Możesz zrobić to samo za pomocą jednego polecenia:reg dodaj „HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ System” / v „EnableLinkedConnections” / t REG_DWORD / d 0x00000001 / f
- Uruchom ponownie komputer (lub ponownie uruchom usługę LanmanWorkstation).
Po ponownym uruchomieniu upewnij się, że użytkownik widzi dyski sieciowe z programów uruchomionych z uprawnieniami administratora. Odwrotnie jest również prawda, wszystkie dyski sieciowe podłączone w kontekście sesji uprzywilejowanej będą dostępne w zwykłej sesji.
Wskazówka. Niestety w zasadach grupy nie ma możliwości włączenia parametru EnableLinkedConnections, więc aby rozpowszechnić te ustawienia na komputerach w domenie, konieczne będzie rozpowszechnienie tego ustawienia rejestru na komputerach korzystających z GPP.Jak to działa. Po włączeniu wpisu rejestru EnableLinkedConnections usługa LanmanWorkstation i LSA sprawdzą, czy jest drugi token dostępu powiązany z bieżącą sesją użytkownika. Jeśli taki token dostępu zostanie znaleziony, lista zmapowanych dysków sieciowych zostanie skopiowana z jednego tokena na drugi. W ten sposób dyski sieciowe podłączone w trybie uprzywilejowanym będą widoczne w trybie normalnym i odwrotnie.
Wskazówka. Alternatywnym rozwiązaniem jest utworzenie dowiązania symbolicznego do docelowego katalogu sieciowego. Na przykład takmklink / D c: \ docs \\ msk-fs1 \ docs
Dostęp do tego katalogu będzie możliwy zarówno w trybie normalnym, jak i uprzywilejowanym. Wśród wad tej metody zauważamy, że dostęp do folderu współdzielonego odbywa się z uprawnieniami bieżącego użytkownika. Nie można, tak jak w przypadku korzystania z sieci, używać innego konta użytkownika.