-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathFJUpdater_main.vbs
1247 lines (1118 loc) · 50.5 KB
/
FJUpdater_main.vbs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
'-----------------------------------------------------------------------------------------------------------------------
'
' Copyright (c) Ilya Kisleyko. All rights reserved.
'
' AUTHOR : Ilya Kisleyko
' E-MAIL : [email protected]
' DATE : 01.08.2015
' NAME : FJUpdater_main.vbs
' COMMENT : Скрипт для проверки актуальности установленных на компьютере версий Java&Flash
' и автоматического обновления (через интернет(HTTP) или локальную сеть(SMB)) при необходимости.
' Скрипт может сохранять установщики актуальной версии Java&Flash в указанные папки (+ файл с номером версии),
' что даёт возможность строить механизм автоматического развёртывания обновлений Java&Flash через GPO
' (стартап скрипт компьютеров).
' Об ошибках и результатах своей деятельности может присылать отчёт на почту.
'
'При запуске без параметров просто выполняет обновление установленных плагинов через интернет
'
'Параметры командной строки:
'/mail:1 = отправлять почту при ошибках работы или при наличии обновлений
'/mail:0 = тихий режим (default)
'
'/LogFile:0 = Не создавать лог (default)
'/LogFile:1 = Создать логфайл, путь в настройке csLogsPath, имя файла = имя компьютера, новый при каждом запуске,
'/LogFile:2 = Создать логфайл, путь в настройке csLogsPath, имя файла = имя компьютера, не затирая старые данные
'
'/debug:0 = не выводить ничего
'/debug:1 = записывать только сообщения о выполняемых действиях (default) и ошибки
'/debug:2 = записывать подробные сообщения
'/debug:3 = записывать детальные сообщения о вызываемых функцияих и их парметрах
'
'/WebMode:1 = проверять обновления напрямую из интернета (default)
'/WebMode:0 = из локальной папки (csInstallerPath)
'
'/WEBModeSaveInstall:1 = сохранять обновления в локальную папку (csInstallerPath)
'/WEBModeSaveInstall:0 = сохранять обновления в %TEMP% (default)
'ключ /WEBModeSaveInstall имеет смысл только при /WEBMode:1
'
'/WEBModeSaveInstallForce = особый режим, принудительно скачать последение версии установщиков
'и сохранить в локальную папку (csInstallerPath), если расположенные там версии плагинов не совпадают
'с опубликованными на сайте Oracle&Adobe
'Используется на компьютере администратора при запуске механизма автоматического развёртывания обновлений,
'а также для периодической проверки, не появились ли более другие версии.
'
'/MailTest = особый режим, проверка настроек отправки почты, присылает тестовое сообщение
'
'/ShowVersion[:comp] = особый режим, выводит номер весий установленных на компьютере плагинов Java & Flash
' При запуске без параметров - на локальном компьютере, если есть параметр - он трактуется как имя\адрес компьютера
'
'/IgnoreJava = не проверять Java Native (32 on 32, 64 on 64)
'/IgnoreJavaWoW6432 = не проверять Java WoW6432 (32bit on 64bit system)
'/IgnoreFlashA = не проверять FlashA
'/IgnoreFlashP = не проверять FlashP
'
'/UninstallJavaOld[:comp] = деинсталлировать старые версии JRE & Java Auto Updater, не трогая JDK
' При запуске без параметров - на локальном компьютере, если есть параметр - он трактуется как имя\адрес компьютера,
' в таком случае выполяняется только данная операция (особый режим)
'Если при разборе параметров встречается параметр с примечанием "особый режим", то он выполняется немедленно,
'с учётом уже обработанных модификаторов (mail & debug) и производится выход.
'
'/? или /help = справка
'-----------------------------------------------------------------------------------------------------------------------
'[HELP_END]
' строка "'[HELP_END]" используется как ограничитель для функциии вывода справки
Option Explicit
Const IsDebug = 1 ' флаг отладки
If IsDebug <> 1 then On Error Resume Next
' имена файлов с установщиками\номером актуальной версии, которые лежат в локальном репозитории
Const csJavaInstaller = "java_installer.exe"
Const csJavaInstaller64 = "java_installer64.exe"
Const csJavaInstallerVers = "java_current.txt"
Const csFlashPInstaller = "flashP_installer.exe" ' Flash Plugin (Firefox, Mozilla, Netscape, Opera)
Const csFlashPInstallerVers = "flashP_current.txt"
Const csFlashAInstaller = "flashA_installer.exe" ' Flash ActiveX (IE)
Const csFlashAInstallerVers = "flashA_current.txt"
'===================================================================================================
' где смотреть номера актуальных версий ((при /WEBMode:1)
Const csJavaVersionCurrentLnk = "http://www.java.com/applet/JreCurrentVersion2.txt"
Const csFlashVersionCurrentLnk = "http://www.adobe.com/software/flash/about/"
' и где искать\качать инсталляшки
Const csJavaInstallerLink = "http://java.com/en/download/windows_manual.jsp"
'Const csFlashPInstallerLink = "http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player.exe"
'Const csFlashAInstallerLink = "http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player_ax.exe"
'с версии 17.0.0.188 - не работает, ссылки формируются через функцию sFlashInstallerLinkGet
Const csFlashInstallerLink = "http://fpdownload.macromedia.com/pub/flashplayer/pdc/"
' ключи запуска установщиков
'Const csJavaInstallerParams = "/s /v /qn IEXPLORER=1 MOZILLA=1 REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0" ' JAVA 1.7
Const csJavaInstallerParams = "/s" ' JAVA 1.8 code by https://github.com/airosa-id
Const csFlashInstallerParams = "/install"
'===================================================================================================
' для доступа к реестру, функция RegRead
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
' глобальные настройки, могут быть переопределены из командной строки
Dim glbMail ' /mail:1 = отправлять почту при ошибках работы или при наличии обновлений
' /mail:0 = тихий режим (default)
Dim glbLogFile '/LogFile:0 = Не создавать лог (default)
'/LogFile:1 = Создать логфайл, путь в настройке csLogsPath, имя файла = имя компьютера, новый при каждом запуске,
'/LogFile:2 = Создать логфайл, путь в настройке csLogsPath, имя файла = имя компьютера, не затирая старые данные
Dim glbDebug ' /debug:0 = не выводить ничего
' /debug:1 = записывать только сообщения о выполняемых действиях (default)
' /debug:2 = записывать подробные сообщения
' /debug:3 = записывать детальные сообщения о вызываемых функцияих и их парметрах
Dim glbWEBMode ' /WEBMode:1 = проверять обновления напрямую из интернета (default)
' /WEBMode:0 = из локальной папки (csInstallerPath)
Dim glbWEBModeSaveInstall ' имеет смысл только при /WEBMode:1
' /WEBModeSaveInstall:1 = сохранять обновления в локальную папку (csInstallerPath)
' /WEBModeSaveInstall:0 = сохранять обновления в %TEMP% (default)
'Dim glbComputer ' имя(или адрес) компьютера, на котором проверяем версии плагинов
Dim glbIgnoreJava ' не проверять Java Native (32 on 32, 64 on 64)
Dim glbIgnoreJavaWoW6432 ' не проверять Java WoW6432 (32bit on 64bit system)
Dim glbIgnoreFlashA ' не проверять FlashA
Dim glbIgnoreFlashP ' не проверять FlashP
Dim glbUninstallJavaOld ' деинсталлировать старые версии JRE & Java Auto Updater, не трогая JDK
' глобальные переменные
Dim sInstallerPath ' путь сохранения инсталляшек при /WEBModeSaveInstall:1
Dim sLog ' общий лог, отсылается на почту при ошибках или появлении обновления
Dim bNeedToSendLog ' флаг необходимости отправки лога на почту
Dim sJavaNativeUpdateStatus, sJavaWoW6432UpdateStatus, sFlashAUpdateStatus, sFlashPUpdateStatus ' итоговый статус операций обновления
Dim sJavaVersionCurrent, sFlashPVersionCurrent, sFlashAVersionCurrent ' номер версии при получении обновлений, используется для записи файла с номером версии
Sub Main
If IsDebug <> 1 then On Error Resume Next
' Abort If the host is not cscript
If not IsHostCscript() then
call wscript.echo("Рекомендуется запускать данный скрипт с использованием CScript.")
wscript.quit
End If
Call WriteLog(FormatDateTime(Now,2) & " JavaFlashUpdaterAdmin v2.9 (c) Ilya Kisleyko, [email protected]", 2)
' пока нет необходимости отправлять логи на почту
bNeedToSendLog = false
' статус операций
sJavaNativeUpdateStatus = "UNKNOWN"
sJavaWoW6432UpdateStatus = "UNKNOWN"
sFlashAUpdateStatus = "UNKNOWN"
sFlashPUpdateStatus = "UNKNOWN"
' Parse command-line parameters
If bParseCommandLine = false Then
' не смогли разобрать параметры командной строки
Call WriteLog("Main, ERROR! can't parse command line switches!", 1)
Exit Sub
End If
'путь сохранения инсталляшек...
If glbWEBMode then
If glbWEBModeSaveInstall Then
sInstallerPath = csInstallerPath ' ...при /WEBModeSaveInstall:1
Else
sInstallerPath = sEnvGet("%temp%") ' ...при /WEBModeSaveInstall:0
End If
else
sInstallerPath = csInstallerPath ' ..при локальном режиме
End If
' при необходимости добавляем слэш в конце рабочего каталога
If Right(sInstallerPath,1) <> "\" Then
sInstallerPath = sInstallerPath + "\"
End If
If Right(csLogsPath,1) <> "\" Then
csLogsPath = csLogsPath + "\"
End If
if glbIgnoreJava = False Then
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("JavaNative - START",2)
' JAVA Native (32 on 32, 64 on 64) - сравним версии актуальную и установленную
' что принимать за актуальную версию ...
If glbWEBMode Then ' WWW
sJavaVersionCurrent = sJavaVersionWEBGet()
Else ' локальное хранилище
sJavaVersionCurrent = sJavaVersionLocalGet()
End If
If sJavaVersionCurrent <> "" then
Dim sJavaVersionInstalled
sJavaVersionInstalled = sJavaVersionInstalledGet(".")
If sJavaVersionInstalled <> "" then ' на компьютере присутствует какая-то версия
If sJavaVersionInstalled <> sJavaVersionCurrent then
' не совпадают, обновляем
Call WriteLog("WARNING! Installed and current Native(32 on 32, 64 on 64) Java version is NOT identical",1)
' надо будет отправить отчёт
bNeedToSendLog = True
If glbWEBMode Then
' получаем ссылку на скачку и скачиваем установщик
If Is64BitSystem (".") = true then
Call HttpGetSave(sJavaGetLinkToDownload("64"), sInstallerPath & csJavaInstaller64)
else
Call HttpGetSave(sJavaGetLinkToDownload("32"), sInstallerPath & csJavaInstaller)
End If
End If
' устанавливаем
If Is64BitSystem (".") = true then
Call myRun(sInstallerPath & csJavaInstaller64 & " " & csJavaInstallerParams)
else
Call myRun(sInstallerPath & csJavaInstaller & " " & csJavaInstallerParams)
End If
Call WriteLog("Install complete, check Native(32 on 32, 64 on 64) Java version again",2)
' повторно проверяем результат
If sJavaVersionInstalledGet(".") = sJavaVersionCurrent then
sJavaNativeUpdateStatus = "SUCCESS"
If glbWEBModeSaveInstall then
' записываем файл с номером актуальной версии установщика
Call myRun("cmd /c echo " & sJavaVersionCurrent & "> " & sInstallerPath & csJavaInstallerVers)
End If
Else
sJavaNativeUpdateStatus = "FAILED"
End If
Call WriteLog("Java Update status = " & sJavaNativeUpdateStatus,1)
Else
Call WriteLog("Installed and current Java version is identical",2)
End If
End If
End If
Call WriteLog("JavaNative - FINISH",2)
End If
if glbIgnoreJavaWoW6432 = False Then
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("JavaWoW6432 - START",2)
' JAVA WoW (32bit on 64bit system) - сравним версии актуальную и установленную
' что принимать за актуальную версию ...
If glbWEBMode Then ' WWW
sJavaVersionCurrent = sJavaVersionWEBGet()
Else ' локальное хранилище
sJavaVersionCurrent = sJavaVersionLocalGet()
End If
If sJavaVersionCurrent <> "" then
Dim sJavaWoW6432VersionInstalled
sJavaWoW6432VersionInstalled = sJavaWoW6432VersionInstalledGet(".")
If sJavaWoW6432VersionInstalled <> "" then ' на компьютере присутствует какая-то версия
If sJavaWoW6432VersionInstalled <> sJavaVersionCurrent then
' не совпадают, обновляем
Call WriteLog("WARNING! Installed and current WoW6432(32bit Java on 64bit OS) Java version is NOT identical",1)
' надо будет отправить отчёт
bNeedToSendLog = True
If glbWEBMode Then
' получаем ссылку на скачку и скачиваем установщик
Call HttpGetSave(sJavaGetLinkToDownload(""), sInstallerPath & csJavaInstaller)
End If
' устанавливаем
Call myRun(sInstallerPath & csJavaInstaller & " " & csJavaInstallerParams)
Call WriteLog("Install complete, check WoW6432(32bit Java on 64bit OS) Java version again",2)
' повторно проверяем результат
If sJavaWoW6432VersionInstalledGet(".") = sJavaVersionCurrent then
sJavaWoW6432UpdateStatus = "SUCCESS"
If glbWEBModeSaveInstall then
' записываем файл с номером актуальной версии установщика
Call myRun("cmd /c echo " & sJavaVersionCurrent & "> " & sInstallerPath & csJavaInstallerVers)
End If
Else
sJavaWoW6432UpdateStatus = "FAILED"
End If
Call WriteLog("JavaWoW6432 Update status = " & sJavaWoW6432UpdateStatus,1)
Else
Call WriteLog("Installed and current JavaWoW6432 version is identical",2)
End If
End If
End If
Call WriteLog("JavaWoW6432 - FINISH",2)
End If
if glbUninstallJavaOld = true Then
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("UninstallJavaOld - START",2)
Call UninstallJavaOld(".")
Call WriteLog("UninstallJavaOld - FINISH",2)
End If
if glbIgnoreFlashA = False Then
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("FlashActiveX - START",2)
' FlashActiveX - сравним версии актуальную и установленную
' что принимать за актуальную версию ...
If glbWEBMode Then
sFlashAVersionCurrent = sFlashVersionWEBGet("A")
Else
sFlashAVersionCurrent = sFlashVersionLocalGet("A")
End If
If sFlashAVersionCurrent <> "" then
If sFlashVersionInstalledGet(".", "A") <> "" then ' на компьютере присутствует какая-то версия
If sFlashVersionInstalledGet(".", "A") <> sFlashAVersionCurrent then
' не совпадают, обновляем
Call WriteLog("WARNING! Installed and current FlashActiveX version is NOT identical",1)
' надо будет отправить отчёт
bNeedToSendLog = True
If glbWEBMode Then
' получаем ссылку на скачку и скачиваем установщик
Call HttpGetSave(sFlashInstallerLinkGet("A",sFlashAVersionCurrent), sInstallerPath & csFlashAInstaller)
End If
' устанавливаем
Call myRun(sInstallerPath & csFlashAInstaller & " " & csFlashInstallerParams)
' повторно проверяем результат
If sFlashVersionInstalledGet(".", "A") = sFlashAVersionCurrent then
sFlashAUpdateStatus = "SUCCESS"
' записываем файл с номером актуальной версии установщика
Call myRun("cmd /c echo " & sFlashAVersionCurrent & "> " & sInstallerPath & csFlashAInstallerVers)
Else
sFlashAUpdateStatus = "FAILED"
End If
Call WriteLog("FlashActiveX Update status = " & sFlashAUpdateStatus,1)
Else
Call WriteLog("Installed and current FlashActiveX version is identical",2)
End If
End If
End If
Call WriteLog("FlashActiveX - FINISH",2)
End If
if glbIgnoreFlashP = False Then
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("FlashPlugin - START",2)
' FlashPlugin - сравним версии актуальную и установленную
' что принимать за актуальную версию ...
If glbWEBMode Then
sFlashPVersionCurrent = sFlashVersionWEBGet("P")
Else
sFlashPVersionCurrent = sFlashVersionLocalGet("P")
End If
If sFlashPVersionCurrent <> "" Then
If sFlashVersionInstalledGet(".", "P") <> "" then ' на компьютере присутствует какая-то версия
If sFlashVersionInstalledGet(".", "P") <> sFlashPVersionCurrent then
' не совпадают, обновляем
Call WriteLog("WARNING! Installed and current FlashPlugin version is NOT identical",1)
' надо будет отправить отчёт
bNeedToSendLog = True
If glbWEBMode Then
' получаем ссылку на скачку и скачиваем установщик
Call HttpGetSave(sFlashInstallerLinkGet("P",sFlashPVersionCurrent), sInstallerPath & csFlashPInstaller)
End If
' устанавливаем
Call myRun(sInstallerPath & csFlashPInstaller & " " & csFlashInstallerParams)
' повторно проверяем результат
If sFlashVersionInstalledGet(".", "P") = sFlashPVersionCurrent then
sFlashPUpdateStatus = "SUCCESS"
' записываем файл с номером актуальной версии установщика
Call myRun("cmd /c echo " & sFlashPVersionCurrent & "> " & sInstallerPath & csFlashPInstallerVers)
Else
sFlashPUpdateStatus = "FAILED"
End If
Call WriteLog("FlashPlugin Update status = " & sFlashPUpdateStatus,1)
Else
Call WriteLog("Installed and current FlashPlugin version is identical",2)
End If
End If
End If
Call WriteLog("FlashPlugin - FINISH",2)
End If
' при необходимости отправляем отчёт
Call SendLog()
' при необходимости записываем отчёт в лог-файл
Call WriteLogToFile()
Call WriteLog("===================================================================================================",2)
End Sub ' Main
Sub UninstallJavaOld(sComputer)
'uninstall old JRE & Java Auto Updater, skip JDK
If IsDebug <> 1 then On Error Resume Next
if sComputer = "" then sComputer = "."
'parse installed java version
dim sJavaVersionInstalled
dim sjvMajor1, sjvMajor2, sjvMiddle, sjvMinor ' sample:
sJavaVersionInstalled = sJavaVersionInstalledGet(sComputer) ' = 1.8.0_51
If sJavaVersionInstalled = "" then
Call WriteLog("UninstallJavaOld : there is no JAVA on computer " & sComputer,2)
Exit Sub
End If
sjvMajor1 = ExtractWord(0, sJavaVersionInstalled, caDelims) ' = 1
sjvMajor2 = ExtractWord(1, sJavaVersionInstalled, caDelims) ' = 8
sjvMiddle = ExtractWord(2, sJavaVersionInstalled, caDelims) ' = 0
sjvMinor = ExtractWord(3, sJavaVersionInstalled, caDelims) ' = 51
'query installed softwate from WMI
Dim objWMI, colJava, objJava
Dim s,s1,s2,s3,s4
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
'Set colJava = objWMI.ExecQuery ("SELECT * FROM Win32_Product WHERE ( name LIKE '%java 7%' AND name LIKE '%update%' )")
Set colJava = objWMI.ExecQuery ("SELECT * FROM Win32_Product WHERE name LIKE '%java%'")
For Each objJava in colJava
s = objJava.Caption
' uninstall 'Java Auto Updater'
if s = "Java Auto Updater" then
Call WriteLog("UninstallJavaOld : UNINSTALL Begin : " & s,1)
objJava.Uninstall
Call WriteLog("UninstallJavaOld : UNINSTALL End : " & s,1)
end if
'
s1 = ExtractWord(0, s, caDelims)
If lCase(s1) = "java" then
s2 = ExtractWord(1, s, caDelims)
If lCase(s2) <> "se" then ' it seems to be a JAVA Development Kit, skipping
If lCase(s2) = "tm" then ' it seems to be a JAVA 1.6
s2 = ExtractWord(2, s, caDelims)
End If
if s2 < sjvMajor2 then ' previous major release
Call WriteLog("UninstallJavaOld : UNINSTALL Begin : " & s,1)
objJava.Uninstall
Call WriteLog("UninstallJavaOld : UNINSTALL End : " & s,1)
End If
if s2 = sjvMajor2 then ' current major release
s3 = ExtractWord(2, s, caDelims)
if lCase(s3) = "update" then
s4 = ExtractWord(3, s, caDelims)
if s4 < sjvMinor then ' previous minor release
Call WriteLog("UninstallJavaOld : UNINSTALL Begin : " & s,1)
objJava.Uninstall
Call WriteLog("UninstallJavaOld : UNINSTALL End : " & s,1)
Elseif s4 = sjvMinor then ' current release
Call WriteLog("UninstallJavaOld : current release : " & s,2)
Else
Call WriteLog("UninstallJavaOld : unknown : " & s,2)
End If
Else
Call WriteLog("UninstallJavaOld : unknown : " & s,2)
end if
End If
else
Call WriteLog("UninstallJavaOld : JDK, skipping : " & s,2)
End If
End If
Next
End Sub 'UninstallJavaOld
Sub SendLog
dim sComputerName
sComputerName = sEnvGet("%COMPUTERNAME%")
If bNeedToSendLog and glbMail then
Call WriteLog("Sending log to e-mail",2)
Call mySendMail("Updater Java=[" & sJavaNativeUpdateStatus &_
"], JavaWoW6432 = [" & sJavaWoW6432UpdateStatus &_
"], FlashA =[" & sFlashAUpdateStatus & "], FlashP =[" & sFlashPUpdateStatus &_
"] on " & sComputerName, sLog)
End If
End Sub
Sub WriteLogToFile
dim sComputerName
sComputerName = sEnvGet("%COMPUTERNAME%")
if glbLogFile > 0 then
Dim objFSO,objFile,sLogFile
sLogFile = csLogsPath & sComputerName & ".log"
Call WriteLog("Writing log to " & sLogFile,2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Select Case glbLogFile
Case 1
Set objFile = objFSO.OpenTextFile(sLogFile, 2, true) ' ForWriting
Case 2
Set objFile = objFSO.OpenTextFile(sLogFile, 8, true) ' ForAppending
End Select
objFile.WriteLine(sLog)
objFile.WriteLine("===================================================================================================")
objFile.WriteLine("")
objFile.Close
Set objFSO = Nothing
End If
End Sub
Function sJavaGetLinkToDownload (sBits)
' парсит страничку csJavaInstallerLink
' и возвращает ссылку на скачку актуальной версии Java
' если sBits = 64, то возвращает ссылку на 64-битную версию, иначе = 32х
If IsDebug <> 1 then On Error Resume Next
Dim sHttpText ' содержимое скаченной страницы
Dim objRegExp ' для получения ссылки на установщик
Dim objMatches, objMatch ' вспомогательные объекты при парсинге html
' скачиваем страницу выбора фалов для ручной загрузки Java в sHttpText
Call WriteLog("sJavaGetLinkToDownload(" & sBits &"), Downloadning HTML",3)
sHttpText = sHttpGet(csJavaInstallerLink)
If sHttpText = "" then
Call WriteLog("sJavaGetLinkToDownload, ERROR! Failed to get the html by the link " & csJavaInstallerLink,1)
bNeedToSendLog = True
Exit Function
End If
' начинаем разбирать HTML, ищем тег <a>
Call WriteLog("sJavaGetLinkToDownload, Parsing HTML, try to find ""<a title=""Download Java... """,3)
Set objRegExp = CreateObject("VBScript.RegExp")
If sBits = "64" then
objRegExp.Pattern= "<a\s+title=""Download Java software for Windows \(64-bit(.*)>"
Else
objRegExp.Pattern= "<a\s+title=""Download Java software for Windows Offline(.*)>"
End If
objRegExp.Global = True
Set objMatches = objRegExp.Execute(sHttpText)
If objMatches.Count = 0 then
Call WriteLog("sJavaGetLinkToDownload, ERROR! Failed to found ""<a title=""Download Java... """,3)
If Err.Number <> 0 then Call WriteLogError("sJavaGetLinkToDownload", Err.Number, Err.Description, Err.Source)
bNeedToSendLog = True
Exit Function
Else
Set objMatch = objMatches.Item(0)
sHttpText = objMatch.Value
'ищем href
Call WriteLog("sJavaGetLinkToDownload, Parsing HTML, try to find ""href""",3)
objRegExp.Pattern= "href=""http://(.*?)"""
Set objMatches = objRegExp.Execute(sHttpText)
If objMatches.Count = 0 then
Call WriteLog("sJavaGetLinkToDownload, ERROR! Failed to found ""href""",1)
If Err.Number <> 0 then Call WriteLogError("sJavaGetLinkToDownload", Err.Number, Err.Description, Err.Source)
bNeedToSendLog = True
Exit Function
Else
Set objMatch = objMatches.Item(0)
' обрезаем лишние символы
sHttpText=Mid(objMatch.Value,7,len(objMatch.Value)-7)
Call WriteLog("sJavaGetLinkToDownload, OK! Download link = " & sHttpText,3)
sJavaGetLinkToDownload = sHttpText
End If
End If
End Function ' sJavaGetLinkToDownload
Function sJavaVersionInstalledGet (strComputer)
' возвращает строку с номером версии Java, установленной на компьютере strComputer, или локальном компьютере (если пусто)
' возвращает версию совпадающую с разрядностью системы (32 для 32, 64 для 64)
sJavaVersionInstalledGet = sJavaVersionInstalledGetA (strComputer, "")
End Function ' sJavaVersionInstalledGet
Function sJavaWoW6432VersionInstalledGet (strComputer)
' возвращает строку с номером версии Java, установленной на компьютере strComputer, или локальном компьютере (если пусто)
' в sWoW6432 = возвращает версию 32-битной Javа на 64-битной системе
' только на 64битных системых
If Is64BitSystem(strComputer) then
sJavaWoW6432VersionInstalledGet = sJavaVersionInstalledGetA (strComputer, "\Wow6432Node")
Else
sJavaWoW6432VersionInstalledGet = ""
End If
End Function ' sJavaWoW6432VersionInstalledGet
Function sJavaVersionInstalledGetA (strComputer, sRegPathModifier)
'sRegPathModifier - добавляется в путь, если проверяется 32битная версия на 64битной системе.
' должен быть = "\Wow6432Node"
If IsDebug <> 1 then On Error Resume Next
Dim sJavaMajorVersionInstalled, sJavaVersionInstalled
If strComputer = "" Then strComputer = "."
' узнаем поколение установленной Java
sJavaMajorVersionInstalled = sRegRead(strComputer, HKEY_LOCAL_MACHINE, "SOFTWARE" & sRegPathModifier & "\JavaSoft\Java Runtime Environment", "CurrentVersion")
Call WriteLog("sJavaVersionInstalledGetA, sJavaMajorVersionInstalled = " & sJavaMajorVersionInstalled,3)
If sJavaMajorVersionInstalled = "1.8" then ' JAVA 1.8 code by https://github.com/airosa-id
Dim sJavaMicroVersion, sJavaBrowserVersionInstalled
sJavaMicroVersion = sRegRead(strComputer, HKEY_LOCAL_MACHINE, "SOFTWARE" & sRegPathModifier & "\JavaSoft\Java Runtime Environment\"& sJavaMajorVersionInstalled, "MicroVersion")
Call WriteLog("sJavaVersionInstalledGetA, sJavaMicroVersion = " & sJavaMicroVersion,3)
sJavaBrowserVersionInstalled = mid(sRegRead(strComputer, HKEY_LOCAL_MACHINE, "SOFTWARE" & sRegPathModifier & "\JavaSoft\Java Runtime Environment", "BrowserJavaVersion"),4,2)
Call WriteLog("sJavaVersionInstalledGetA, modificator (sJavaBrowserVersionInstalled) = " & sJavaBrowserVersionInstalled, 3)
sJavaVersionInstalled = sJavaMajorVersionInstalled & "." & sJavaMicroVersion & "_" & sJavaBrowserVersionInstalled
End If
If sJavaMajorVersionInstalled = "1.7" then
sJavaMajorVersionInstalled = Right(sJavaMajorVersionInstalled,1)
' узнаем полный номер версии установленной Java
sJavaVersionInstalled = sRegRead(strComputer, HKEY_LOCAL_MACHINE, "SOFTWARE" & sRegPathModifier & "\JavaSoft\Java Runtime Environment", "Java" & sJavaMajorVersionInstalled & "FamilyVersion")
End If
If sJavaVersionInstalled = "" then
Call WriteLog("sJavaVersionInstalledGetA, INFO: Can't get the installed version of Java from the registry. Probably Java on this computer is not installed",3)
'bNeedToSendLog = True
'Exit Function
End If
Call WriteLog("sJavaVersionInstalledGetA (" & sRegPathModifier & "), JavaVersionInstalled = " & sJavaVersionInstalled,2)
sJavaVersionInstalledGetA = sJavaVersionInstalled
End Function ' sJavaVersionInstalledGetA
Function sJavaVersionWEBGet
' возвращает строку с номером актуальной версии JAVA, берёт с сайта
If IsDebug <> 1 then On Error Resume Next
Dim sJavaVersionWEB
sJavaVersionWEB = sHttpGet (csJavaVersionCurrentLnk)
sJavaVersionWEB = Replace(sJavaVersionWEB, vbCrLf, "") ' убираем лишний перевод строки
If sJavaVersionWEB = "" then ' не смогли получить актуальную версию Java по ссылке
Call WriteLog("sJavaVersionWEBGet, ERROR! Can't get current version of Java by the link " & csJavaVersionCurrentLnk,1)
bNeedToSendLog = True
Exit Function
End If
sJavaVersionWEBGet = sJavaVersionWEB
Call WriteLog("sJavaVersionWEBGet, JavaVersionWEB = " & sJavaVersionWEB,2)
End Function ' sJavaVersionWEBGet
Function sJavaVersionLocalGet
' возвращает строку с номером актуальной версии JAVA, берёт с локального репозитория
If IsDebug <> 1 then On Error Resume Next
Dim sJavaVersionLocal
sJavaVersionLocal = sFileRead (sInstallerPath & csJavaInstallerVers)
If sJavaVersionLocal = "" then
Call WriteLog("sJavaVersionLocalGet, ERROR! Can't get current version of Java from file " & sInstallerPath & csJavaInstallerVers,1)
bNeedToSendLog = True
Exit Function
End If
sJavaVersionLocalGet = sJavaVersionLocal
Call WriteLog("sJavaVersionLocalGet, JavaVersionLocal = " & sJavaVersionLocal,2)
End Function ' sJavaVersionLocalGet
Function sFlashVersionInstalledGet (strComputer, sFlashType)
' возвращает строку с номером версии Flash, установленной на компьютере strComputer, или локальном компьютере (если пусто)
' sFlashType - тип флэш-проигрывателя, A=ActiveX, P=Plugin
If IsDebug <> 1 then On Error Resume Next
Dim sTemp
If strComputer = "" Then strComputer = "."
Select Case sFlashType
Case "A"
sTemp = sRegRead(strComputer, HKEY_LOCAL_MACHINE, "SOFTWARE\Macromedia\FlashPlayerActiveX", "Version")
Case "P"
sTemp = sRegRead(strComputer, HKEY_LOCAL_MACHINE, "SOFTWARE\Macromedia\FlashPlayerPlugin", "Version")
End Select
If sTemp = "" then
Call WriteLog("sFlashVersionInstalledGet, INFO: Can't get the installed version of Flash from the registry. " & _
"Probably Flash type [" & sFlashType & "on this computer is not installed",3)
'bNeedToSendLog = True
Else
Call WriteLog("sFlashVersionInstalledGet, FlashVersionInstalled type [" & sFlashType & "] = " & sTemp,2)
sFlashVersionInstalledGet = sTemp
End If
End Function ' sFlashVersionInstalledGet
Function sFlashVersionWEBGet (sFlashType)
' возвращает строку с номером актуальной версии Flash, берёт с сайта
' sFlashType - тип флэш-проигрывателя, A=ActiveX, P=Plugin
If IsDebug <> 1 then On Error Resume Next
Dim sTemp
Dim sHttpText ' содержимое загруженной страницы
Dim objRegExp ' для получения номера актуальной версии
Dim objMatches ' вспомогательный объект при парсинге html
sHttpText = sHttpGet (csFlashVersionCurrentLnk)
If sHttpText = "" then
Call WriteLog("sFlashVersionWEBGet, ERROR! Can't get HTML by the link " & csFlashVersionCurrentLnk,1)
bNeedToSendLog = True
Exit Function
End If
' начинаем разбирать HTML,ищем ячейки таблицы с последовательностью цифр, разделенных точками.
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Pattern= "<td>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)</td>"
objRegExp.Global = True
Set objMatches = objRegExp.Execute(sHttpText)
If objMatches.Count = 0 then
Call WriteLog("sFlashVersionWEBGet, ERROR! Can't find Flash version number from the link " & csFlashVersionCurrentLnk, 1)
If Err.Number <> 0 then Call WriteLogError("sFlashVersionWEBGet", Err.Number, Err.Description, Err.Source)
bNeedToSendLog = True
Exit Function
Else
Select Case sFlashType
Case "A"
'Internet Explorer (and other browsers that support Internet Explorer ActiveX controls and plug-ins)
'Internet Explorer - ActiveX
sTemp = Mid(objMatches.Item(0).Value ,5,len(objMatches.Item(0).Value )-9)
Case "P"
'Firefox, Mozilla, Netscape, Opera (and other plugin-based browsers)
'Firefox, Mozilla - NPAPI
sTemp = Mid(objMatches.Item(2).Value ,5,len(objMatches.Item(2).Value )-9)
End Select
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' !!! изменить номер Item(x) при изменении на сайте Adobe по ссылке csFlashVersionCurrentLnk !!!
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
End If
If sTemp = "" then
Call WriteLog("sFlashVersionWEBGet, ERROR! Can't get current version of Flash type [" & sFlashType & "], from link " & csFlashVersionCurrentLnk,1)
bNeedToSendLog = True
Else
Call WriteLog("sFlashVersionWEBGet, INFO: Flash type [" & sFlashType & "] = " & sTemp,3)
sFlashVersionWEBGet = sTemp
End If
End Function ' sFlashVersionWEBGet
Function sFlashVersionLocalGet (sFlashType)
' возвращает строку с номером актуальной версии Flash, берёт с локального репозитория
If IsDebug <> 1 then On Error Resume Next
Dim sTemp, sInstallerVersPath
Select Case sFlashType
Case "A"
sInstallerVersPath = sInstallerPath & csFlashAInstallerVers
Case "P"
sInstallerVersPath = sInstallerPath & csFlashPInstallerVers
End Select
sTemp = sFileRead (sInstallerVersPath)
If sTemp = "" then
Call WriteLog("sFlashVersionLocalGet, ERROR! Can't get current version of Flash type [" & sFlashType & "], by the link " & sInstallerVersPath,1)
bNeedToSendLog = True
Exit Function
End If
sFlashVersionLocalGet = sTemp
Call WriteLog("sFlashVersionLocalGet, FlashVersionLocal type [" & sFlashType & "] = " & sTemp,3)
End Function ' sFlashVersionLocalGet
Function sFlashInstallerLinkGet (sFlashType, sFlashVersion)
' возвращает строку-ссылку для скачивания плагина соответствующего типа с сайта Adobe
' добавлено с версии 17.0.0.188
' fpdownload.macromedia.com/pub/flashplayer/pdc/17.0.0.188/install_flash_player_ppapi.exe = Opera_new&Chromium (PPAPI)
' fpdownload.macromedia.com/pub/flashplayer/pdc/17.0.0.188/install_flash_player_ax.exe = IE (ActiveX)
' fpdownload.macromedia.com/pub/flashplayer/pdc/17.0.0.188/install_flash_player.exe = Firefox&Opera_old (NPAPI)
' Const csFlashInstallerLink = "http://fpdownload.macromedia.com/pub/flashplayer/pdc/"
If IsDebug <> 1 then On Error Resume Next
Dim sTemp
sTemp = csFlashInstallerLink & sFlashVersion
Select Case sFlashType
Case "A"
sTemp = sTemp & "/install_flash_player_ax.exe"
Case "P"
sTemp = sTemp & "/install_flash_player.exe"
End Select
sFlashInstallerLinkGet = sTemp
Call WriteLog("sFlashInstallerLinkGet, FlashInstallerLink, type [" & sFlashType & "] = " & sTemp,3)
End Function ' sFlashVersionLocalGet
' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' служебные процедуры и функции - доступ к файлам, реестру, http, отправка почты и т.п.
Function bParseCommandLine
' разбирает параметры командной строки, устанавливает значения по умолчанию для глобальных параметров
' возвращает false при появлении ошибок
If IsDebug <> 1 then On Error Resume Next
glbMail = False
glbLogFile = 0
glbDebug = 1
glbWEBMode = True
glbWEBModeSaveInstall = false
glbIgnoreJava = False
glbIgnoreJavaWoW6432 = False
glbIgnoreFlashA = False
glbIgnoreFlashP = False
glbUninstallJavaOld = False
bParseCommandLine = true
dim objNamed
Set objNamed = WScript.Arguments.Named
' must be first
If objNamed.Exists("debug") Then
select case lcase(objNamed.Item("debug"))
case "0","1","2","3"
glbDebug = cint(objNamed.Item("debug"))
Call WriteLog ("bParseCommandLine, glbDebug = " & glbDebug,3)
case else
Call WriteLog ("bParseCommandLine, glbDebug ERROR",1)
end select
End If
If objNamed.Exists("mail") Then
select case lcase(objNamed.Item("mail"))
case "+", "1", "true"
glbMail = true
Call WriteLog ("bParseCommandLine, glbMail = true",3)
case "-", "0", "false"
glbMail = false
Call WriteLog ("bParseCommandLine, glbMail = false",3)
case else
Call WriteLog ("bParseCommandLine, glbMail ERROR",1)
end select
End If
If objNamed.Exists("logfile") Then
select case lcase(objNamed.Item("logfile"))
case "+", "1", "true"
glbLogFile = 1
Call WriteLog ("bParseCommandLine, glbLogFile = 1",3)
case "-", "0", "false"
glbLogFile = 0
Call WriteLog ("bParseCommandLine, glbLogFile = 0",3)
case "2"
glbLogFile = 2
Call WriteLog ("bParseCommandLine, glbLogFile = 2",3)
case else
Call WriteLog ("bParseCommandLine, glbLogFile ERROR",1)
end select
End If
If objNamed.Exists("webmode") Then
select case lcase(objNamed.Item("webmode"))
case "+", "1", "true"
glbWEBMode = true
Call WriteLog ("bParseCommandLine, glbWEBMode = true",3)
case "-", "0", "false"
glbWEBMode = false
Call WriteLog ("bParseCommandLine, glbWEBMode = false",3)
case else
Call WriteLog ("bParseCommandLine, glbWEBMode ERROR",1)
end select
End If
If objNamed.Exists("webmodesaveinstall") Then
select case lcase(objNamed.Item("webmodesaveinstall"))
case "+", "1", "true"
glbWEBModeSaveInstall = true
Call WriteLog ("bParseCommandLine, glbWEBModeSaveInstall = true",3)
case "-", "0", "false"
glbWEBModeSaveInstall = false
Call WriteLog ("bParseCommandLine, glbWEBModeSaveInstall = false",3)
case else
Call WriteLog ("bParseCommandLine, glbWEBModeSaveInstall ERROR",1)
end select
End If
If objNamed.Exists("webmodesaveinstallforce") Then
Call WriteLog ("bParseCommandLine, WEBModeSaveInstallForce = true",3)
' просто выкачиваем все обновления
sInstallerPath = csInstallerPath ' путь сохранения инсталляшек при /WEBModeSaveInstall+
' при необходимости добавляем слэш в конце рабочего каталога
If Right(sInstallerPath,1) <> "\" Then
sInstallerPath = sInstallerPath + "\"
End If
'java
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("JAVA - Compare downloaded and current Java version",2)
if sJavaVersionWEBGet() <> sJavaVersionLocalGet() then
Call WriteLog("WARNING! Downloaded and current Java version is NOT identical",1)
bNeedToSendLog = True
Call WriteLog ("Java 32bit - START ---",2)
Call HttpGetSave(sJavaGetLinkToDownload(""), sInstallerPath & csJavaInstaller)
Call WriteLog ("Java 64bit - START ---",2)
Call HttpGetSave(sJavaGetLinkToDownload("64"), sInstallerPath & csJavaInstaller64)
sJavaVersionCurrent = sJavaVersionWEBGet
Call myRun("cmd /c echo " & sJavaVersionCurrent & "> " & sInstallerPath & csJavaInstallerVers)
sJavaNativeUpdateStatus = "UPDATED"
sJavaWoW6432UpdateStatus = "UPDATED"
Call WriteLog ("Java - FINISH ===",2)
End If
Call WriteLog("JAVA - OK",2)
Call WriteLog("===================================================================================================",2)
'flash ActicveX
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("FlashActiveX - Compare downloaded and current FlashActiveX version",2)
if sFlashVersionWEBGet("A") <> sFlashVersionLocalGet("A") then
Call WriteLog("WARNING! Downloaded and current FlashActiveX version is NOT identical",1)
bNeedToSendLog = True
Call WriteLog ("FlashA - START ---",2)
sFlashAVersionCurrent = sFlashVersionWEBGet("A")
Call HttpGetSave(sFlashInstallerLinkGet("A",sFlashAVersionCurrent), sInstallerPath & csFlashAInstaller)
sFlashAVersionCurrent = sFlashVersionWEBGet("A")
Call myRun("cmd /c echo " & sFlashAVersionCurrent & "> " & sInstallerPath & csFlashAInstallerVers)
sFlashAUpdateStatus = "UPDATED"
Call WriteLog ("FlashA - FINISH ===",2)
End If
Call WriteLog("FlashActiveX - OK",2)
Call WriteLog("===================================================================================================",2)
'flash Plugin
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog("FlashPlugin - Compare downloaded and current FlashPlugin version",2)
if sFlashVersionWEBGet("P") <> sFlashVersionLocalGet("P") then
Call WriteLog("WARNING! Downloaded and current FlashPlugin version is NOT identical",1)
bNeedToSendLog = True
Call WriteLog("---------------------------------------------------------------------------------------------------",2)
Call WriteLog ("FlashP - START ---",2)
sFlashPVersionCurrent = sFlashVersionWEBGet("P")
Call HttpGetSave(sFlashInstallerLinkGet("P",sFlashPVersionCurrent), sInstallerPath & csFlashPInstaller)
sFlashPVersionCurrent = sFlashVersionWEBGet("P")
Call myRun("cmd /c echo " & sFlashPVersionCurrent & "> " & sInstallerPath & csFlashPInstallerVers)
sFlashPUpdateStatus = "UPDATED"
Call WriteLog ("FlashP - FINISH ===",2)
End If
Call WriteLog("FlashPlugin - OK",2)
Call WriteLog("===================================================================================================",2)
' при необходимости отправляем отчёт
Call SendLog()
' при необходимости записываем отчёт в лог-файл
Call WriteLogToFile()
Call WriteLog("===================================================================================================",2)
WScript.Quit
End If
If objNamed.Exists("showversion") Then
dim strComputer
If objNamed.Item("showversion") <> "" then
strComputer = objNamed.Item("showversion")
else
strComputer = "."
End If
Call WriteLog ("bParseCommandLine, ShowVersion for comp " & strComputer,3)
If strComputer <> "." Then
' Пингом проверим что комп включен
If IsPingSucsess (strComputer) Then
WScript.Echo ("компьютер " & strComputer & " доступен!")
Else
WScript.Echo ("компьютер " & strComputer & " НЕ доступен!")
WScript.Quit
End If
End If
' TODO - переделать вывод отчёта
If Is64BitSystem (strComputer) = true then
' родная битность
call WriteLog("JAVA64 = " & sJavaVersionInstalledGet(strComputer) ,1)
' для 64 битных систем дополнительно показываем версию 32й явы
call WriteLog("JAVA32 = " & sJavaWoW6432VersionInstalledGet(strComputer) ,1)
else
call WriteLog("JAVA = " & sJavaVersionInstalledGet(strComputer) ,1)
End If
call WriteLog("FlashA = " & sFlashVersionInstalledGet(strComputer, "A") ,1)
call WriteLog("FlashP = " & sFlashVersionInstalledGet(strComputer, "P") ,1)
WScript.Quit
End If
If objNamed.Exists("mailtest") Then
Call mySendMail("FJUpdater test mail from " & sEnvGet("%COMPUTERNAME%"), "Test")
Call WriteLog ("bParseCommandLine, mailtest",3)
WScript.Quit
End If
If objNamed.Exists("IgnoreJava") Then
glbIgnoreJava = True
Call WriteLog ("bParseCommandLine, IgnoreJava",3)
End If
If objNamed.Exists("IgnoreJavaWoW6432") Then
glbIgnoreJavaWoW6432 = True
Call WriteLog ("bParseCommandLine, IgnoreJavaWoW6432",3)
End If
If objNamed.Exists("IgnoreFlashA") Then
glbIgnoreFlashA = True
Call WriteLog ("bParseCommandLine, IgnoreFlashA",3)
End If
If objNamed.Exists("IgnoreFlashP") Then
glbIgnoreFlashP = True
Call WriteLog ("bParseCommandLine, IgnoreFlashP",3)
End If
If objNamed.Exists("UninstallJavaOld") Then
If objNamed.Item("UninstallJavaOld") <> "" then
dim sComputer
sComputer = objNamed.Item("UninstallJavaOld")
Call WriteLog ("bParseCommandLine, UninstallJavaOld for comp " & sComputer,3)
If sComputer <> "." Then
' Пингом проверим что комп включен
If IsPingSucsess (sComputer) Then
WScript.Echo ("компьютер " & sComputer & " доступен!")
Else
WScript.Echo ("компьютер " & sComputer & " НЕ доступен!")
WScript.Quit
End If
End If
Call UninstallJavaOld(sComputer)
WScript.Quit
else
glbUninstallJavaOld = True
Call WriteLog ("bParseCommandLine, UninstallJavaOld",3)
End If
End If
If (objNamed.Exists("?")) or (objNamed.Exists("help")) Then
Call PrintHelp()
WScript.Quit
End If
If Err.Number <> 0 then
Call WriteLogError("bParseCommandLine", Err.Number, Err.Description, Err.Source)
bParseCommandLine = false
'todo : вывод Help'а
End If
End Function
sub PrintHelp
' выводит справку