Zastanawiam się, czy możliwe jest automatyczne otwieranie pliku wsadowego jako administrator po dwukrotnym kliknięciu pliku wsadowego, ponieważ polecenia muszą być uruchamiane z uprawnieniami administracyjnymi.
Uwaga: Wiem już o rozwiązaniu polegającym na kliknięciu pliku prawym przyciskiem myszy i kliknięciu Run As Administrator
, ale nie jest to rozwiązanie automatyczne.
windows-7
batch-file
Antp
źródło
źródło
Odpowiedzi:
Tak, możesz uruchomić plik wsadowy z uprawnieniami administracyjnymi. Niestety nie można tego zrobić bezpośrednio z pliku wsadowego. Najpierw musisz utworzyć skrót do tego pliku wsadowego i zmienić właściwości tego skrótu, aby to zadziałało.
Aby utworzyć skrót, istnieje wiele sposobów, ale najprostszym i najszybszym sposobem jest użycie opcji Wyślij do w menu kontekstowym.
Oczywiście możesz wysłać skrót tam, gdzie chcesz. Aby podwyższyć plik wsadowy do działania jako administrator, wykonaj następujące czynności:
źródło
if "%~1" == "" start %USERPROFILE%\Desktop\Shortcut.lnk && GOTO :EOF
poniżej@echo off
i utworzysz link skrótu doprogram.bat a
zamiast po prostuprogram.bat
.Jak zamieszczono w odpowiedzi Bena Gripki na inne pytanie:
źródło
Przyjęta odpowiedź rzeczywiście działa. Ale odkryłem, że w Windows 7 musiałem znosić okno UAC za każdym razem, gdy kliknięto skrót. To IMHO znacząco szkodzi „automatycznie” w tym pytaniu!
Potem odkryłem, że w mojej sytuacji dany
.bat
plik ma być uruchamiany przez Harmonogram zadań. W takim przypadku zaznaczenieRun with highest privileges
opcji naGeneral
karcie zadania ładnie rozwiązuje problem. Następnie.bat
jest uruchamiany jako administrator bez żadnych problemów.PS: Nie zdawałem sobie sprawy, że nie mogę załadować zdjęć z tą odpowiedzią, ponieważ mam teraz ładny mały zrzut ekranu! Czy mogę?
źródło
w systemie Windows 7
Utwórz skrót do tego pliku wsadowego
Kliknij plik skrótu prawym przyciskiem myszy
Kliknij przycisk postępu, aby znaleźć pole wyboru do uruchomienia jako administrator
Sprawdź zrzut ekranu poniżej
źródło
Możesz użyć mojego skryptu Batch_Admin, aby automatycznie podnieść Administratora do użycia w dowolnym typie własnego skryptu Batch, BAT lub .CMD. Ta funkcja zapewnia pracę w standardowym środowisku ze standardowymi narzędziami i w ten sam sposób w różnych systemach Windows. Używa kilku standardowych i wbudowanych poleceń systemu Windows. Nie używaj żadnych innych zewnętrznych skryptów. Może być używany do wywoływania dowolnego programu jako Administrator, a nie tylko skryptów Batch. Wystarczy stworzyć mały skrypt, który następnie wywoła program, który wymaga pozwolenia Administartor. Umieść to w dowolnym folderze ŚCIEŻKA wyszukiwania (od% PATH%).
Aby go użyć, wystarczy wstawić następujący wiersz (dokładnie jak) w jego nadrzędnym skrypcie wsadowym, który ma być uruchamiany jako administrator. Najlepiej jest to zrobić na początku naszego skryptu nadrzędnego i najlepiej najpierw, który będzie wywoływany dalej przez CALL, niektóre podskrypty (patrz szczegółowe wyjaśnienie poniżej).
Można to wstawić do dowolnego skryptu potomnego, wywoływanego przez składnię CALL. Aby wyświetlić komunikat, gdy jest on nadal nie ma uprawnień administratora, np. na 5 sekund przed wywołaniem Batch_Admin ustaw zmienną „ShowAdminInfo” na liczbę sekund
Jak to działa:
• Wywołuje UAC.ShellExecute przez VBScript, aby odebrać uprawnienia użytkownika
• Batch uruchamia skrypt lub BAT lub CMD
• Osoba wywołująca skrypt może zawierać w cudzysłowie długie przestrzenie nazw
• Oddaj wszystkie parametry wywołania skryptu głównego przekazanego z wiersza poleceń, tak jakby nie było transmisji wywołania i rozpocznij coś od zera, również ze znakami specjalnymi, takimi jak wykrzykniki (!) I procent (%), a także z nawiasami ()
• Przechowuje główną lokalizację skryptu, jeśli wywołanie miało miejsce w katalogu, w którym ten skrypt jest głównym
• Pomocniczy wyświetla komunikat, jeśli ustawimy przed sobą zmienną „ShowAdminInfo”, np. przez 5 sekund, co może zapobiec natychmiastowemu przejściu uprawnień Administratora, udzielając dodatkowych informacji i możliwości podjęcia świadomej decyzji. Przykłady ustawień, które należy ustawić: SET ShowAdminInfo = 5 Domyślnie, ponieważ ta zmienna nie jest zdefiniowana, nie jest wyświetlana.
• Skrypt wywołuje także ścieżkę wyszukiwania systemu% PATH% i zasoby sieciowe, takie jak: \ Komputer \ udział \ test.bat
• Zapobiega nieporozumieniom w pisaniu niezbędnych plików pomocniczych, gdy skrypt wywołuje kilka Batch_Admin prawie w tym samym czasie. Wykorzystuje losową liczbę od 1 do 100
• Ale najlepsze jest użycie go w skrypcie nadrzędnym. Przejście na uprawnienia administratora zawsze wymaga ponownego uruchomienia skryptu całkowicie, w nowym oknie, w nowym środowisku, bez konieczności odwoływania się do zmiennych ustawionych wcześniej w naszym skrypcie, a wartości tych zmiennych nie zostały następnie przekazane jako administrator . Tylko skrypt zostanie wykonany ponownie.
Poniżej kompletny skrypt Batch_Admin. Rozszerzone informacje na ten temat znajdują się na mojej stronie.
Skopiuj następujący tekst do Notatnika i zapisz go na dysku jako: Batch_Admin.bat
źródło
Alternatywnie możesz utworzyć drugi plik wsadowy, co pozwoli ci uruchomić wszystko jako administrator, wprowadzając hasło administratora tylko raz. Hasło jest zapisywane w tokenie uwierzytelniającym i zabiera prawdziwy komputer do złamania zabezpieczeń.
źródło
Działa to również ŹRÓDŁO: https://social.technet.microsoft.com/Forums/windows/en-US/bc8a4561-d97e-4339-9b1c-9b90e54a7f92/request-elevation-inside-cmdbatch-file
źródło
Możesz użyć narzędzia wiersza polecenia
elevate
. (link do pobrania - https://drive.google.com/open?id=0Bz7qe_olclTwVGZLUklFMHNxQ00 )źródło
Jest to przykład uruchomienia nietoperza jako administratora. Mi to pasuje.
Wygląda to tak:
źródło