標籤:
Technorati 標籤: psexec,run as administrator,UAC
java.io.IOException: Cannot run program "psexec.exe": CreateProcess error=740, The requested operation requires elevation
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at com.gdn.BuildHostNow.main(BuildHostNow.java:14)
Caused by: java.io.IOException: CreateProcess error=740, The requested operation requires elevation
old script :
http://stackoverflow.com/questions/1894967/how-to-request-administrator-access-inside-a-batch-file
update script:
http://stackoverflow.com/questions/7044985/how-can-i-auto-elevate-my-batch-file-so-that-it-requests-from-uac-administrator/28467343#28467343
@ECHO OFFsetlocal EnableDelayedExpansionNET FILE 1>NUL 2>NULif ‘%errorlevel%‘ == ‘0‘ ( goto START ) else ( goto getPrivileges ) :getPrivilegesif ‘%1‘==‘ELEV‘ ( goto START )set "batchPath=%~f0"set "batchArgs=ELEV"::Add quotes to the batch path, if neededset "script=%0"set script=%script:"=%IF ‘%0‘==‘!script!‘ ( GOTO PathQuotesDone ) set "batchPath=""%batchPath%""":PathQuotesDone::Add quotes to the arguments, if needed.:ArgLoopIF ‘%1‘==‘‘ ( GOTO EndArgLoop ) else ( GOTO AddArg ) :AddArg set "arg=%1" set arg=%arg:"=% IF ‘%1‘==‘!arg!‘ ( GOTO NoQuotes ) set "batchArgs=%batchArgs% "%1"" GOTO QuotesDone :NoQuotes set "batchArgs=%batchArgs% %1" :QuotesDone shift GOTO ArgLoop:EndArgLoop::Create and run the vb script to elevate the batch fileECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"ECHO UAC.ShellExecute "cmd", "/c ""!batchPath! !batchArgs!""", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs""%temp%\OEgetPrivileges.vbs" exit /B:START::Remove the elevation tag and set the correct working directoryIF ‘%1‘==‘ELEV‘ ( shift /1 )cd /d %~dp0::Do your adminy thing here...psexec.exe -s cmd.exe /c dir >d:\output2.log 2>error2.log
@echo off:: BatchGotAdmin:-------------------------------------REM --> Check for permissions>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"REM --> If error flag set, we do not have admin.if ‘%errorlevel%‘ NEQ ‘0‘ ( echo Requesting administrative privileges... goto UACPrompt) else ( goto gotAdmin ):UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params = %*:"="" echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" exit /B:gotAdmin pushd "%CD%" CD /D "%~dp0":--------------------------------------put your command belowpsexec.exe -s cmd.exe /c dir >d:\output.log 2>error.log
JAVA “Run as administrator” “UAC disabled” alternative solution