improved -addtask command line parameter

add option AllowStartIfOnBatteries in the "startup schedule task" of "autoupdate.bat" ->fix: autoupdate will now also run on startup if the computer is on battery operation.
replaced batch comment command "REM" with "::"
This commit is contained in:
asmtron 2021-04-19 15:40:59 +00:00 committed by GitHub
parent 59aefef087
commit 885a19ef37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 81 additions and 75 deletions

View File

@ -2,39 +2,42 @@
@echo off
setLocal EnableExtensions
setlocal EnableDelayedExpansion
REM -------------------------------------------------------------------
REM
REM autoupdate.bat
REM
REM Automatic RDP Wrapper installer and updater // asmtron (2021-02-06)
REM -------------------------------------------------------------------
REM Options:
REM -log = redirect display output to the file autoupdate.log
REM -taskadd = add autorun of autoupdate.bat on startup in schedule task
REM -taskremove = remove autorun of autoupdate.bat on startup in schedule task
REM
REM Info:
REM The autoupdater first use and check the official rdpwrap.ini.
REM If a new termsrv.dll is not supported in the offical rdpwrap.ini,
REM autoupdater first tries the asmtron rdpwrap.ini (disassembled and
REM tested by asmtron). The autoupdater will also use rdpwrap.ini files
REM of other contributors like the one of "sebaxakerhtc, affinityv, DrDrrae, saurav-biswas".
REM Extra rdpwrap.ini sources can also be defined...
REM
REM { Special thanks to binarymaster and all other contributors }
REM -----------------------------------------
REM Location of new/updated rdpwrap.ini files
REM -----------------------------------------
:: _ _
:: _ | | _ | | _
:: ____ _ _| |_ ___ _ _ ____ _ | | ____| |_ ____ | | _ ____| |_
:: / _ | | | | _)/ _ \| | | | _ \ / || |/ _ | _)/ _ ) | || \ / _ | _)
:: ( ( | | |_| | |_| |_| | |_| | | | ( (_| ( ( | | |_( (/ / _| |_) ( ( | | |__
:: \_||_|\____|\___\___/ \____| ||_/ \____|\_||_|\___\____(_|____/ \_||_|\___)
:: |_|
::
:: Automatic RDP Wrapper installer and updater asmtron (2021-04-19)
:: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: Options:
:: -log = redirect display output to the file autoupdate.log
:: -taskadd = add autorun of autoupdate.bat on startup in schedule task
:: -taskremove = remove autorun of autoupdate.bat on startup in schedule task
::
:: Info:
:: The autoupdater first use and check the official rdpwrap.ini.
:: If a new termsrv.dll is not supported in the offical rdpwrap.ini,
:: autoupdater first tries the asmtron rdpwrap.ini (disassembled and
:: tested by asmtron). The autoupdater will also use rdpwrap.ini files
:: of other contributors like the one of "sebaxakerhtc, affinityv, DrDrrae, saurav-biswas".
:: Extra rdpwrap.ini sources can also be defined...
::
:: { Special thanks to binarymaster and all other contributors }
::
:: -----------------------------------------
:: Location of new/updated rdpwrap.ini files
:: -----------------------------------------
set rdpwrap_ini_update_github_1="https://raw.githubusercontent.com/asmtron/rdpwrap/master/res/rdpwrap.ini"
set rdpwrap_ini_update_github_2="https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini"
set rdpwrap_ini_update_github_3="https://raw.githubusercontent.com/affinityv/INI-RDPWRAP/master/rdpwrap.ini"
set rdpwrap_ini_update_github_4="https://raw.githubusercontent.com/DrDrrae/rdpwrap/master/res/rdpwrap.ini"
set rdpwrap_ini_update_github_5="https://raw.githubusercontent.com/saurav-biswas/rdpwrap-1/master/res/rdpwrap.ini"
REM set rdpwrap_ini_update_github_6="https://raw.githubusercontent.com/....Extra.6...."
REM set rdpwrap_ini_update_github_7="https://raw.githubusercontent.com/....Extra.7...."
:: set rdpwrap_ini_update_github_6="https://raw.githubusercontent.com/....Extra.6...."
:: set rdpwrap_ini_update_github_7="https://raw.githubusercontent.com/....Extra.7...."
::
set autoupdate_bat="%~dp0autoupdate.bat"
set autoupdate_log="%~dp0autoupdate.log"
set RDPWInst_exe="%~dp0RDPWInst.exe"
@ -43,16 +46,16 @@ set rdpwrap_ini_check=%rdpwrap_ini%
set rdpwrap_new_ini="%~dp0rdpwrap_new.ini"
set github_location=1
set retry_network_check=0
::
echo ___________________________________________
echo Automatic RDP Wrapper installer and updater
echo.
echo ^<check if the RDP Wrapper is up-to-date and working^>
echo.
REM check if admin
:: check if admin
fsutil dirty query %systemdrive% >nul
if not %errorlevel% == 0 goto :not_admin
REM check for arguments
:: check for arguments
if /i "%~1"=="-log" (
echo %autoupdate_bat% output from %date% at %time% > %autoupdate_log%
call %autoupdate_bat% >> %autoupdate_log%
@ -61,6 +64,7 @@ if /i "%~1"=="-log" (
if /i "%~1"=="-taskadd" (
echo [+] add autorun of %autoupdate_bat% on startup in the schedule task.
schtasks /create /f /sc ONSTART /tn "RDP Wrapper Autoupdate" /tr "cmd.exe /C \"%~dp0autoupdate.bat\" -log" /ru SYSTEM /delay 0000:10
powershell "$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries; Set-ScheduledTask -TaskName 'RDP Wrapper Autoupdate' -Settings $settings"
goto :finish
)
if /i "%~1"=="-taskremove" (
@ -76,10 +80,10 @@ if /i not "%~1"=="" (
echo -taskremove = remove autorun of autoupdate.bat on startup in the schedule task
goto :finish
)
REM check if file "RDPWInst.exe" exist
:: check if file "RDPWInst.exe" exist
if not exist %RDPWInst_exe% goto :error_install
goto :start_check
::
:not_admin
color 0e
echo ___________________________________
@ -94,21 +98,21 @@ echo [-] RDP Wrapper installer executable (RDPWInst.exe) not found^^!
echo Please extract all files from the downloaded RDP Wrapper package or check your Antivirus.
echo.
goto :finish
::
:start_check
set rdpwrap_installed="0"
REM ----------------------------------
REM 1) check if TermService is running
REM ----------------------------------
:: ----------------------------------
:: 1) check if TermService is running
:: ----------------------------------
sc queryex "TermService"|find "STATE"|find /v "RUNNING" >nul&&(
echo [-] TermService NOT running^^!
call :install
)||(
echo [+] TermService running.
)
REM ------------------------------------------
REM 2) check if listener session rdp-tcp exist
REM ------------------------------------------
:: ------------------------------------------
:: 2) check if listener session rdp-tcp exist
:: ------------------------------------------
set rdp_tcp_session=""
set rdp_tcp_session_id=0
if exist %windir%\system32\query.exe (
@ -134,9 +138,9 @@ if %rdp_tcp_session_id%==0 (
) else (
echo [+] Found listener session: %rdp_tcp_session% ^(ID: %rdp_tcp_session_id%^).
)
REM -----------------------------------------
REM 3) check if rdpwrap.dll exist in registry
REM -----------------------------------------
:: -----------------------------------------
:: 3) check if rdpwrap.dll exist in registry
:: -----------------------------------------
reg query "HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters" /f "rdpwrap.dll" >nul&&(
echo [+] Found windows registry entry for "rdpwrap.dll".
)||(
@ -145,9 +149,9 @@ reg query "HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters" /f "rd
call :install
)
)
REM ------------------------------
REM 4) check if rdpwrap.ini exists
REM ------------------------------
:: ------------------------------
:: 4) check if rdpwrap.ini exists
:: ------------------------------
if exist %rdpwrap_ini% (
echo [+] Found file: %rdpwrap_ini%.
) else (
@ -156,9 +160,9 @@ if exist %rdpwrap_ini% (
call :install
)
)
REM ---------------------------------------------------------------
REM 5) get file version of %windir%\System32\termsrv.dll
REM ---------------------------------------------------------------
:: ---------------------------------------------------------------
:: 5) get file version of %windir%\System32\termsrv.dll
:: ---------------------------------------------------------------
for /f "tokens=* usebackq" %%a in (
`cscript //nologo "%~f0?.wsf" //job:fileVersion "%windir%\System32\termsrv.dll"`
) do (
@ -170,9 +174,9 @@ if "%termsrv_dll_ver%"=="" (
) else (
echo [+] Installed "termsrv.dll" version: %termsrv_dll_ver%.
)
REM ------------------------------------------------------------------------------------------
REM 6) check if installed file version is different to the last saved file version in registry
REM ------------------------------------------------------------------------------------------
:: ----------------------------------------------------------------------------------------
:: 6) check if installed fileversion is different to the last saved fileversion in registry
:: ----------------------------------------------------------------------------------------
echo [*] Read last "termsrv.dll" version from the windows registry...
for /f "tokens=2* usebackq" %%a in (
`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\RDP-Wrapper\Autoupdate" /v "termsrv.dll" 2^>nul`
@ -189,9 +193,9 @@ if "%last_termsrv_dll_ver%"=="%termsrv_dll_ver%" (
call :install
)
)
REM ---------------------------------------------------------------
REM 7) check if installed termsrv.dll version exists in rdpwrap.ini
REM ---------------------------------------------------------------
:: ---------------------------------------------------------------
:: 7) check if installed termsrv.dll version exists in rdpwrap.ini
:: ---------------------------------------------------------------
:check_update
if exist %rdpwrap_ini_check% (
echo [*] Start searching [%termsrv_dll_ver%] version entry in file %rdpwrap_ini_check%...
@ -213,10 +217,10 @@ if exist %rdpwrap_ini_check% (
goto :finish
)
goto :finish
REM -----------------------------------------------------
REM Install RDP Wrapper (exactly uninstall and reinstall)
REM -----------------------------------------------------
::
:: -----------------------------------------------------
:: Install RDP Wrapper (exactly uninstall and reinstall)
:: -----------------------------------------------------
:install
echo.
echo [*] Uninstall and reinstall RDP Wrapper...
@ -226,10 +230,10 @@ set rdpwrap_installed="1"
%RDPWInst_exe% -i -o
call :setNLA
goto :eof
REM -------------------
REM Restart RDP Wrapper
REM -------------------
::
:: -------------------
:: Restart RDP Wrapper
:: -------------------
:restart
echo.
echo [*] Restart RDP Wrapper with new ini (uninstall and reinstall)...
@ -250,10 +254,10 @@ if exist %rdpwrap_new_ini% (
%RDPWInst_exe% -i
call :setNLA
goto :eof
REM --------------------------------------------------------------------
REM Download up-to-date (alternative) version of rdpwrap.ini from GitHub
REM --------------------------------------------------------------------
::
:: --------------------------------------------------------------------
:: Download up-to-date (alternative) version of rdpwrap.ini from GitHub
:: --------------------------------------------------------------------
:update
echo [*] check network connectivity...
:netcheck
@ -267,7 +271,7 @@ if errorlevel 1 (
echo [.] Wait for network connection is available...
ping 127.0.0.1 -n 11>nul
set /a retry_network_check=retry_network_check+1
REM wait for a maximum of 5 minutes
:: wait for a maximum of 5 minutes
if %retry_network_check% LSS 30 goto netcheck
:download
set /a github_location=github_location+1
@ -288,21 +292,23 @@ if "%download_status%"=="-1" (
echo [*] Please check you internet connection/firewall and try again^^!
)
goto :eof
REM --------------------------------
REM Set Network Level Authentication
REM --------------------------------
::
:: --------------------------------
:: Set Network Level Authentication
:: --------------------------------
:setNLA
echo [*] Set Network Level Authentication in the windows registry...
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t reg_dword /d 0x2 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t reg_dword /d 0x2 /f
goto :eof
::
:: -------
:: E X I T
:: -------
:finish
echo.
exit /b
::
--- Begin wsf script --- fileVersion/fileDownload --->
<package>
<job id="fileVersion"><script language="VBScript">