Jak łatwo podnieść poziom uprawnień podczas uruchamiania pliku .jar?

8

Podczas próby uruchomienia pliku jar instalatora pojawia się błąd informujący, że odmowa dostępu do zapisu w celu utworzenia katalogu w folderze Program Files.

Kliknij prawym przyciskiem myszy -> Uruchom jako Administrator nie jest dostępny w plikach Jar (zakładam, ponieważ konsumuje je Java.exe - same nie są traktowane przez powłokę jako bezpośrednio wykonywalne).

Jaki jest najszybszy i najprostszy sposób na uruchomienie pliku .Jar z elewacją?

Oceniam to narzędzie, aby polecić naszemu zespołowi programistów, a oni ręcznie zainstalują je na swoich urządzeniach. Wolałbym opcję, która nie wymaga od nich niczego wpisywania.

Merlyn Morgan-Graham
źródło

Odpowiedzi:

6

Aby ułatwić innym uruchamianie instalatora JAR bez konieczności wprowadzania zmian na wszystkich komputerach, prawdopodobnie należy go owinąć skryptem wsadowym, który podnosi i uruchamia plik JAR. Możesz to zrobić z łatwością dzięki Elevation PowerToys firmy Microsoft . Zawierają one przydatne narzędzie, które pozwala uruchamiać wszystko jako administrator, po prostu poprzedzając je elevatepoleceniem.

Po pobraniu je wyodrębnić je do folderu i skopiuj elevate.cmdi elevate.vbsdo folderu z plikiem JAR. Następnie napisz nowy skrypt wsadowy z .cmdrozszerzeniem o następującej treści:

elevate cmd /c start "%CD%\installer.jar"

Spowoduje to uruchomienie pliku JAR z domyślną obsługą takich plików w ich systemie (za pomocą startpolecenia cmd). %CD%wskazuje bieżący katalog roboczy skryptu i jest konieczny, ponieważ wiersz polecenia z podwyższonym poziomem uprawnień uruchomi się za c:\windows\system32.

Jeśli z jakiegoś powodu Java nie zostanie poprawnie skonfigurowana jako domyślny moduł obsługi plików JAR, to się nie powiedzie. Jeśli możesz liczyć, że Java znajdzie się w tym samym miejscu na wszystkich systemach, możesz zamiast tego zrobić to w ten sposób:

elevate "c:\Program Files\Java\jre\bin\java.exe" -jar "%CD%\installer.jar"

Po wykonaniu jednego z nich wystarczy uruchomić plik wsadowy, a system Windows wyświetli monit o podniesienie uprawnień administratora i uruchomienie instalatora.

Dołącz skrypty elewacji, skrypt i pliki instalatora do samorozpakowującego się archiwum, które uruchamia skrypt, i możesz go zawinąć w jeden ładny, mały .exeplik. ( 7-Zip to świetne narzędzie typu open source do tworzenia takich archiwów).

Aby uzyskać więcej informacji na temat narzędzia Elevation PowerToys, zapoznaj się z dołączonym artykułem lub plikiem README dołączonym do pobrania.

Łatki
źródło
Świetna odpowiedź :) Dzięki! Poczekam, aż go zaakceptuję, więc może pytanie / twoja odpowiedź zyskuje trochę ruchu (myślę, że tak to działa?)
Merlyn Morgan-Graham
@Patchy, w jaki sposób można to zrobić w innej firmie?
Pacerier
@Pacerier Nawet Windows 10 wciąż nie ma wbudowanej metody podnoszenia z linii poleceń.
Łaty
2

Właśnie miałem okazję to zrobić i odkryłem, że najłatwiejszym sposobem, bez konieczności pobierania i instalowania programu Elevation PowerToys, było uruchomienie cmd.exe jako administrator, a następnie wywołanie java.exe -jar 'installer.jar'z wiersza poleceń. Oczywiście najpierw musiałem znaleźć plik java.exe, ale nie trwało to długo ...

Richard Turner
źródło
2
W rzeczywistości wystarczy tylko zadzwonić installer.jar. Automatycznie zlokalizuje domyślny program „otwórz za pomocą”, który został już ustawiony na java.exe. (Gdyby tak nie było, dwukrotne kliknięcie .jar nie uruchomiłoby go w pierwszej kolejności.)
Pacerier