Piszę program sprawdzający klient/serwer, ale musi on działać jako administrator. Chcę, aby to działało bezgłośnie w mojej sieci i użytkownikach, a nie chcę wyświetlać monitu "Uruchom jako administrator" Czy istnieje kod początkowy, który można umieścić w pliku wsadowym, aby był uruchamiany automatycznie jako administrator/Skrypt wsadowy uruchamiany jako administrator
Odpowiedz
NOPE - The - utwórz skrót [-> Kompatybilność -> "uruchom ten program jako administrator"] rozwiązanie nie działa.
Ta opcja jest nieaktywna w systemie Windows 7. Nawet z UAC niepełnosprawnych
-
Nope - The "runas/env/user: domena \ Administrator"
również nie jest wystarczająca ponieważ monituje użytkownika o hasło administratora.
-
TAK - Wyłącz UAC -> Utwórz zadanie za pomocą Harmonogramu zadań
Ten pracował dla mnie: utworzyć zadanie pod harmonogramu zadań i uczynić ją uruchomić jako użytkownik z uprawnieniami administratora. zaznaczyć Jawnie: „Uruchom z najwyższymi uprawnieniami” Wyłącz UAC więc nie będzie szybka, aby uruchomić to zadanie
można pozwolić skrypt włączyć UAC potem przez edycję rejestru, jeśli byś chciał. W moim przypadku ten skrypt jest uruchamiany tylko raz przez utworzenie wirtualnej maszyny systemu Windows, w której funkcja UAC jest wyłączona w obrazie.
Nadal czekamy na najlepsze podejście do skryptu uruchamianego jako administrator bez większych kłopotów.
jego możliwe przy użyciu składni:
RUNAS [/profile] [/env] [/netonly] /user:user Program
Key :
/profile Option to load the user's profile (registry)
/env Use current environment instead of user's.
/netonly Use the credentials specified only for remote connections.
/user Username in form [email protected] or DOMAIN\USER
([email protected] is not compatible with /netonly)
Program The command to execute
przykładem.
runas /env /user:domain\Administrator <program.exe/command you want to execute>
Spowoduje to monit o podanie hasła, którego nie chce. – eddyq
@eddyq Prawda, jednak to odpowiada na pytanie, nawet jeśli treść pytania zmienia to, co powiedział, że chce. – leetNightshade
Tytuł nie jest pytaniem. Tekst podstawowy jest pytaniem. Tytuł jest tytułem. Ciało ma pierwszeństwo, ponieważ zawiera szczegóły. –
masz kilka opcji
Jeśli chcesz to zrobić, używając tylko pliku wsadowego i natywnych poleceń, sprawdź kod How can I auto-elevate my batch file, so that it requests from UAC admin rights if required?.
Jeśli dostępne są narzędzia innych firm, można użyć narzędzia takiego jak Elevate. Jest to plik wykonywalny, który wywołujesz programem, który chcesz uruchomić podniesiony jako parametr.
Na przykład:elevate net share ...
.
Można umieścić go w pozycji startowej ... pozycje startowe nie pojawi się monit, aby uruchomić jako administrator w ogóle.
Sprawdź ten artykuł Elevated Program Shortcut Without UAC rompt
Odpowiedzi na przepełnienie stosu nie powinny zawierać "Google, aby znaleźć odpowiedź". –
Przepraszam, moje złe. Edycja – sandrows
Lepiej teraz, dzięki. –
Utwórz skrót i ustawić skrót zawsze Uruchom jako administrator.
How-To Geek forum Make a batch file to run cmd as administrator rozwiązanie:
Zrób plik wsadowy w edytorze i nameit.bat następnie utworzyć skrót do niego. Nameit.bat - skrót. następnie kliknij prawym przyciskiem myszy Nameit.bat - skrót -> Właściwości-> zakładka Skrót -> Zaawansowane i kliknij Uruchom jako administrator. Wykonaj go ze skrótu.
Nie można ustawić irytująco "Uruchom jako administrator" na pliku wsadowym lub na skrót wskazujący na to. – StormPooper
Nie można ustawić go w pliku wsadowym - ale ** można ** ustawić na skrócie, wskazując na niego – icc97
Ponieważ nie znalazłem żadnego prostego skryptu tak daleko, oto moje dwa centy:
set ELEVATE_APP=Full command line without parameters for the app to run
set ELEVATE_PARMS=The actual parameters for the app
echo Set objShell = CreateObject("Shell.Application") >elevatedapp.vbs
echo Set objWshShell = WScript.CreateObject("WScript.Shell") >>elevatedapp.vbs
echo Set objWshProcessEnv = objWshShell.Environment("PROCESS") >>elevatedapp.vbs
echo objShell.ShellExecute "%ELEVATE_APP%", "%ELEVATE_PARMS%", "", "runas" >>elevatedapp.vbs
DEL elevatedapp.vbs
Pozdrowienia,
Nika.
Jeśli powyższe odpowiedzi nie odpowiadają Twoim potrzebom, możesz użyć funkcji autoIT do uruchomienia pliku (lub dowolnego pliku) jako określonego użytkownika z jego danymi uwierzytelniającymi.
Przykładowe skrypty, które będą uruchamiać program korzystający z wersji privelages.
installAdmin()
Func installAdmin()
; Change the username and password to the appropriate values for your system.
Local $sUserName = "xxxxx"
Local $sPassword = "xxx"
Local $sDirectory = "C:\ASD4VM\Download\"
Local $sFiletoRun = "Inst_with_Privileges.bat"
RunAsWait($sUserName, @ComputerName, $sPassword, 0, $sDirectory & $sFiletoRun)
EndFunc ;==>Example
AutoIT can be found here. -> Używa .ua3 format, który jest kompilowany do pliku .exe, który można uruchomić.
Zrobiłem ten niewielki modyfikację scenariusza Matta, aby umożliwić jej uruchomić z poziomu pojedynczego skryptu (tylko dodać to na początku każdego skryptu wymagającego UAC inwokację), ale przeczytać poniżej kodu na jeszcze lepsze rozwiązanie, że” ve znaleźć na blogu:
:: ### START UAC SCRIPT ###
if "%2"=="firstrun" exit
cmd /c "%0" null firstrun
if "%1"=="skipuac" goto skipuacstart
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges)
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
cmd /c "%0" skipuac firstrun
cd /d %~dp0
:skipuacstart
if "%2"=="firstrun" exit
:: ### END UAC SCRIPT ###
:: ### START OF YOUR OWN BATCH SCRIPT BELOW THIS LINE ###
Moja modyfikacja wykorzystuje dwa argumenty plików, jak widać, co nie jest szczególnie elegancki, ale robi to zadanie (i zawsze można ukryć je na końcu ogona zastrzegając pierwszy kilka argumentów używających zastępczych symboli zastępczych). Dodatkowo skrypt AFAIK Matt nie obsługuje spacji w ścieżkach plików, a to ograniczenie dotyczy także mojej modyfikacji tego skryptu.
Ten problem wydaje się być nierozerwalnie związany ze sposobem, w jaki VBS obsługuje te ścieżki, ale na poniższym linku znajduje się jeszcze lepsze rozwiązanie oparte na VBS do wywoływania UAC uruchamianego z poziomu jednego skryptu bez potrzeby obejścia takiego problemu z użyciem pliku argumenty i że obsługuje również przestrzenie w ścieżkach plików:
http://pcloadletter.co.uk/2012/12/11/uac-elevation-for-batch-script/
skrypt ten link sprawia nieco inne VBS połączeń jak zauważysz, które z jakiegoś powodu omija problem ze spacjami.
@echo off
call :isAdmin
if %errorlevel% == 0 (
goto :run
) else (
echo Requesting administrative privileges...
goto :UACPrompt
)
exit /b
:isAdmin
fsutil dirty query %systemdrive% >nul
exit /b
:run
<YOUR BATCH SCRIPT HERE>
exit /b
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %~1", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B`
To doskonale sprawdza się dla mnie. Dzięki. – Emad
Poniżej znajduje się obejść:
- Tworzenie skrótu pliku .bat
- Otwórz właściwości od skrótu. W zakładce skrótów kliknij kliknij zaawansowany.
- Tick "Uruchom jako administrator"
Running skrót będzie wykonywał skrypt wsadowy jako administrator.
- 1. Jak uzyskać literę dysku, z której uruchamiany jest skrypt wsadowy?
- 2. Inno Setup Uruchom wyodrębniony plik wsadowy jako administrator
- 3. Skrypt wsadowy do usuwania plików
- 4. Skrypt wsadowy, jeśli jeszcze komenda
- 5. Gruntowa realizacja zatrzymuje skrypt wsadowy
- 6. Windowsowy skrypt wsadowy do przenoszenia plików
- 7. Jak uruchomić skrypt wsadowy po zakończeniu instalacji?
- 8. skrypt wsadowy do wysyłania wiadomości e-mail
- 9. Uruchom aplikację .NET jako administrator
- 10. Skrypt wsadowy R - ustawienie katalogu roboczego i wybranie folderu wyjściowego
- 11. Skrypt wsadowy do usuwania najstarszego folderu w danym folderze
- 12. Upewnij się, że skrypt PHP jest zawsze uruchamiany jako zadanie cron?
- 13. PiCamera nie może zostać zainicjowany jako członek klasy, gdy skrypt uruchamiany jest z wiersza polecenia
- 14. Harmonogram Quartz.Net uruchamiany jako usługa Windows
- 15. Aplikacja rdzeniowa dotnet działa jako administrator
- 16. C# Sprawdź, czy uruchomić jako administrator
- 17. Wykrywanie, kiedy skrypt Pythona jest uruchamiany interaktywnie w ipython
- 18. bash: niepowodzenie, jeśli skrypt nie jest uruchamiany przez root
- 19. Jak mogę uruchomić aplikację jako "Uruchom jako administrator" z mocą?
- 20. Dlaczego warto uruchomić program Visual Studio jako "Uruchom jako administrator"?
- 21. Skrypt wsadowy - programowo programuje się w systemie Windows XP
- 22. Jak uruchomić skrypt wsadowy z poziomu skryptu wsadowego?
- 23. skrypt wsadowy - uruchom polecenie dla każdego pliku w katalogu
- 24. Używanie OR w instrukcji IF Skrypt wsadowy WinXP
- 25. Skrypt wsadowy do skompresowania wszystkich plików bez folderu nadrzędnego.
- 26. Skrypt wsadowy tworzy zmienną setlocal dostępną dla innych plików wsadowych
- 27. Skrypt wsadowy do wyświetlania listy folderów, ale wyklucza określone foldery.
- 28. DOS Skrypt wsadowy do konwersji ciągu 2 hex
- 29. Jak uruchomić skrypt wsadowy (plik .bat) z aplikacji eclipse
- 30. skrypt wsadowy do ustawienia zmiennej z bieżącą lokalizacją ścieżki
UAC część Wyłącz UAC C: \ Windows \ System32 \ cmd.exe/k% windir% \ System32 \ reg.exe ADD HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System/v EnableLUA/t REG_DWORD/d 0/f Włącz UAC C: \ Windows \ System32 \ cmd.exe/k% windir% \ System32 \ reg.exe DODAJ HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System/v EnableLUA/t REG_DWORD/d 1/f – zenin