Mam plik wsadowy o nazwie test.bat
. Wywołuję poniższe instrukcje w pliku test.bat
:
start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
Kiedy uruchamiam to przez wiersz poleceń, mój skrypt testowy działa pomyślnie. Chcę go uruchomić jako administrator (tak jakbym utworzył skrót na pulpicie i uruchomił jako administrator. Nie powinien on pytać o żadną nazwę użytkownika ani hasło).
Próbowałem dodać parametry /elevate
i /NOUAC
w powyższym test.bat
, ale bez powodzenia. Jak mogę naprawić ten problem?
Wiem jak to zrobić ręcznie, ale chcę, żeby to było wykonywane z wiersza poleceń.
(Autor: Marnix Klooster): ...bez użycia dodatkowych narzędzi, jak te sugerowane w odpowiedzi na pytanie Super User How to run program from command line with elevated rights).
Spróbuj tego:
runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1"
Zapisuje hasło za pierwszym razem i nigdy nie pyta ponownie. Może kiedy zmienisz hasło administratora, zostaniesz ponownie poproszony.
Zobacz ten artykuł TechNet: Dokumentacja polecenia Runas.
Z wiersza poleceń:
C:\> runas /user:<localmachinename>\administrator cmd
Lub, jeśli jesteś podłączony do domeny:
C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd
Wygląda na to, że psexec -h
jest sposobem, aby to zrobić:
-h If the target system is Windows Vista or higher, has the process
run with the account's elevated token, if available.
Który... nie wydaje się być wymieniony w dokumentacji online w Sysinternals - PsExec.
Ale to działa na mojej maszynie.