W tym artykule pokażemy, jak selektywnie wyłączyć UAC dla konkretnej aplikacji bez całkowitego wyłączenia tej usługi kontroli konta użytkownika. Spójrzmy na kilka sposobów, aby wyłączyć kontrolę konta użytkownika dla aplikacji przy użyciu flagi zgodności. RunAsInvoker.
Kontrola konta użytkownika lub Kontrola konta użytkownika (UAC) prosi użytkownika o potwierdzenie wszelkich działań wymagających uprawnień administratora. Jest to dość skuteczny mechanizm ochrony systemu Windows przed różnymi zagrożeniami (wirusami, trojanami, robakami, rootkitami itp.). Niektórzy użytkownicy denerwują okno UAC i całkowicie wyłączają kontrolę konta użytkownika, chociaż Microsoft i eksperci ds. Bezpieczeństwa informacji zdecydowanie tego nie zalecają..Flaga RunAsInvoker umożliwia uruchomienie aplikacji ze znacznikiem odziedziczonym z procesu nadrzędnego. Spowoduje to anulowanie przetwarzania manifestu aplikacji i wykrycie procesów instalatora. Ten parametr nie zapewnia uprawnień administratora, a jedynie blokuje wygląd okna UAC.
Jeśli program wymaga uprawnień administratora do uruchomienia, ponieważ Jeśli zmieni to ustawienia systemowe lub pliki systemowe, to po wyłączeniu UAC uprawnienia użytkownika w aplikacji nie wzrosną. Program nadal będzie działał z uprawnieniami bieżącego użytkownika, a jeśli nie będzie miał uprawnień do wprowadzania tych zmian, program nie będzie mógł ich wprowadzić. Istnieje również niewielka liczba aplikacji, które działają tylko w trybie „Jako administrator”, ignorując flagę zgodności RunAsInvoker..Na przykład wyłączymy pojawienie się żądania kontroli konta użytkownika dla edytora rejestru (regedit.exe) Pomimo faktu, że moje konto ma uprawnienia administratora, po uruchomieniu narzędzia nadal otrzymuję żądanie UAC w celu potwierdzenia uruchomienia.
Treść
- Wyłączanie kontroli konta użytkownika dla programu za pomocą zestawu narzędzi do sprawdzania zgodności aplikacji
- Włącz flagę RUNASINVOKER dla programu za pośrednictwem rejestru
- Plik nietoperza do uruchomienia aplikacji w trybie RunAsInvoker
Wyłączanie kontroli konta użytkownika dla programu za pomocą zestawu narzędzi do sprawdzania zgodności aplikacji
Potrzebujemy narzędzia Zestaw narzędzi do sprawdzania zgodności aplikacji, który jest częścią pakietu Windows ADK. Pobierz najnowszą wersję zestawu Windows ADK dla systemu Windows 10 tutaj.
Uruchom pobrany plik adksetup.exe i podczas instalacji (program wymaga dostępu do Internetu) wybierz tylko Zestaw narzędzi do sprawdzania zgodności aplikacji.
Uwaga. Pakiet Microsoft Application Compatibility Toolkit - bezpłatny zestaw narzędzi służących do rozwiązywania problemów ze zgodnością aplikacji podczas aktualizacji do nowych wersji systemu Windows.W systemie pojawią się dwie wersje Administrator zgodności aplikacji - Wersja 32 i 64-bitowa. Uruchom wersję Administratora zgodności aplikacji w zależności od głębi bitowej aplikacji, dla której chcesz wyłączyć żądanie UAC.
Uruchom narzędzie Administrator zgodności (32-bitowy) z uprawnieniami administratora (!). W sekcji Niestandardowe bazy danych kliknij prawym przyciskiem myszy pozycję Nowa baza danych i wybierz Utwórz nowy-> Poprawka aplikacji.
W oknie, które zostanie otwarte, podaj nazwę aplikacji (regedit), producenta (Microsoft) i ścieżkę do pliku wykonywalnego (C: \ Windows \ regedit.exe
).
Pomiń następne okno kreatora instalacji (Tryb zgodności), dotykając Dalej. W oknie Poprawki zgodności zaznacz opcję RunAsInvoker.
Jeśli chcesz, możesz upewnić się, że aplikacja może działać bez UAC, klikając przycisk uruchamiania testowego (Uruchomienie testowe).
W oknie Dopasowane informacje Możesz określić parametry aplikacji do sprawdzenia (wersja, suma kontrolna, rozmiar itp.). Zostawiłem włączone kontrole COMPANY_NAME, PRODUCT_NAME i ORIGINAL_FILENAME, aby nie odtwarzać pliku łaty po kolejnej aktualizacji systemu Windows 10 i aktualizacji wersji pliku regedit.
Wskazówka. Aby zabezpieczyć się przed zastąpieniem pliku wykonywalnego przez atakującego, pożądane jest użycie sumy kontrolnej, wersji pliku i rozmiaru. Pamiętaj, że dodatkowe kontrole nieco spowolnią uruchomienie aplikacji.Kliknij Zakończ i podaj na przykład nazwę pliku, w którym chcesz zapisać utworzony pakiet poprawek zgodności regedit.sdb. Ten plik będzie zawierał instrukcje uruchamiania aplikacji z określonymi opcjami zgodności..
Pozostaje zastosować pakiet poprawek zgodności do aplikacji. Możesz to zrobić bezpośrednio z konsoli Administratora zgodności (wybierając Zainstaluj) lub z wiersza polecenia.
Aby to zrobić, otwórz wiersz polecenia z uprawnieniami administratora i uruchom polecenie:
sdbinst -q c: \ ps \ regedit.sdb
Jeśli wszystko zostało wykonane poprawnie, po pomyślnym zastosowaniu pakietu pojawi się komunikat.
Instalacja regedit zakończona.
Po zainstalowaniu pakietu odpowiedni wpis pojawi się na liście zainstalowanych programów Windows (Programy i funkcje).
Spróbuj teraz uruchomić aplikację w sesji użytkownika bez uprawnień administratora lokalnego. Teraz powinno zacząć się bez żądania UAC..
Teraz sprawdź, jakie uprawnienia ma ta aplikacja. Aby to zrobić, w Menedżerze zadań na karcie procesu dodaj kolumnę „Podwyższone”. Upewnij się, że proces regedit.exe jest uruchamiany od użytkownika w trybie nieuprzywilejowanym (Podwyższony = Nie
).
W tym procesie edytora rejestru użytkownik może edytować tylko własne gałęzie rejestru, ale podczas próby edycji / tworzenia czegoś w systemie HKLM pojawia się błąd „Nie masz wymaganych uprawnień”.
W przyszłości ta poprawka zgodności może być rozpowszechniana na komputerach użytkowników za pomocą zasad grupy. W ten sposób można wyłączyć sprawdzanie kontroli konta użytkownika dla określonych aplikacji na wielu komputerach w domenie Active Directory.
Aby usunąć poprawkę zgodności, uruchom polecenie
sdbinst -u c: \ ps \ regedit.sdb
Włącz flagę RUNASINVOKER dla programu za pośrednictwem rejestru
W systemie Windows 10 / 8.1 / 7 można włączyć flagę zgodności RUNASINVOKER za pośrednictwem rejestru. Flagę zgodności aplikacji można ustawić dla jednego użytkownika lub dla wszystkich użytkowników komputerów:
Na przykład dla regedit musisz utworzyć nowy parametr ciągu w gałęzi rejestru HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers (REG_SZ) formularza:
- Nazwa wartości: C: \ windows \ regedit.exe
- Dane wartości: RunAsInvoker
Jeśli chcesz włączyć tryb zgodności aplikacji dla wszystkich użytkowników komputerów, musisz utworzyć ten parametr w gałęzi rejestru: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers.
W domenie możesz rozpowszechniać te ustawienia rejestru wśród użytkowników za pośrednictwem obiektu zasad grupy.
Plik nietoperza do uruchomienia aplikacji w trybie RunAsInvoker
Istnieje inna opcja uruchamiania aplikacji bez uprawnień administratora i tłumienia żądania UAC (zobacz artykuł).
Wystarczy utworzyć plik nietoperza z następującym kodem:
Ustaw ApplicationPath = "C: \ windows \ regedit.exe"
cmd / min / C ”set __COMPAT_LAYER = RUNASINVOKER && start" "% ApplicationPath%"
Gdy ten plik nietoperza zostanie uruchomiony jako użytkownik, określona aplikacja uruchomi się bez żądania UAC.
Sprawdziliśmy więc, jak wyłączyć UAC dla określonego programu bez całkowitego wyłączenia kontroli konta użytkownika. Umożliwi to uruchamianie programów Windows jako zwykły użytkownik bez monitu UAC i bez hasła administratora..