From fe2a4e0a9b114f79768e3a7c4a1406c3b283cd5d Mon Sep 17 00:00:00 2001 From: "Michael H.G. Schmidt" Date: Sun, 19 Mar 2023 12:29:35 +0100 Subject: [PATCH] added ForcedShutdown parameter --- snapcontrol.exe | Bin 73216 -> 74240 bytes snapcontrol.ini | 3 +++ snapcontrol.pb | 39 +++++++++++++++++++++++++-------------- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/snapcontrol.exe b/snapcontrol.exe index 15c9978ac68b5960f6aa4c9971ca202a06cb53be..145605b26727a4fc910ace94bf3a40f3cab42f98 100644 GIT binary patch delta 27183 zcmeHwd3a4%+xOWgITB<`44Wj9I0!<_#5^PjCnUs7%o4_d4g~>GOWy^?uj;$M?sVt37M4d)@c%9@f3a zeG-d~1ui-rxMo>Y1xvpNHM1<{&wWb^OJ%FIwdEEF{nzelA&p;qy<3&6#*$?Rv7}3u zQY(v*`c{Z)E?L3@*Vc`!)I2jcYZBV_^vCybU{IxSFgjXYcX*0f)xcVj>zhcHv{t2#b0;lf)Nnz&F#x5@Hiz{H z94H^^A|(=7dWy%=nC%FR?XJa37Dq{?>IU86mRkTpt9Keg=WOrcnSSti%=frcJgT+> zEWp+%wg)gWv|}Vw(xaLe=^!B;IR&a}8^`+FqOI)|Hq#arT84%UZ4B|Nwwle@CR>#A zXS*rqI+2ky!clO~t_>^#L&51d7&Q%n%+P8WR^3I#w5pvjrDVI$g9Ot1_#~mrZ_@KG z1r|%nxf8(Ko+`u~pwvR4RWtR>fZ31O(V+UnnlwUd!M!-G zBQ;Ss!DMoh;0aw<+AG9zI&QUXH#HzFUACfzlI8B>cCc~;Yz5j1Gt7Vh~?xDU)Af6OP1S*ze0W0z0lW>RD+f&8LS z(vP=L6po_>I*0j1;Z6t7}6t1 zdax;N(`qGhGh2gdx?Y@NjvJ(cEz(C<6}d6nSy8E7fq;BH7l4#DgMN=)s~FjES3@&P zsY_x>lQD9pHlUI7)qA8+9?hy&YS3{m^2Ai@*;>a>?EO*!Dp!LT?_H0edD_OX+)6bk zw}-S}AMdC}jMT?fsNq~G!c6l`cr5yPOj|q`?`vS{aGlUv%_2i=U!udjoqiLQL4zE{ zOU$^XJBsJAvP#j8x6$C|^TWQTd6*BlSErA2u;={2W|?3a^$n!}JI&H7M@s`(PUQ$^ zKFrF{#u$TW}3U!VjU~fAMmZO}TC`Ei3`H_QT(rjImqwPD! z{h#2EHpDpa=7z&UGl+hX#EKN?DgRi zD&)g;vp*5*kIncve9KK=pR$7x@N?~6AFpezxNGmc!(GesS5jk&sU@tIH}tQtkyWA{ zz00FL??YR_O&(^Th5DmeO|Ty3OhhKL<5i-iFW9G5B2v%U$=3%Z+>8Ur2CuK%P$6I2 znd=b*rBz0pHng+{c0u?_*QGys$R0XrCgs?x$l9^^y*nXL_twpOXn4uysf z`~{)$3tB>NZ_wW2)&?5j?}E*1?IBe7aM)`+6#I?73>FaHOVC$Q@XZ1zG}ob(raFD%0GH6rh4Y=dO4v5_3`mtqe18rZzX?m&e? z>(?i@nZ0VXb( zKiS0J#b#BDn-GhdpRI+4t>i_e@-6*(dcDxNl1M|z2S`1y7iUr7PP}V8AR*YL>QT>{z`&al1fAZoCG@-3koQobPVk%C9!35wpSt?#-wp{s z{hxRDYWXyr0`NMWj8xkce=QlN7Qfl)FR>@|b@goul;LE@@=Bf|CGejT>bnTil45AF z`fGWJP9b0Xw0y1n&6hboEjOqaeW6r*uAJnqeEk-8WgFNKFsE@ATJv`;%Y3~pX0R$g zExF~j9O}lsBv%e|ElxvA2SbaYB>wM8dNH|HHRpcc8LU!y+y?1q3}h@9Vc^;&jr@19N;#Rg#&aKjGmQZx+M8HL3YcZad*BuMDEB}QPG~x!Rv)82i4|W z4nQ-Sp37pO5Yp!q2eL$!*F%^qy(nm®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 delta 25910 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 diff --git a/snapcontrol.ini b/snapcontrol.ini index 5db79a1..da0d617 100644 --- a/snapcontrol.ini +++ b/snapcontrol.ini @@ -80,6 +80,9 @@ EjectMedia = yes ; should we ask for a shutdown after backup ? (yes/no) AskForShutdown = yes +; should we force a shutdown after the backup run? +; user will NOT be asked for consent! (useful for schedule mode "TIME" and silent mode) +ForcedShutdown = no [LOGGING] diff --git a/snapcontrol.pb b/snapcontrol.pb index 859c761..44379b7 100644 --- a/snapcontrol.pb +++ b/snapcontrol.pb @@ -7,7 +7,7 @@ ; LICENSE : MIT License ; AUTHOR : Michael H.G. Schmidt ; EMAIL : michael@schmidt2.de -; DATE : 20230312 +; DATE : 20230319 ; ------------------------------------------------------------ ; ; This tool creates an image backups of windows machines, @@ -19,7 +19,6 @@ ; Released under the MIT license. ; - ; ; INIT (set vars, read args, read inifile etc. pp.) ; @@ -29,7 +28,7 @@ EnableGraphicalConsole(0) Dim filelist$(0) -Global VERSION$="V1.10" +Global VERSION$="V1.11" Global updatesched = 0 Global dryrun = 0 Global silentmode = 0 @@ -39,7 +38,9 @@ Global month$ = FormatDate("%mm", Date()) Global day$ = FormatDate("%dd", Date()) Global DriveSnapshotVersionOk = 0 Global DoShutdown = 0 -Global Shutdowncommand$ = "shutdown /s /f" + +; Timeout for shutodwn is 2 minutes ... +Global Shutdowncommand$ = "shutdown /s /t 120 /d p:0:0" ; valid versions for Drive Snapshot we support ... NewList DriveSnapshotVersion$() @@ -53,7 +54,7 @@ NewList DriveSnapshotVersion$() DriveSnapshotVersion$() = "V1.48" Procedure Usage() - PrintN ("usage: snapcontrol.exe [ /S | /I | /V> | /D | /? ]") + PrintN ("usage: snapcontrol.exe [ /S | /I | /V | /D | /? ]") PrintN (" /S = silent mode (no user interaction!)") PrintN (" /I = install/update scheduler job") PrintN (" /V = show version") @@ -114,6 +115,7 @@ Global EncryptPW$ = Trim(ReadPreferenceString("EncryptPW","")) Global LimitIO$ = Trim(ReadPreferenceString("LimitIO","")) Global EjectMedia$ = Trim(LCase(ReadPreferenceString("EjectMedia","yes"))) Global AskForShutdown$ = Trim(LCase(ReadPreferenceString("AskForShutdown","no"))) +Global ForcedShutdown$ = Trim(LCase(ReadPreferenceString("ForcedShutdown","no"))) PreferenceGroup("logging") Global LogDir$ = Trim(ReadPreferenceString("LogDir","C:")) @@ -345,9 +347,7 @@ If ( FtpBackup$ = "yes" ) TargetPath$ = "ftp://" + TargetUser$ + "@" + FtpServer$ + TargetPath$ EndIf - -; SILENT mode. -; NO questions! +; SILENT mode <> 0 => NO questions! If ( silentmode = 0 ) ; ; ASK the user for permission to start ... @@ -368,13 +368,24 @@ If ( silentmode = 0 ) ; ; ASK the user for a shutdown ... ; - Result$ = InputRequester("SnapControl", - "SHUTDOWN system after backup?" + Chr(13) + - " (type 'yes' or 'no')", "no") + + If ForcedShutdown$ <> "yes" And AskForShutdown$ = "yes" + Result$ = InputRequester("SnapControl", + "SHUTDOWN system after backup?" + Chr(13) + + " (type 'yes' or 'no')", "no") - If LCase(Result$) = "yes" - DoShutdown = 1 + If LCase(Result$) = "yes" + DoShutdown = 1 + EndIf EndIf + +Else + + ; silent mode = true AND the admin has requested a forced shutdown ... + If ForcedShutdown$ = "yes" + DoShutdown = 1 + EndIf + EndIf @@ -555,7 +566,7 @@ EndProg(e) ; IDE Options = PureBasic 5.73 LTS (Windows - x64) ; ExecutableFormat = Console -; CursorPosition = 29 +; CursorPosition = 20 ; Folding = -- ; EnableXP ; Executable = snapcontrol.exe