commit
f69924e63f
25 changed files with 1070 additions and 0 deletions
@ -0,0 +1,6 @@ |
|||||||
|
#!/usr/bin/perl -w |
||||||
|
|
||||||
|
use esmith::Build::CreateLinks qw(:all); |
||||||
|
|
||||||
|
templates2events("/home/e-smith/files/shares/wpkg/files/settings/fwsupdates/adm_conf.bat", qw(wpkg-update bootstrap-console-save)); |
||||||
|
templates2events("/home/e-smith/files/shares/wpkg/files/settings/fwsupdates/user_conf.bat", qw(wpkg-update bootstrap-console-save)); |
@ -0,0 +1,46 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<packages> |
||||||
|
<package id="fwsupdates" |
||||||
|
name="Client de mises à jour" |
||||||
|
revision="%PKG_VERSION%" |
||||||
|
reboot="false" |
||||||
|
priority="95"> |
||||||
|
|
||||||
|
<variable name="PKG_VERSION" value="1" /> |
||||||
|
|
||||||
|
<check type="registry" condition="equals" path="HKLM\Software\FWS\Updates\ClientVersion" value="%PKG_VERSION%" /> |
||||||
|
|
||||||
|
<install cmd='%COMSPEC% /C if not exist "%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown" mkdir "%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown"' /> |
||||||
|
<install cmd='%COMSPEC% /C copy /Y "%SOFTWARE%\fwsupdates\fwsupdates.vbs" "%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown\fwsupdates.upgrade.vbs"' /> |
||||||
|
<install cmd='%COMSPEC% /C if not exist "%SystemDrive%\FWSUpdates" mkdir "%SystemDrive%\FWSUpdates"' /> |
||||||
|
<install cmd='%COMSPEC% /C xcopy /I /E /Y "%SOFTWARE%\fwsupdates\FWSUpdates\assets" "%SystemDrive%\FWSUpdates\assets.upgrade"' /> |
||||||
|
<install cmd='%COMSPEC% /C xcopy /I /E /Y "%SOFTWARE%\fwsupdates\FWSUpdates\bin" "%SystemDrive%\FWSUpdates\bin.upgrade"' /> |
||||||
|
<install cmd='%COMSPEC% /C xcopy /I /E /Y "%SOFTWARE%\fwsupdates\FWSUpdates\lang" "%SystemDrive%\FWSUpdates\lang.upgrade"' /> |
||||||
|
<install cmd='%COMSPEC% /C copy /Y "%SOFTWARE%\fwsupdates\offline_upgrade.bat" "%SystemDrive%\FWSUpdates"' /> |
||||||
|
<install cmd='%COMSPEC% /C if not exist "%SystemDrive%\FWSUpdates\repository" mkdir "%SystemDrive%\FWSUpdates\repository"' /> |
||||||
|
<install cmd='%COMSPEC% /C if not exist "%SystemDrive%\FWSUpdates\status" mkdir "%SystemDrive%\FWSUpdates\status"' /> |
||||||
|
<install cmd='%COMSPEC% /C if not exist "%SystemDrive%\FWSUpdates\conf\adm" mkdir "%SystemDrive%\FWSUpdates\conf\adm"' /> |
||||||
|
<install cmd='%COMSPEC% /C if not exist "%SystemDrive%\FWSUpdates\prodkeys" mkdir "%SystemDrive%\FWSUpdates\prodkeys"' /> |
||||||
|
<install cmd='%COMSPEC% /C copy /Y "%SETTINGS%\fwsupdates\adm_conf.bat" "%SystemDrive%\FWSUpdates\conf\adm\conf.bat"' /> |
||||||
|
<install cmd='%COMSPEC% /C copy /Y "%SETTINGS%\fwsupdates\user_conf.bat" "%SystemDrive%\FWSUpdates\conf\user\conf.bat"' /> |
||||||
|
<install cmd='icacls.exe "%SystemDrive%\FWSUpdates" /inheritance:d /t /c /q' /> |
||||||
|
<install cmd='icacls.exe "%SystemDrive%\FWSUpdates" /remove:g "*S-1-5-11" /t /c /q' /> |
||||||
|
<install cmd='icacls.exe "%SystemDrive%\FWSUpdates\repository" /remove:g "*S-1-5-32-545" /t /c /q' /> |
||||||
|
<install cmd='icacls.exe "%SystemDrive%\FWSUpdates\status" /remove:g "*S-1-5-32-545" /t /c /q' /> |
||||||
|
<install cmd='icacls.exe "%SystemDrive%\FWSUpdates\conf\adm" /remove:g "*S-1-5-32-545" /t /c /q' /> |
||||||
|
<install cmd='icacls.exe "%SystemDrive%\FWSUpdates\prodkeys" /remove:g "*S-1-5-32-545" /t /c /q' /> |
||||||
|
<install cmd='%COMSPEC% /C copy /Y "%SOFTWARE%\fwsupdates\chkupd_bgmon.vbs" "%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Startup\"'/> |
||||||
|
<install cmd='%COMSPEC% /C regedit /S %SETTINGS%\fwsupdates\gp.reg' /> |
||||||
|
<install cmd='%COMSPEC% /C regedit /S %SETTINGS%\fwsupdates\dav_limit.reg' /> |
||||||
|
<install cmd='%COMSPEC% /C regini %SETTINGS%\fwsupdates\run_on_shutdown_reg.txt' /> |
||||||
|
<install cmd='cscript //Nologo "%SOFTWARE%\fwsupdates\create_shortcut.vbs' /> |
||||||
|
<install cmd='cscript //Nologo "%SOFTWARE%\fwsupdates\localgp.vbs" fwsupdates.vbs false MACHINE' /> |
||||||
|
<install cmd='schtasks.exe /Create /tn "sync_wpkg" /sc hourly /mo 3 /ru "SYSTEM" /tr "%SystemDrive%\FWSUpdates\bin\delayed_sync.bat" /f' /> |
||||||
|
<install cmd='reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v WPKGUpgrade /t REG_SZ /d "cmd.exe /c \"%SystemDrive%\FWSUpdates\offline_upgrade.bat\"" /f' /> |
||||||
|
<install cmd='%COMSPEC% /C echo reg add "HKLM\Software\FWS\Updates" /v "ClientVersion" /t REG_SZ /d "%PKG_VERSION%" /f >> %SystemDrive%\FWSUpdates\offline_upgrade.bat' /> |
||||||
|
|
||||||
|
<upgrade include='install' /> |
||||||
|
|
||||||
|
</package> |
||||||
|
</packages> |
||||||
|
|
@ -0,0 +1,21 @@ |
|||||||
|
{ |
||||||
|
|
||||||
|
my $pass = $wpkg{'UserPassword'}; |
||||||
|
my $repo = $wpkg{'RepositoryUri'} || 'https://pkgs.' . $DomainName; |
||||||
|
my $logs = $wpkg{'LogsUri'} || 'https://pkglogs.' . $DomainName; |
||||||
|
my $delay = $wpkg{'RandomDelay'} || '600'; |
||||||
|
my $report = $wpkg{'MaxReportDays'} || '7'; |
||||||
|
|
||||||
|
my $out .=<<"_EOF"; |
||||||
|
SET USER=deploiement |
||||||
|
SET PASS=$pass |
||||||
|
SET REPO=$repo |
||||||
|
SET LOGS=$logs |
||||||
|
SET RANDOM_DELAY=600 |
||||||
|
SET MAX_REPORT=7 |
||||||
|
_EOF |
||||||
|
|
||||||
|
$out =~ s/\n/\r\n/g; |
||||||
|
$OUT = $out; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
{ |
||||||
|
|
||||||
|
my $report = $wpkg{'MaxReportDays'} || '7'; |
||||||
|
|
||||||
|
my $out .=<<"_EOF"; |
||||||
|
SET MAX_REPORT=7 |
||||||
|
_EOF |
||||||
|
|
||||||
|
$out =~ s/\n/\r\n/g; |
||||||
|
$OUT = $out; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
call %~dp0\conf.bat |
||||||
|
if not exist "%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown" mkdir "%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown" |
||||||
|
copy /Y "\\%IPASSERELLE_IP%\wpkg\softwares\fwsupdates\fwsupdates.vbs" "%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown\" |
||||||
|
del /q "%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown\wpkg.bat" |
||||||
|
if not exist "%SystemDrive%\FWSUpdates" mkdir "%SystemDrive%\FWSUpdates" |
||||||
|
xcopy /E /Y "\\%IPASSERELLE_IP%\wpkg\softwares\fwsupdates\FWSUpdates\*" "%SystemDrive%\FWSUpdates\" |
||||||
|
if not exist "%SystemDrive%\FWSUpdates\repository" mkdir "%SystemDrive%\FWSUpdates\repository" |
||||||
|
if not exist "%SystemDrive%\FWSUpdates\status" mkdir "%SystemDrive%\FWSUpdates\status" |
||||||
|
if not exist "%SystemDrive%\FWSUpdates\conf\adm" mkdir "%SystemDrive%\FWSUpdates\conf\adm" |
||||||
|
if not exist "%SystemDrive%\FWSUpdates\conf\user" mkdir "%SystemDrive%\FWSUpdates\conf\user" |
||||||
|
if not exist "%SystemDrive%\FWSUpdates\prodkeys" mkdir "%SystemDrive%\FWSUpdates\prodkeys" |
||||||
|
copy /Y "\\%IPASSERELLE_IP%\wpkg\settings\fwsupdates\adm_conf.bat" "%SystemDrive%\FWSUpdates\conf\adm\conf.bat" |
||||||
|
copy /Y "\\%IPASSERELLE_IP%\wpkg\settings\fwsupdates\user_conf.bat" "%SystemDrive%\FWSUpdates\conf\user\conf.bat" |
||||||
|
icacls.exe "%SystemDrive%\FWSUpdates" /inheritance:d /t /c /q |
||||||
|
REM Authenticated users |
||||||
|
icacls.exe "%SystemDrive%\FWSUpdates" /remove:g "*S-1-5-11" /t /c /q |
||||||
|
REM Some rep are not accessible at all by simple users |
||||||
|
icacls.exe "%SystemDrive%\FWSUpdates\repository" /remove:g "*S-1-5-32-545" /t /c /q |
||||||
|
icacls.exe "%SystemDrive%\FWSUpdates\status" /remove:g "*S-1-5-32-545" /t /c /q |
||||||
|
icacls.exe "%SystemDrive%\FWSUpdates\conf\adm" /remove:g "*S-1-5-32-545" /t /c /q |
||||||
|
icacls.exe "%SystemDrive%\FWSUpdates\prodkeys" /remove:g "*S-1-5-32-545" /t /c /q |
||||||
|
copy /Y "\\%IPASSERELLE_IP%\wpkg\softwares\fwsupdates\chkupd_bgmon.vbs" "%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Startup\" |
||||||
|
regedit /S "\\%IPASSERELLE_IP%\wpkg\settings\fwsupdates\gp.reg" |
||||||
|
regedit /S "\\%IPASSERELLE_IP%\wpkg\settings\fwsupdates\dav_limit.reg" |
||||||
|
regini "\\%IPASSERELLE_IP%\wpkg\settings\fwsupdates\run_on_shutdown_reg.txt" |
||||||
|
cscript //Nologo "\\%IPASSERELLE_IP%\wpkg\softwares\fwsupdates\localgp.vbs" fwsupdates.vbs false MACHINE |
||||||
|
cscript "\\%IPASSERELLE_IP%\wpkg\software\fwsupdates\create_shortcut.vbs" |
||||||
|
schtasks.exe /Create /tn "sync_wpkg" /sc hourly /mo 3 /ru "SYSTEM" /tr "%SystemDrive%\FWSUpdates\bin\delayed_sync.bat" /f |
After Width: | Height: | Size: 107 KiB |
After Width: | Height: | Size: 63 KiB |
Binary file not shown.
@ -0,0 +1,178 @@ |
|||||||
|
REM @echo off |
||||||
|
setlocal enabledelayedexpansion |
||||||
|
|
||||||
|
REM Detect if we have admin rights |
||||||
|
SET /A ADMIN=0 |
||||||
|
net session 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 SET /A ADMIN=1 |
||||||
|
|
||||||
|
IF %ADMIN% EQU 1 CALL %~dp0\..\conf\adm\conf.bat |
||||||
|
IF %ADMIN% NEQ 1 CALL %~dp0\..\conf\user\conf.bat |
||||||
|
|
||||||
|
SET /A WAIT=0 |
||||||
|
|
||||||
|
CALL %~dp0\..\lang\en.bat |
||||||
|
FOR /F "tokens=3" %%A IN ('reg query "HKLM\System\CurrentControlSet\Control\nls\Language" /v Installlanguage') DO SET LANG=%%A |
||||||
|
IF EXIST %~dp0\..\lang\%LANG%.bat CALL %~dp0\..\lang\%LANG%.bat |
||||||
|
|
||||||
|
SET watitle=%L_WINDOW_TITLE% |
||||||
|
SET wasig=%L_WINDOW_SIG% |
||||||
|
SET walabels=%L_BTN_PREV%;%L_BTN_NEXT%;%L_BTN_OK%;%L_BTN_CANCEL% |
||||||
|
SET wabmp=%SystemDrive%\FWSUpdates\assets\img\fws.bmp |
||||||
|
SET waico=%SystemDrive%\FWSUpdates\assets\img\fws.ico |
||||||
|
SET wabat=%TEMP%\fwsupdates_resp.bat |
||||||
|
|
||||||
|
:loop |
||||||
|
IF NOT "%1" == "loop" IF NOT %WAIT% EQU 0 goto :EOF |
||||||
|
timeout /t %WAIT% 1>NUL 2>NUL |
||||||
|
|
||||||
|
:begin |
||||||
|
|
||||||
|
SET /A WAIT=300 |
||||||
|
SET /A SYNC_IN_PROGRESS=0 |
||||||
|
SET /A RUN_ON_SHUTDOWN=0 |
||||||
|
|
||||||
|
REM Wait if a sync is running |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v SyncInProgress 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates" /v SyncInProgress') DO SET /A SYNC_IN_PROGRESS=%%A |
||||||
|
IF %SYNC_IN_PROGRESS% EQU 1 ( |
||||||
|
IF "%1" == "loop" goto loop |
||||||
|
SET watext=%L_SYNC_ALREADY_IN_PROGRESS% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe FINISH NOBACK NOCANCEL TB |
||||||
|
goto :EOF |
||||||
|
) |
||||||
|
|
||||||
|
REM if updates are already scheduled for next shutdown, just quit now, there's no point in looping |
||||||
|
reg query "HKLM\Software\FWS\Updates\User" /v RunOnShutdown 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates\User" /v RunOnShutdown') DO SET /A RUN_ON_SHUTDOWN=%%A |
||||||
|
IF %RUN_ON_SHUTDOWN% EQU 0 ( |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v RunOnShutdown 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates" /v RunOnShutdown') DO SET /A RUN_ON_SHUTDOWN=%%A |
||||||
|
) |
||||||
|
IF %RUN_ON_SHUTDOWN% EQU 1 ( |
||||||
|
IF "%1" == "loop" goto :EOF |
||||||
|
IF %ADMIN% NEQ 1 ( |
||||||
|
SET watext=%L_ALREADY_SCHEDULED_ON_SHUTDOWN% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe FINISH NOBACK NOCANCEL TB |
||||||
|
goto :EOF |
||||||
|
) |
||||||
|
) |
||||||
|
|
||||||
|
SET CHANGES=0 |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v PendingChanges 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates" /v PendingChanges') DO SET /A CHANGES=%%A |
||||||
|
IF %CHANGES% LSS 1 IF %ADMIN% NEQ 1 ( |
||||||
|
IF "%1" == "loop" goto loop |
||||||
|
SET watext=%L_NO_UPDATE_AVAILABLE% %L_FOR_YOUR_SYSTEM%. |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe FINISH NOBACK NOCANCEL TB |
||||||
|
goto :EOF |
||||||
|
) |
||||||
|
|
||||||
|
SET /A NOW=%DATE:~-4%%DATE:~3,2%%DATE:~0,2% |
||||||
|
SET /A SINCE=%NOW% |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v ChangesAvailableSince 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 OR /F "tokens=3 delims= " %%A IN ('reg query "HKLM\Software\FWS\Updates" /v ChangesAvailableSince') DO SET /A SINCE=%%A |
||||||
|
|
||||||
|
REM Some wording changes if there's only 1 single change to apply |
||||||
|
IF %CHANGES% EQU 1 ( |
||||||
|
SET INTRO=1 %L_ONE_UPDATE_AVAILABLE% |
||||||
|
SET AVAILABLE_SINCE=%L_ONE_UPDATE_AVAILABLE_SINCE% |
||||||
|
) ELSE ( |
||||||
|
SET INTRO=%CHANGES% %L_X_UPDATES_AVAILABLE% |
||||||
|
SET AVAILABLE_SINCE=%L_X_UPDATES_AVAILABLE_SINCE% |
||||||
|
) |
||||||
|
|
||||||
|
REM Compute how many days left we can delay updates |
||||||
|
SET /A MAX=%SINCE%+%MAX_REPORT% |
||||||
|
SET /A AGE=%NOW%-%SINCE% |
||||||
|
SET /A REMAINING=%MAX%-%NOW% |
||||||
|
|
||||||
|
REM Non admin on RDP shouldn't see updates notif |
||||||
|
IF %ADMIN% NEQ 1 IF NOT "%SESSIONNAME%" == "Console" goto :EOF |
||||||
|
|
||||||
|
REM Check if we can delay updates |
||||||
|
REM Users can only delay for %MAX_REPORT% days while admins can always delay |
||||||
|
SET /A CAN_REPORT=0 |
||||||
|
IF %NOW% LEQ %MAX% SET /A CAN_REPORT=1 |
||||||
|
IF %ADMIN% EQU 1 SET /A CAN_REPORT=1 |
||||||
|
|
||||||
|
IF %CHANGES% LSS 1 IF %ADMIN% EQU 1 ( |
||||||
|
SET watext=%L_NO_UPDATE_AVAILABLE% %L_FOR_YOUR_SYSTEM%. |
||||||
|
SET wainput= %L_CHECK_ONLINE_FOR_UPDATES% |
||||||
|
SET waoutnum=0 |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe NOBACK RB |
||||||
|
IF errorlevel 2 goto cancel_no_update |
||||||
|
IF errorlevel 1 goto previous |
||||||
|
IF !waoutnum! EQU 0 goto check |
||||||
|
) |
||||||
|
ELSE ( |
||||||
|
IF %CAN_REPORT% EQU 1 ( |
||||||
|
SET watext=%INTRO% %L_FOR_YOUR_SYSTEM%.~~%L_YOU_CAN_SCHEDULE%.~~%L_INSTALL_FORCED_IN% %REMAINING% %L_DAYS% |
||||||
|
SET wainput= %L_SCHEDULE_ON_SHUTDOWN%; %L_REPORT% |
||||||
|
IF %ADMIN% EQU 1 ( |
||||||
|
IF %RUN_ON_SHUTDOWN% NEQ 1 ( |
||||||
|
SET wainput= %L_SCHEDULE_ON_SHUTDOWN%; %L_REPORT%; %L_INSTALL_NOW%; %L_CHECK_ONLINE_FOR_UPDATES% |
||||||
|
) ELSE ( |
||||||
|
SET watext=%INTRO% %L_FOR_YOUR_SYSTEM%.~~%L_ALREADY_SCHEDULED_ON_SHUTDOWN%.~~%L_INSTALL_FORCED_IN% %REMAINING% %L_DAYS% |
||||||
|
SET wainput= %L_MAINTAIN_ON_SHUTDOWN%; %L_CANCEL_SCHEDULE_ON_SHUTDOWN%; %L_INSTALL_NOW%; %L_CHECK_ONLINE_FOR_UPDATES% |
||||||
|
) |
||||||
|
) |
||||||
|
|
||||||
|
SET waoutnum=0 |
||||||
|
|
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe NOBACK RB |
||||||
|
IF errorlevel 2 goto cancel |
||||||
|
IF errorlevel 1 goto previous |
||||||
|
CALL %wabat% |
||||||
|
IF !waoutnum! EQU 0 goto shutdown |
||||||
|
IF !waoutnum! EQU 1 goto later |
||||||
|
IF !waoutnum! EQU 2 goto now |
||||||
|
IF !waoutnum! EQU 3 goto check |
||||||
|
) ELSE ( |
||||||
|
SET watext=%INTRO% %L_FOR_YOUR_SYSTEM%.~~%AVAILABLE_SINCE% %L_SINCE% %AGE% %L_DAYS%.~~%L_CANT_REPORT_ANYMORE% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe FINISH TB |
||||||
|
goto :shutdown |
||||||
|
) |
||||||
|
) |
||||||
|
|
||||||
|
goto :loop |
||||||
|
|
||||||
|
:cancel |
||||||
|
goto :later |
||||||
|
|
||||||
|
:cancel_no_update |
||||||
|
goto :EOF |
||||||
|
|
||||||
|
:previous |
||||||
|
goto :loop |
||||||
|
|
||||||
|
:later |
||||||
|
reg del "HKLM\Software\FWS\Updates\User" /v RunOnShutdown /f 1>NUL 2>NUL |
||||||
|
IF %ADMIN% EQU 1 reg del "HKLM\Software\FWS\Updates" /v RunOnShutdown /f 1>NUL 2>NUL |
||||||
|
SET watext=%L_UPDATES_REPORTED%. |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe FINISH NOBACK TB |
||||||
|
SET /A WAIT=WAIT+10800 |
||||||
|
goto loop |
||||||
|
|
||||||
|
:shutdown |
||||||
|
reg add "HKLM\Software\FWS\Updates\User" /v RunOnShutdown /t REG_DWORD /d 1 /f |
||||||
|
SET watext=%L_UPDATES_SCHEDULED% |
||||||
|
%SystemDrive%\FWSUpdates\bin\wizapp.exe FINISH NOBACK TB |
||||||
|
goto :EOF |
||||||
|
|
||||||
|
:now |
||||||
|
IF %ADMIN% NEQ 1 goto later |
||||||
|
CALL %~dp0\wpkg_feedback.bat %CHANGES% |
||||||
|
SET watext=%L_UPDATES_FINISHED% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe FINISH NOBACK NOCANCEL TB |
||||||
|
goto :loop |
||||||
|
|
||||||
|
:check |
||||||
|
IF %ADMIN% NEQ 1 goto later |
||||||
|
SET watext=%L_CHECKING_UPDATES% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB OPEN NOBACK NOCANCEL |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE 10 |
||||||
|
CALL %~dp0\sync.bat |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB CLOSE |
||||||
|
goto begin |
||||||
|
|
@ -0,0 +1,2 @@ |
|||||||
|
@echo off |
||||||
|
start /min %~dp0\chkupd_wrapper.vbs |
@ -0,0 +1,2 @@ |
|||||||
|
Set objShell = CreateObject("Wscript.Shell") |
||||||
|
objShell.Run """" & objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%") & "\FWSUpdates\bin\chkupd.bat" & """", 0, False |
@ -0,0 +1,5 @@ |
|||||||
|
CALL %~dp0\..\conf\adm\conf.bat |
||||||
|
REM Random delay to spread the load on the server |
||||||
|
SET /A DELAY=%RANDOM% %%%RANDOM_DELAY% |
||||||
|
timeout /t %DELAY% 1>NUL 2>NUL |
||||||
|
CALL %~dp0\sync.bat |
@ -0,0 +1,13 @@ |
|||||||
|
@echo off |
||||||
|
REM Only run if needed |
||||||
|
SET /A USER_RUN=0 |
||||||
|
SET /A ADMIN_RUN=0 |
||||||
|
reg query "HKLM\Software\FWS\Updates\User" /v RunOnShutdown 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates\User" /v RunOnShutdown') DO SET /A USER_RUN=%%A |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v RunOnShutdown 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates" /v RunOnShutdown') DO SET /A ADMIN_RUN=%%A |
||||||
|
|
||||||
|
IF %USER_RUN% NEQ 1 IF %ADMIN_RUN% NEQ 1 goto :EOF |
||||||
|
|
||||||
|
call %SystemDrive%\FWSUpdates\bin\wpkg_feedback.bat |
||||||
|
|
@ -0,0 +1,188 @@ |
|||||||
|
setlocal enabledelayedexpansion |
||||||
|
CALL %~dp0\..\conf\adm\conf.bat |
||||||
|
|
||||||
|
SET /A SYNC_IN_PROGRESS=0 |
||||||
|
SET /A RUN_ON_SHUTDOWN=0 |
||||||
|
|
||||||
|
REM exit if another sync is running |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v SyncInProgress 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 ( |
||||||
|
FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates" /v SyncInProgress') DO SET /A SYNC_IN_PROGRESS=%%A |
||||||
|
) |
||||||
|
IF %SYNC_IN_PROGRESS% EQU 1 goto :EOF |
||||||
|
|
||||||
|
REM or if updates are already scheduled for next shutdown |
||||||
|
reg query "HKLM\Software\FWS\Updates\User" /v RunOnShutdown 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates\User" /v RunOnShutdown') DO SET /A RUN_ON_SHUTDOWN=%%A |
||||||
|
IF %RUN_ON_SHUTDOWN% EQU 0 ( |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v RunOnShutdown 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates" /v RunOnShutdown') DO SET /A RUN_ON_SHUTDOWN=%%A |
||||||
|
) |
||||||
|
IF %RUN_ON_SHUTDOWN% EQU 1 ( |
||||||
|
echo %DATE% %TIME% - Updates already scheduled on next shutdown > %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto :EOF |
||||||
|
) |
||||||
|
|
||||||
|
REM remove the lock during startup so it'll work if rebooting during a sync |
||||||
|
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v ResetWPKGSyncStatus /t REG_SZ /d "%SYSTEMROOT%\System32\reg.exe delete \"HKLM\Software\FWS\Updates\" /v SyncInProgress /f" /f |
||||||
|
|
||||||
|
REM Now start the sync |
||||||
|
echo %DATE% %TIME% - Starting new Sync > %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
reg add "HKLM\Software\FWS\Updates" /v SyncInProgress /t REG_DWORD /d 1 /f |
||||||
|
|
||||||
|
REM Lets map a network drive |
||||||
|
SET DRIVE=unknown |
||||||
|
FOR %%D IN (e f g h i j k l m n o p q r s t u v w x y z) do ( |
||||||
|
cd %%D: |
||||||
|
IF ERRORLEVEL 1 SET DRIVE=%%D |
||||||
|
IF ERRORLEVEL 1 goto drivefound |
||||||
|
) |
||||||
|
echo %DATE% %TIME% - couldn't find any free drive letter > %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto :EOF |
||||||
|
:drivefound |
||||||
|
net use %DRIVE%: %REPO% /PERSISTENT:NO /USER:%USER% %PASS% 1>NUL 2>NUL |
||||||
|
REM Check if mapping worked |
||||||
|
IF %ERRORLEVEL% NEQ 0 ( |
||||||
|
echo %DATE% %TIME% - Error mapping %REPO% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto cleanup |
||||||
|
) |
||||||
|
REM and if wpkg.js exists |
||||||
|
IF NOT EXIST "%DRIVE%:\wpkg.js" ( |
||||||
|
echo %DATE% %TIME% - %DRIVE%:\wpkg.js not found >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto cleanup |
||||||
|
) |
||||||
|
REM Then Mirror the content of the repository on the local drive |
||||||
|
robocopy /MIR /R:10 /LOG:%SystemDrive%\FWSUpdates\status\log_robocopy.txt %DRIVE%:\ %SystemDrive%\FWSUpdates\repository\ 1>NUL 2>NUL |
||||||
|
|
||||||
|
|
||||||
|
REM Now, we have to check the exit status of the robocopy command |
||||||
|
REM Fatal Error |
||||||
|
if %ERRORLEVEL% EQU 16 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy done, with errors, mismatches and new files not copied |
||||||
|
if %ERRORLEVEL% EQU 15 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy failed, with mismatches and new files not copied |
||||||
|
if %ERRORLEVEL% EQU 14 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy done, with errors and mismatches |
||||||
|
if %ERRORLEVEL% EQU 13 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy failed with mismatches |
||||||
|
if %ERRORLEVEL% EQU 12 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto :xfererror |
||||||
|
) |
||||||
|
REM Copy done with errors and new files not copied |
||||||
|
if %ERRORLEVEL% EQU 11 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto :xfererror |
||||||
|
) |
||||||
|
if %ERRORLEVEL% EQU 10 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy done with errors |
||||||
|
if %ERRORLEVEL% EQU 9 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy failed |
||||||
|
if %ERRORLEVEL% EQU 8 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy done, with mismatches and new files not copied |
||||||
|
if %ERRORLEVEL% EQU 7 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Mismatches and new files not copied |
||||||
|
if %ERRORLEVEL% EQU 6 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy done with mismatches |
||||||
|
if %ERRORLEVEL% EQU 5 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto :xfererror |
||||||
|
) |
||||||
|
REM Mismatches |
||||||
|
if %ERRORLEVEL% EQU 4 ( |
||||||
|
echo %DATE% %TIME% - Robocopy exited with status %ERRORLEVEL% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto xfererror |
||||||
|
) |
||||||
|
REM Copy done, new files detected |
||||||
|
if %ERRORLEVEL% EQU 3 goto postcopy |
||||||
|
REM New files detected |
||||||
|
if %ERRORLEVEL% EQU 2 goto postcopy |
||||||
|
REM Copy done, we have new files, updates available |
||||||
|
if %ERRORLEVEL% EQU 1 goto postcopy |
||||||
|
REM No error, nothing copied, no updates |
||||||
|
if %ERRORLEVEL% EQU 0 goto postcopy |
||||||
|
|
||||||
|
:xfererror |
||||||
|
echo %DATE% %TIME% - Error occured during sync. See log_robocopy.txt for details >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto cleanup |
||||||
|
|
||||||
|
:postcopy |
||||||
|
echo %DATE% %TIME% - Copy finished successfuly, now checking if changes must be applied >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
FOR /F %%A IN ('cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /query:m ^| find /V "productkey" ^| find /C "ID:"') DO SET /A CHANGES=%%A |
||||||
|
echo %DATE% %TIME% - Found %CHANGES% changes >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
SET NOW=%DATE:~-4%%DATE:~3,2%%DATE:~0,2% |
||||||
|
SET /A MAX=%SINCE%+%MAX_REPORT% |
||||||
|
SET /A DELTA=%NOW%-%SINCE% |
||||||
|
reg add "HKLM\Software\FWS\Updates" /v PendingChanges /t REG_DWORD /d %CHANGES% /f |
||||||
|
IF %CHANGES% GTR 0 ( |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v ChangesAvailableSince 1>NUL 2>NUL |
||||||
|
IF ERRORLEVEL 1 ( |
||||||
|
reg add "HKLM\Software\FWS\Updates" /v ChangesAvailableSince /t REG_DWORD /d %NOW% /f |
||||||
|
) ELSE ( |
||||||
|
FOR /F %%A IN ('reg query "HKLM\Software\FWS\Updates" /v ChangesAvailableSince') DO SET /A SINCE=%%A |
||||||
|
IF %NOW% GTR %MAX% add "HKLM\Software\FWS\Updates" /v RunOnShutdown /t REG_DWORD /d 1 /f |
||||||
|
) |
||||||
|
goto copylogs |
||||||
|
) ELSE ( |
||||||
|
reg delete "HKLM\Software\FWS\Updates" /v ChangesAvailableSince /f |
||||||
|
goto copylogs |
||||||
|
) |
||||||
|
|
||||||
|
:copylogs |
||||||
|
REM map another network drive to push logs |
||||||
|
SET LOGDRIVE=unknown |
||||||
|
FOR %%D IN (e f g h i j k l m n o p q r s t u v w x y z) do ( |
||||||
|
cd %%D: |
||||||
|
IF ERRORLEVEL 1 SET LOGDRIVE=%%D |
||||||
|
IF ERRORLEVEL 1 goto logdrivefound |
||||||
|
) |
||||||
|
echo %DATE% %TIME% - couldn't find any free drive letter for logs > %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto :EOF |
||||||
|
|
||||||
|
:logdrivefound |
||||||
|
net use %LOGDRIVE%: %LOGS% /PERSISTENT:NO /USER:%USER% %PASS% 1>NUL 2>NUL |
||||||
|
REM Check if mapping worked |
||||||
|
IF %ERRORLEVEL% NEQ 0 ( |
||||||
|
echo %DATE% %TIME% - Error mapping %LOGS% >> %SystemDrive%\FWSUpdates\status\sync_log.txt |
||||||
|
goto cleanup |
||||||
|
) |
||||||
|
IF NOT EXIST "%LOGDRIVE%:\keys" mkdir "%LOGDRIVE%:\keys" |
||||||
|
IF NOT EXIST "%LOGDRIVE%:\logs" mkdir "%LOGDRIVE%:\logs" |
||||||
|
IF NOT EXIST "%LOGDRIVE%:\databases" mkdir "%LOGDRIVE%:\databases" |
||||||
|
IF EXIST "%SystemDrive\FWSUpdates\prodkeys\%COMPUTERNAME%.txt" copy /Y "%SystemDrive\FWSUpdates\prodkeys\%COMPUTERNAME%.txt" "%LOGDRIVE%:\keys" |
||||||
|
IF EXIST "%TEMP%\wpkg-%COMPUTERNAME%.log" copy /Y "%TEMP%\wpkg-%COMPUTERNAME%.log" "%LOGDRIVE%:\logs\%COMPUTERNAME%.log" |
||||||
|
IF EXIST "%SYSTEMROOT%\system32\wpkg.xml" copy /Y "%SYSTEMROOT%\system32\wpkg.xml" "%LOGDRIVE%:\databases\%COMPUTERNAME%.xml" |
||||||
|
net use /D %LOGDRIVE%: 1>NUL 2>NUL |
||||||
|
goto cleanup |
||||||
|
|
||||||
|
:cleanup |
||||||
|
reg delete "HKLM\Software\FWS\Updates" /v SyncInProgress /f |
||||||
|
net use /D %DRIVE%: 1>NUL 2>NUL |
||||||
|
|
@ -0,0 +1,70 @@ |
|||||||
|
@echo off |
||||||
|
SETLOCAL enabledelayedexpansion |
||||||
|
|
||||||
|
SET /A CHANGES=1 |
||||||
|
reg query "HKLM\Software\FWS\Updates" /v PendingChanges 1>NUL 2>NUL |
||||||
|
IF %ERRORLEVEL% EQU 0 FOR /F "tokens=3" %%A IN ('reg query "HKLM\Software\FWS\Updates" /v PendingChanges') DO SET /A CHANGES=%%A |
||||||
|
|
||||||
|
CALL %~dp0\..\lang\en.bat |
||||||
|
FOR /F "tokens=3" %%A IN ('reg query "HKLM\System\CurrentControlSet\Control\nls\Language" /v Installlanguage') DO SET LANG=%%A |
||||||
|
IF EXIST %~dp0\..\lang\%LANG%.bat CALL %~dp0\..\lang\%LANG%.bat |
||||||
|
|
||||||
|
SET watitle=%L_WINDOW_TITLE% |
||||||
|
SET wasig=%L_WINDOW_SIG% |
||||||
|
SET walabels=%L_BTN_PREV%;%L_BTN_NEXT%;%L_BTN_OK%;%L_BTN_CANCEL% |
||||||
|
SET wabmp=%SystemDrive%\FWSUpdates\assets\img\fws.bmp |
||||||
|
SET waico=%SystemDrive%\FWSUpdates\assets\img\fws.ico |
||||||
|
|
||||||
|
SET watext=%L_INITIALIZING_UPDATES% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB OPEN NOBACK NOCANCEL |
||||||
|
SET /A STEP=90/%CHANGES% |
||||||
|
SET /A PROGRESS=0 |
||||||
|
SET watext=%L_CHECKING_INSTALLS% |
||||||
|
SET /A CANCEL=0 |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE 1 |
||||||
|
FOR /F "tokens=2" %%A IN ('cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /nonotify /quiet:true /query:I ^| find "ID:" ^| find /V "productkey" ') DO ( |
||||||
|
SET PACKAGE=%%A |
||||||
|
SET watext=%L_INSTALLING_X% !PACKAGE! |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE !PROGRESS! |
||||||
|
IF !ERRORLEVEL! EQU 2 goto :cancel |
||||||
|
cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /install:!PACKAGE! /nonotify /quiet:true /noreboot /logAppend:true 1>NUL 2>NUL |
||||||
|
SET /A PROGRESS=PROGRESS+%STEP% |
||||||
|
) |
||||||
|
SET watext=%L_CHECKING_UPDATES% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE %PROGRESS% |
||||||
|
FOR /F "tokens=2" %%A IN ('cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /nonotify /quiet:true /query:u /logAppend:true ^| find "ID:" ^| find /V "productkey"') DO ( |
||||||
|
SET PACKAGE=%%A |
||||||
|
SET watext=%L_UPDATING_X% !PACKAGE! |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE !PROGRESS! |
||||||
|
IF !ERRORLEVEL! EQU 2 goto :cancel |
||||||
|
cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /upgrade:!PACKAGE! /nonotify /quiet:true /noreboot /logAppend:true 1>NUL 2>NUL |
||||||
|
SET /A PROGRESS=PROGRESS+%STEP% |
||||||
|
) |
||||||
|
SET watext=%L_CHECKING_REMOVES% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE %PROGRESS% |
||||||
|
FOR /F "tokens=2" %%A IN ('cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /nonotify /quiet:true /query:r /logAppend:true ^| find "ID:" ^| find /V "productkey"') DO ( |
||||||
|
SET PACKAGE=%%A |
||||||
|
SET watext=%L_REMOVING_X% !PACKAGE! |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE !PROGRESS! |
||||||
|
IF !ERRORLEVEL! EQU 2 goto :cancel |
||||||
|
cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /remove:!PACKAGE! /nonotify /quiet:true /noreboot /logAppend:true 1>NUL 2>NUL |
||||||
|
SET /A PROGRESS=PROGRESS+%STEP% |
||||||
|
) |
||||||
|
SET watext=%L_SYNCHRONIZING_CHANGES% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE %PROGRESS% |
||||||
|
IF %ERRORLEVEL% EQU 2 goto :cancel |
||||||
|
cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /synchronize /nonotify /quiet:true /noreboot /logAppend:true 1>NUL 2>NUL |
||||||
|
goto :finish |
||||||
|
|
||||||
|
:cancel |
||||||
|
SET watext=%L_CANCELLING_UPDATES% |
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB UPDATE 90 |
||||||
|
goto :finish |
||||||
|
|
||||||
|
:finish |
||||||
|
FOR /F %%A IN ('cscript %SystemDrive%\FWSUpdates\repository\wpkg.js /nonotify /quiet:true /query:m /logAppend:true ^| find /V "productkey" ^| find /C "ID:"') DO SET /A CHANGES=%%A |
||||||
|
reg add "HKLM\Software\FWS\Updates" /v PendingChanges /t REG_DWORD /d %CHANGES% /f |
||||||
|
reg delete "HKLM\Software\FWS\Updates\User" /v RunOnShutdown /f 1>NUL 2>NUL |
||||||
|
reg delete "HKLM\Software\FWS\Updates" /v RunOnShutdown /f 1>NUL 2>NUL |
||||||
|
|
||||||
|
start /w %SystemDrive%\FWSUpdates\bin\wizapp.exe PB CLOSE |
@ -0,0 +1,37 @@ |
|||||||
|
SET L_WINDOW_TITLE=Mise à jour |
||||||
|
SET L_WINDOW_SIG=Firewall Services |
||||||
|
SET L_BTN_PREV=Précédent |
||||||
|
SET L_BTN_NEXT=Suivant |
||||||
|
SET L_BTN_OK=Valider |
||||||
|
SET L_BTN_CANCEL=Annuler |
||||||
|
SET L_ONE_UPDATE_AVAILABLE=mise à jour est disponible |
||||||
|
SET L_X_UPDATES_AVAILABLE=mises à jour sont disponibles |
||||||
|
SET L_NO_UPDATE_AVAILABLE=Aucune mise à jour n'est disponible |
||||||
|
SET L_ONE_UPDATE_AVAILABLE_SINCE=Cette mise à jour est disponible |
||||||
|
SET L_X_UPDATES_AVAILABLE_SINCE=Parmi ces mises à jour, certaines sont disponibles |
||||||
|
SET L_FOR_YOUR_SYSTEM=pour votre poste |
||||||
|
SET L_YOU_CAN_SCHEDULE=Vous pouvez programmer l'installation au prochain arrêt ou la repousser à plus tard |
||||||
|
SET L_SCHEDULE_ON_SHUTDOWN=Programmer l'installation au prochain arrêt du système |
||||||
|
SET L_INSTALL_NOW=Installer maintenant |
||||||
|
SET L_REPORT=Repousser à plus tard |
||||||
|
SET L_SINCE=depuis |
||||||
|
SET L_DAYS=jour^(s^^^) |
||||||
|
SET L_CANT_REPORT_ANYMORE=il n'est plus possible de retarder leur installation, qui sera effectuée au prochain arrêt du système |
||||||
|
SET L_UPDATES_REPORTED=L'installation des mises à jour est repoussée. Elle vous sera reproposée ultérieurement |
||||||
|
SET L_UPDATES_SCHEDULED=Les mises à jour ont été programmées pour s'installer durant le prochain arrêt du système |
||||||
|
SET L_INITIALIZING_UPDATES=Préparation de l'installation des mises à jour |
||||||
|
SET L_CHECKING_INSTALLS=Recherche des logiciels à installer |
||||||
|
SET L_INSTALLING_X=Installation de |
||||||
|
SET L_CHECKING_UPDATES=Recherche des logiciels à mettre à jour |
||||||
|
SET L_UPDATING_X=Mise à jour de |
||||||
|
SET L_CHECKING_REMOVES=Recherche des logiciels à supprimer |
||||||
|
SET L_REMOVING_X=Suppression de |
||||||
|
SET L_SYNCHRONIZING_CHANGES=Synchronisation des changements restants |
||||||
|
SET L_UPDATES_FINISHED=L'installation des mises à jour est terminée |
||||||
|
SET L_SYNC_ALREADY_IN_PROGRESS=Les mises à jour sont en cours de téléchargement depuis le serveur. Veuillez réessayer plus tard |
||||||
|
SET L_ALREADY_SCHEDULED_ON_SHUTDOWN=L'installation des mises à jour a déjà été programmé durant le prochain arrêt ou redémarrage de la machine |
||||||
|
SET L_CHECK_ONLINE_FOR_UPDATES=Vérifier maintenant en ligne |
||||||
|
SET L_CANCELLING_UPDATES=Annulation des mises à jour en cours |
||||||
|
SET L_INSTALL_FORCED_IN=L'installation des mises à jour sera forcée dans |
||||||
|
SET L_MAINTAIN_ON_SHUTDOWN=Maintenir la programmation |
||||||
|
SET L_CANCEL_SCHEDULE_ON_SHUTDOWN=Annuler la programmation |
@ -0,0 +1,37 @@ |
|||||||
|
SET L_WINDOW_TITLE=System updates |
||||||
|
SET L_WINDOW_SIG=Firewall Services |
||||||
|
SET L_BTN_PREV=Previous |
||||||
|
SET L_BTN_NEXT=Next |
||||||
|
SET L_BTN_OK=Validate |
||||||
|
SET L_BTN_CANCEL=Cancel |
||||||
|
SET L_ONE_UPDATE_AVAILABLE=update available |
||||||
|
SET L_X_UPDATES_AVAILABLE=updates available |
||||||
|
SET L_NO_UPDATE_AVAILABLE=No update available |
||||||
|
SET L_ONE_UPDATE_AVAILABLE_SINCE=This update is available |
||||||
|
SET L_X_UPDATES_AVAILABLE_SINCE=Among these updates, some are available |
||||||
|
SET L_FOR_YOUR_SYSTEM=for your system |
||||||
|
SET L_YOU_CAN_SCHEDULE=You can schedule installation on next shutdown, or postpone it |
||||||
|
SET L_SCHEDULE_ON_SHUTDOWN=Schedule installation on next shutdown |
||||||
|
SET L_INSTALL_NOW=Install now |
||||||
|
SET L_REPORT=Postpone |
||||||
|
SET L_SINCE=since |
||||||
|
SET L_DAYS=day^(s^^^) |
||||||
|
SET L_CANT_REPORT_ANYMORE=It's no longer possible to postpone installation, which will run on next shutdown |
||||||
|
SET L_UPDATES_REPORTED=Installation was postponed. You'll be asked again to install later to schedule the updates |
||||||
|
SET L_UPDATES_SCHEDULED=Updates have been schedule to run on next shutdown |
||||||
|
SET L_INITIALIZING_UPDATES=Initializing updates installation |
||||||
|
SET L_CHECKING_INSTALLS=Searching software to install |
||||||
|
SET L_INSTALLING_X=Installing |
||||||
|
SET L_CHECKING_UPDATES=Searching softwares to update |
||||||
|
SET L_UPDATING_X=Updating |
||||||
|
SET L_CHECKING_REMOVES=Searching softwares to remove |
||||||
|
SET L_REMOVING_X=Removing |
||||||
|
SET L_SYNCHRONIZING_CHANGES=Synchronizing remaining changes |
||||||
|
SET L_UPDATES_FINISHED=Updates have been installed |
||||||
|
SET L_SYNC_ALREADY_IN_PROGRESS=Updates are currently being downloaded, please try again later |
||||||
|
SET L_ALREADY_SCHEDULED_ON_SHUTDOWN=Installation is already scheduled on next shutdown |
||||||
|
SET L_CHECK_ONLINE_FOR_UPDATES=Check now online |
||||||
|
SET L_CANCELLING_UPDATES=Cancelling updates |
||||||
|
SET L_INSTALL_FORCED_IN=Installation will be enforced in |
||||||
|
SET L_MAINTAIN_ON_SHUTDOWN=Keep schedule |
||||||
|
SET L_CANCEL_SCHEDULE_ON_SHUTDOWN=Cancel schedule |
@ -0,0 +1,2 @@ |
|||||||
|
Set objShell = CreateObject("Wscript.Shell") |
||||||
|
objShell.Run """" & objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%") & "\FWSUpdates\bin\chkupd.bat" & """" & " loop", 0, False |
@ -0,0 +1,8 @@ |
|||||||
|
Set objShell = CreateObject("WScript.Shell") |
||||||
|
strStartMenu = objShell.SpecialFolders("AllUsersStartMenu") |
||||||
|
Set objLink = objShell.CreateShortcut(strStartMenu & "\FWS Updates.lnk") |
||||||
|
objLink.IconLocation = objShell.ExpandEnvironmentStrings("%SystemDrive%") & "\FWSUpdates\assets\img\fws.ico" |
||||||
|
objLink.TargetPath = objShell.ExpandEnvironmentStrings("%SystemDrive%") & "\FWSUpdates\bin\chkupd_launcher.bat" |
||||||
|
objLink.WindowStyle = 3 |
||||||
|
objLink.Save |
||||||
|
WScript.Quit |
@ -0,0 +1,2 @@ |
|||||||
|
Set objShell = CreateObject("Wscript.Shell") |
||||||
|
objShell.Run """" & objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%") & "\FWSUpdates\bin\on_shutdown.bat" & """", 0, True |
@ -0,0 +1,330 @@ |
|||||||
|
'********************************************************* |
||||||
|
' En-tête |
||||||
|
'********************************************************* |
||||||
|
' °Author : BLUTEAU Erwan et christian grandjean |
||||||
|
' °Date : 28.01.2011 |
||||||
|
' °Version : 3.0 |
||||||
|
' |
||||||
|
' °Script description : |
||||||
|
' Add entries in local GPO for "Machine => Startup/Shutdown" or "User |
||||||
|
' => Logon/Logoff" entries. |
||||||
|
' |
||||||
|
' °Script parameters : |
||||||
|
' sScript = Script or application to run |
||||||
|
' sParameters = command line parameters |
||||||
|
' sAddInStartupOrLogin |
||||||
|
' True = Startup / Logon |
||||||
|
' False = Shutdown / Logoff |
||||||
|
' sMACHINEorUSER |
||||||
|
' MACHINE = Machine Policy |
||||||
|
' USER = User Policy |
||||||
|
' |
||||||
|
' °Script workflow : |
||||||
|
' 1. Set ini file to normal mode |
||||||
|
' 2. Edit ini file |
||||||
|
' 3. Create/Add changes |
||||||
|
' 4. Delete GPO registry key |
||||||
|
' 5. Set ini file to hidden mode |
||||||
|
' 6. Run GPUPDATE to integrate entries in registry |
||||||
|
' |
||||||
|
' °Remarks : |
||||||
|
' The script accept maximum 9 entries in ini file |
||||||
|
' |
||||||
|
'******************************************************** |
||||||
|
' Fin en-tête |
||||||
|
'********************************************************* |
||||||
|
|
||||||
|
|
||||||
|
Const ForReading =1 'Constante pour l ouverture en lecture d un fichier |
||||||
|
Const ForWriting = 2 |
||||||
|
const ForAppending = 8 |
||||||
|
Const DeleteReadOnly = True |
||||||
|
'********************************************************* |
||||||
|
'recupération des paramétres |
||||||
|
'********************************************************* |
||||||
|
Set objArgs = Wscript.Arguments ' Objet pour récupérer les arguments |
||||||
|
'Param 1 |
||||||
|
TargetRunningScript=Wscript.Arguments(0) |
||||||
|
'Param 2 |
||||||
|
if Wscript.Arguments.count <= 3 then |
||||||
|
TargetRunningScriptParam="" |
||||||
|
else |
||||||
|
TargetRunningScriptParam = Wscript.Arguments(1) |
||||||
|
if Wscript.Arguments.count >= 5 then |
||||||
|
for i = 2 to Wscript.Arguments.count-3 |
||||||
|
TargetRunningScriptParam = TargetRunningScriptParam & " " & Wscript.Arguments(i) |
||||||
|
next |
||||||
|
end if |
||||||
|
end if |
||||||
|
'Param 3 |
||||||
|
TargetTime=Wscript.Arguments(Wscript.Arguments.count-2) |
||||||
|
'Param 4 |
||||||
|
TargetGPO=Wscript.Arguments(Wscript.Arguments.count-1) |
||||||
|
|
||||||
|
'wscript.echo "param1=" & TargetRunningScript |
||||||
|
'wscript.echo "param2=" & TargetRunningScriptParam |
||||||
|
'wscript.echo "param3=" & TargetTime |
||||||
|
'wscript.echo "param4=" & TargetGPO |
||||||
|
|
||||||
|
|
||||||
|
'LANCEMENT SCRIPT |
||||||
|
WriteGPOScriptPolicyGPTINIFILE TargetTime,TargetGPO |
||||||
|
WriteGPOScriptPolicy TargetRunningScript,TargetRunningScriptParam,TargetTime,TargetGPO |
||||||
|
'********************************************************* |
||||||
|
' FIN |
||||||
|
'********************************************************* |
||||||
|
'WScript.Sleep 10000 |
||||||
|
WScript.Quit |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'********************************************************* |
||||||
|
' LES FONCTIONS |
||||||
|
'********************************************************* |
||||||
|
Sub WriteGPOScriptPolicyGPTINIFILE(ByVal sAddInStartupOrLogin, ByVal sMACHINEorUSER) |
||||||
|
Dim objFSO,ooShell |
||||||
|
Dim sSys32 |
||||||
|
Dim FicGptIni, PathGptIni, TmpVar, NbrLigne, i,ext, version |
||||||
|
Dim TABGptIni() |
||||||
|
Set ooShell = CreateObject("WSCript.Shell") 'Pour RUN de commandes |
||||||
|
Set objFSO = CreateObject("Scripting.FileSystemObject") ' |
||||||
|
Set sSys32 = objFSO.GetSpecialFolder(1) |
||||||
|
|
||||||
|
PathGptIni = sSys32 & "\GroupPolicy\gpt.ini" |
||||||
|
PathGptIniTMP = PathGptIni & ".tmp" |
||||||
|
|
||||||
|
NbrLigne = 0 |
||||||
|
IF not objFSO.FileExists(PathGptIni) Then |
||||||
|
Set FicGptIni = objFSO.OpenTextFile(PathGptIni, ForWriting,true) |
||||||
|
FicGptIni.write("[General]") |
||||||
|
FicGptIni.close |
||||||
|
end if |
||||||
|
|
||||||
|
Set FicGptIni = objFSO.OpenTextFile(PathGptIni, ForReading) |
||||||
|
|
||||||
|
Do Until FicGptIni.AtEndOfStream |
||||||
|
NbrLigne = NbrLigne + 1 |
||||||
|
TmpVar = FicGptIni.ReadLine() |
||||||
|
ReDim preserve TABGptIni(NbrLigne) |
||||||
|
TABGptIni(NbrLigne)=TmpVar |
||||||
|
'wscript.echo TABGptIni(NbrLigne) |
||||||
|
Loop |
||||||
|
'wscript.echo "***********************" |
||||||
|
'wscript.echo "***********************" |
||||||
|
|
||||||
|
if sMACHINEorUSER = "MACHINE" then |
||||||
|
gPCMachineLine = 0 |
||||||
|
generalLine = 0 |
||||||
|
For i = 0 to NbrLigne |
||||||
|
if instr(1,TABGptIni(i),"gPCMachineExtensionNames", 1) then |
||||||
|
gPCMachineLine = 1 |
||||||
|
if instr(TABGptIni(i),"[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]") then |
||||||
|
'wscript.echo "deja présent" |
||||||
|
else |
||||||
|
ext = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"=")) |
||||||
|
TABGptIni(i) = "gPCMachineExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]" & ext |
||||||
|
end if |
||||||
|
end if |
||||||
|
|
||||||
|
if instr(1,TABGptIni(i),"Version=",1) AND (instr(1,TABGptIni(i),"gPCFunctionalityVersion",1)=0) then |
||||||
|
version = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"=")) |
||||||
|
version = version + 65536 |
||||||
|
TABGptIni(i) = "Version=" & version |
||||||
|
end if |
||||||
|
if instr(1,TABGptIni(i),"[General]", 1) then |
||||||
|
generalLine = 1 |
||||||
|
end if |
||||||
|
if i = NbrLigne AND generalLine = 0 then |
||||||
|
TABGptIni(i) = TABGptIni(i) & vbNewLine & "[General]" |
||||||
|
end if |
||||||
|
if i = NbrLigne AND gPCMachineLine = 0 then |
||||||
|
TABGptIni(i) = TABGptIni(i) & vbNewLine & "gPCMachineExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]" & vbNewLine & "Version=1" |
||||||
|
end if |
||||||
|
Next |
||||||
|
end if |
||||||
|
|
||||||
|
if sMACHINEorUSER = "USER" then |
||||||
|
gPCUserLine = 0 |
||||||
|
For i = 0 to NbrLigne |
||||||
|
if instr(TABGptIni(i),"gPCUserExtensionNames") then |
||||||
|
if instr(TABGptIni(i),"[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B66650-4972-11D1-A7CA-0000F87571E3}]") then |
||||||
|
'wscript.echo "deja présent" |
||||||
|
else |
||||||
|
ext = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"=")) |
||||||
|
TABGptIni(i) = "gPCUserExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B66650-4972-11D1-A7CA-0000F87571E3}]" & ext |
||||||
|
end if |
||||||
|
end if |
||||||
|
|
||||||
|
if instr(TABGptIni(i),"Version=") AND (instr(TABGptIni(i),"gPCFunctionalityVersion")=0) then |
||||||
|
version = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"=")) |
||||||
|
version = version + 1 |
||||||
|
TABGptIni(i) = "Version=" & version |
||||||
|
end if |
||||||
|
if i = NbrLigne AND gPCUserLine = 0 then |
||||||
|
TABGptIni(i) = TABGptIni(i) & vbNewLine & "gPCUserExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]" & vbNewLine & "Version=1" |
||||||
|
end if |
||||||
|
Next |
||||||
|
end if |
||||||
|
|
||||||
|
on error goto 0 |
||||||
|
If objFSO.FileExists(PathGptIniTMP) Then |
||||||
|
objFSO.DeleteFile(PathGptIniTMP) |
||||||
|
End If |
||||||
|
Set FicGptIniTEMP = objFSO.OpenTextFile(PathGptIniTMP, ForWriting,true) |
||||||
|
for k = 0 to NbrLigne |
||||||
|
'wscript.echo TABGptIni(k) |
||||||
|
FicGptIniTEMP.write(TABGptIni(k) & vbNewLine) |
||||||
|
next |
||||||
|
FicGptIniTEMP.close |
||||||
|
objFSO.CopyFile PathGptIniTMP, PathGptIni, 1 |
||||||
|
If objFSO.FileExists(PathGptIniTMP) Then |
||||||
|
objFSO.DeleteFile(PathGptIniTMP) |
||||||
|
End If |
||||||
|
|
||||||
|
|
||||||
|
End Sub |
||||||
|
'********************************************************* |
||||||
|
Sub WriteGPOScriptPolicy(ByVal sScript, ByVal sParameters, ByVal sAddInStartupOrLogin, ByVal sMACHINEorUSER) |
||||||
|
Dim sScriptPath, sSys32, sTMP |
||||||
|
Dim oINI, ooShell, ooFSO, oINIProperties, oRegFile |
||||||
|
Dim iLastStartup, iLastShutdown |
||||||
|
Dim sOption1, sOption2, sStartup, sShutdown |
||||||
|
sStartup = "" |
||||||
|
sShutdown = "" |
||||||
|
sMACHINEorUSER = Ucase(sMACHINEorUSER) |
||||||
|
|
||||||
|
Set ooShell = CreateObject("WSCript.Shell") |
||||||
|
Set ooFSO = CreateObject("Scripting.FileSystemObject") |
||||||
|
|
||||||
|
Set sSys32 = ooFSO.GetSpecialFolder(1) |
||||||
|
|
||||||
|
' Check if COMPUTER or USER Policy |
||||||
|
If sMACHINEorUSER = "MACHINE" Then |
||||||
|
sScriptPath = sSys32 & "\GroupPolicy\Machine\Scripts\scripts.ini" |
||||||
|
Elseif sMACHINEorUSER = "USER" Then |
||||||
|
sScriptPath = sSys32 & "\GroupPolicy\User\Scripts\scripts.ini" |
||||||
|
Else |
||||||
|
WScript.Echo "Please set value for sMACHINEorUSER !" |
||||||
|
WScript.Quit |
||||||
|
End If |
||||||
|
|
||||||
|
If (Not ooFSO.FileExists(sScriptPath)) Then |
||||||
|
' Add new value in startup or shutdown |
||||||
|
If sAddInStartupOrLogin Then |
||||||
|
iLastStartup = 0 |
||||||
|
If sMACHINEorUSER = "MACHINE" Then sStartup = VbCrLf & "[Startup]" |
||||||
|
If sMACHINEorUSER = "USER" Then sStartup = VbCrLf & "[Logon]" |
||||||
|
sStartup = sStartup & VbCrLf & iLastStartup & "CmdLine=" & sScript |
||||||
|
sStartup = sStartup & VbCrLf & iLastStartup & "Parameters=" & sParameters |
||||||
|
Else |
||||||
|
iLastShutdown = 0 |
||||||
|
If sMACHINEorUSER = "MACHINE" Then sStartup = VbCrLf & "[Shutdown]" |
||||||
|
If sMACHINEorUSER = "USER" Then sStartup = VbCrLf & "[Logoff]" |
||||||
|
sShutdown = sShutdown & VbCrLf &iLastShutdown & "CmdLine=" & sScript |
||||||
|
sShutdown = sShutdown & VbCrLf &iLastShutdown & "Parameters=" & sParameters |
||||||
|
End If |
||||||
|
Else |
||||||
|
' Set file as normal |
||||||
|
Set oINIProperties = ooFSO.GetFile(sScriptPath) |
||||||
|
oINIProperties.Attributes = 0 'The File become Hidden! |
||||||
|
|
||||||
|
' read |
||||||
|
Set oINI = ooFSO.OpenTextFile(sScriptPath, 1) |
||||||
|
|
||||||
|
iLastStartup = 0 |
||||||
|
iLastShutdown = 0 |
||||||
|
|
||||||
|
Do While 1 = 1 |
||||||
|
On Error Resume Next |
||||||
|
sTMP = oINI.ReadLine |
||||||
|
'If sTMP = VbCrLf Then sTMP = "" |
||||||
|
If Err > 0 Then Exit Do |
||||||
|
On Error GoTo 0 |
||||||
|
|
||||||
|
If InStr(1, UCase(sTMP), UCase("[Startup]")) > 0 And sMACHINEorUSER = "MACHINE" Then sOption1 = sTMP |
||||||
|
If InStr(1, UCase(sTMP), UCase("[Shutdown]")) > 0 And sMACHINEorUSER = "MACHINE" Then sOption2 = sTMP |
||||||
|
If InStr(1, UCase(sTMP), UCase("[Logon]")) > 0 And sMACHINEorUSER = "USER" Then sOption1 = sTMP |
||||||
|
If InStr(1, UCase(sTMP), UCase("[Logoff]")) > 0 And sMACHINEorUSER = "USER" Then sOption2 = sTMP |
||||||
|
|
||||||
|
If sOption1 = "[Startup]" And sOption2 <> "[Shutdown]" Or sOption1 = "[Logon]" And sOption2 <> "[Logoff]" Then |
||||||
|
sStartup = sStartup & VbCrLf & sTMP |
||||||
|
|
||||||
|
On Error Resume Next |
||||||
|
'WScript.Echo CInt(Left(sTMP, 1)) |
||||||
|
iLastStartup = Cint(Left(sTMP, 1)) + 1 |
||||||
|
On Error GoTo 0 |
||||||
|
'WScript.Echo "Start Next value = " & iLastStartup |
||||||
|
Else |
||||||
|
sShutdown = sShutdown & VbCrLf & sTMP |
||||||
|
On Error Resume Next |
||||||
|
'WScript.Echo CInt(Left(sTMP, 1)) |
||||||
|
iLastShutdown = CInt(Left(sTMP, 1)) + 1 |
||||||
|
On Error GoTo 0 |
||||||
|
'WScript.Echo "Shutdown Next value = " & iLastShutdown |
||||||
|
End If |
||||||
|
Loop |
||||||
|
|
||||||
|
' Add new value in startup or shutdown |
||||||
|
If sAddInStartupOrLogin Then |
||||||
|
' If key dont exist |
||||||
|
If InStr(1, sStartup, "[Startup]") = 0 And sMACHINEorUSER = "MACHINE" Then sStartup = VbCrLf & "[Startup]" |
||||||
|
If InStr(1, sStartup, "[Logon]") = 0 And sMACHINEorUSER = "USER" Then sStartup = VbCrLf & "[Logon]" |
||||||
|
' Don't add the script agin if it's already there. Not very foolproof but.... |
||||||
|
If InStr(1, sStartup, "CmdLine=" & sScript, 1) = 0 Then |
||||||
|
sStartup = sStartup & VbCrLf &iLastStartup & "CmdLine=" & sScript |
||||||
|
sStartup = sStartup & VbCrLf & iLastStartup & "Parameters=" & sParameters |
||||||
|
End If |
||||||
|
Else |
||||||
|
' If key dont exist |
||||||
|
If InStr(1, sShutdown, "[Shutdown]") = 0 And sMACHINEorUSER = "MACHINE" Then sShutdown = VbCrLf & "[Shutdown]" |
||||||
|
If InStr(1, sShutdown, "[Logoff]") = 0 And sMACHINEorUSER = "USER" Then sShutdown = VbCrLf & "[Logoff]" |
||||||
|
If InStr(1, sShutdown, "CmdLine=" & sScript, 1) = 0 Then |
||||||
|
sShutdown = sShutdown & VbCrLf & iLastShutdown & "CmdLine=" & sScript |
||||||
|
sShutdown = sShutdown & VbCrLf & iLastShutdown & "Parameters=" & sParameters |
||||||
|
End If |
||||||
|
End If |
||||||
|
|
||||||
|
' Close file |
||||||
|
oINI.Close |
||||||
|
End If |
||||||
|
On Error GoTo 0 |
||||||
|
' prin result |
||||||
|
'WScript.Echo sStartup & sShutdown |
||||||
|
|
||||||
|
' Write result in ini file |
||||||
|
Set oINI = ooFSO.CreateTextFile(sScriptPath, True) |
||||||
|
oINI.WriteLine sStartup & sShutdown |
||||||
|
oINI.Close |
||||||
|
|
||||||
|
' Set file as hidden |
||||||
|
Set oINIProperties = ooFSO.GetFile(sScriptPath) |
||||||
|
oINIProperties.Attributes = 2 'The File become Hidden! |
||||||
|
|
||||||
|
' Remove registry key |
||||||
|
'Set oRegFile = ooFSO.CreateTextFile(CurDir & "\~TMP-REG-WriteGPOScriptPolicy-Script.reg", True) |
||||||
|
'oRegFile.WriteLine "Windows Registry Editor Version 5.00" |
||||||
|
'oRegFile.WriteLine "[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts]" |
||||||
|
'oRegFile.Close |
||||||
|
'oShell.Run "REGEDIT /S " & CurDir & "\~TMP-REG-WriteGPOScriptPolicy-Script.reg" |
||||||
|
'oFSO.DeleteFile CurDir & "\~TMP-REG-WriteGPOScriptPolicy-Script.reg", True |
||||||
|
|
||||||
|
' Check if COMPUTER or USER Policy |
||||||
|
If sMACHINEorUSER = "MACHINE" Then |
||||||
|
' Reload configuration from ini file |
||||||
|
ooShell.Run "GPUPDATE /Target:Computer /Wait:30", 0, True |
||||||
|
'if err.number <> 0 then |
||||||
|
' wscript.echo "ERREUR : " & err.Number & " : " & err.Description |
||||||
|
' wscript.sleep 10000 |
||||||
|
'end if |
||||||
|
Elseif sMACHINEorUSER = "USER" Then |
||||||
|
' Reload configuration from ini file |
||||||
|
ooShell.Run "GPUPDATE /Target:User /Force /Wait:30", 0, True |
||||||
|
Else |
||||||
|
WScript.Echo "Please set value for sMACHINEorUSER !" |
||||||
|
WScript.Quit |
||||||
|
End If |
||||||
|
|
||||||
|
End Sub |
@ -0,0 +1,22 @@ |
|||||||
|
@echo off |
||||||
|
|
||||||
|
REM perform upgrade of WPKG client |
||||||
|
|
||||||
|
IF EXIST "%SystemDrive%\FWSUpdates\assets.upgrade" ( |
||||||
|
RMDIR /S /Q "%SystemDrive%\FWSUpdates\assets" |
||||||
|
RENAME "%SystemDrive%\FWSUpdates\assets.upgrade" assets |
||||||
|
) |
||||||
|
IF EXIST "%SystemDrive%\FWSUpdates\bin.upgrade" ( |
||||||
|
RMDIR /S /Q "%SystemDrive%\FWSUpdates\bin" |
||||||
|
RENAME "%SystemDrive%\FWSUpdates\bin.upgrade" bin |
||||||
|
) |
||||||
|
IF EXIST "%SystemDrive%\FWSUpdates\lang.upgrade" ( |
||||||
|
RMDIR /S /Q "%SystemDrive%\FWSUpdates\lang" |
||||||
|
RENAME "%SystemDrive%\FWSUpdates\lang.upgrade" lang |
||||||
|
) |
||||||
|
IF EXIST "%SystemRoot%\System32\GroupPolicy\Machine\Scripts\Shutdown\wpkg.bat" DEL /F /Q "%SystemRoot%\System32\GroupPolicy\Machine\Scripts\Shutdown\wpkg.bat" |
||||||
|
IF EXIST "%SystemRoot%\System32\GroupPolicy\Machine\Scripts\Shutdown\fwsupdates.upgrade.vbs" ( |
||||||
|
DEL /Q "%SystemRoot%\System32\GroupPolicy\Machine\Scripts\Shutdown\fwsupdates.vbs" |
||||||
|
RENAME "%SystemRoot%\System32\GroupPolicy\Machine\Scripts\Shutdown\fwsupdates.upgrade.vbs" fwsupdates.vbs |
||||||
|
) |
||||||
|
reg delete "HKLM\Software\FWS\Updates" /v PendingChanges /f |
@ -0,0 +1,61 @@ |
|||||||
|
%define package fwsupdates |
||||||
|
%define version 0.1.0 |
||||||
|
%define release 0.beta1 |
||||||
|
|
||||||
|
Name: wpkg-fwsupdates |
||||||
|
Version: %{version} |
||||||
|
Release: %{release}%{?dist} |
||||||
|
Summary: WPKG Client with a GUI |
||||||
|
|
||||||
|
Group: System/Softwares |
||||||
|
URL: http://www.ipasserelle.com |
||||||
|
Source0: %{name}-%{version}.tar.gz |
||||||
|
License: misc |
||||||
|
|
||||||
|
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot |
||||||
|
BuildArch: noarch |
||||||
|
BuildRequires: unix2dos |
||||||
|
BuildRequires: e-smith-devtools |
||||||
|
BuildRequires: /usr/bin/iconv |
||||||
|
|
||||||
|
Requires: ipasserelle-gp |
||||||
|
|
||||||
|
%description |
||||||
|
Meta package to install WPKG supported softwares on iPasserelle |
||||||
|
|
||||||
|
%prep |
||||||
|
%setup -q -n %{name}-%{version} |
||||||
|
|
||||||
|
%build |
||||||
|
perl createlinks |
||||||
|
unix2dos packages/* |
||||||
|
for F in $(ls softwares/FWSUpdates/lang/*.bat); do |
||||||
|
L=${F%_utf8.bat}.bat |
||||||
|
iconv -f UTF-8 -t CP850 -o $L $F |
||||||
|
unix2dos $L |
||||||
|
rm -f $F |
||||||
|
done |
||||||
|
|
||||||
|
%install |
||||||
|
/bin/rm -rf %{buildroot} |
||||||
|
cp -a root %{buildroot}/ |
||||||
|
mkdir -p %{buildroot}/home/e-smith/files/shares/wpkg/files/packages |
||||||
|
mkdir -p %{buildroot}/home/e-smith/files/shares/wpkg/files/softwares/%{package} |
||||||
|
mkdir -p %{buildroot}/home/e-smith/files/shares/wpkg/files/settings/%{package} |
||||||
|
cp -r softwares/* %{buildroot}/home/e-smith/files/shares/wpkg/files/softwares/%{package}/ |
||||||
|
cp -r packages/* %{buildroot}/home/e-smith/files/shares/wpkg/files/packages/ |
||||||
|
cp -r settings/* %{buildroot}/home/e-smith/files/shares/wpkg/files/settings/%{package}/ |
||||||
|
|
||||||
|
%files |
||||||
|
%defattr(-,root,root) |
||||||
|
%doc CHANGELOG.git |
||||||
|
/home/e-smith/files/shares/ |
||||||
|
/etc |
||||||
|
|
||||||
|
%clean |
||||||
|
/bin/rm -rf %{buildroot} |
||||||
|
|
||||||
|
%changelog |
||||||
|
* Wed Dec 9 2015 Daniel Berteaud <daniel@firewall-services.com> 0.1.0-1 |
||||||
|
- First package |
||||||
|
|
Loading…
Reference in new issue