Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматическое обновление Flash Player'а в домене

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

ccccp



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
! ВНИМАНИЕ 10.10.2012 произведена замена скрипта  FlashUpdaterAdmin.pl
! так как Adobe добавила на страницу версий линки на FlashPlayer для Windows 8

 
   В последнее время уязвимости в компонентах Flash Player сильно осложняют жизнь системным администраторам MS Windows, а инструменты для автоматического обновления от Adobe оставляют желать лучшего. Предлагаю Вашему вниманию свои наработки по этой теме.
 
   Для обновления используется 2 скрипта. первый написан на PERL. Периодически запускается из планировщика заданий раз в сутки на эталоннном ПК (допустим в виртуальной машине) и получает со страницы http://www.adobe.com/software/flash/about текущие доступные номера версий компонентов Flash Player. Если установленные в системе и доступные на сайте различаются, то скачивает новые версии инсталяторов и выкладывает их в общую папку, доступную всем ПК сети для чтения/выполнения. Также в этой папке создается 2 файла-семафора с номерами текущих версий компонентов. Из скрипта вызывается консольный довнлоадер wget http://gnuwin32.sourceforge.net/packages/wget.htm его необходимо положить рядом со скриптом или в доступное для %path% место.
 
   Второй скрипт запускается из  GPO стартап скрипта компьютеров и если номер версии в файле-семафоре не совпадает с установленными в системе версиями компонентов Flash Player то запускает тихую установку/обновление. Скрипт ведет лог установки/обновления в текстовый файл %computername%.log
 
Первый скрипт:  
==========
язык программирования perl  http://www.activestate.com/activeperl
FlashUpdaterAdmin.pl

Код:
 
# Flash Player Updater Administrator
# (c) 10.03.2011 ccccp
# v.0.3
# v.0.4
# v.0.5 02.06.2011 adobe change source url
# http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_32bit.exe
# v.0.6 15.06.2012 adobe change source url
# http://fpdownload.macromedia.com/get/flashplayer/pdc/11.3.300.257/install_flash_player_ax.exe
 
use LWP::Simple;
use Win32::TieRegistry (Delimiter=>"/");
 
$DeploySharePath='\\\\ONOS-SDC01\\share\\install\\FlashPlayer';
$Log='FlashUpdater.log';
 
system ('cmd /c echo %DATE% %TIME% === START === >> '.$Log);
 
my  $fpkey = 'LMachine/SOFTWARE/Macromedia/FlashPlayer/';
$fpVersion = $Registry->{$fpkey}->{'CurrentVersion'};
 
my  $fppkey = 'LMachine/SOFTWARE/Macromedia/FlashPlayerPlugin/';
$fppVersion = $Registry->{$fppkey}->{'Version'};
 
 
my  $fpOCXkey = 'LMachine/SOFTWARE/Macromedia/FlashPlayerActiveX/';  
$fpOCXVersion = $Registry->{$fpOCXkey}->{'Version'};
 
$_ = get('http://www.adobe.com/software/flash/about');
$count=0;
 while ( m{<td>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)}g)
 { $text = $1;
   if ($count == 0) {    $CurrrentfpOCXVersion=$text;    }
   if ($count == 2) {    $CurrrentfppVersion=$text; }
   $count++;
 }
 
 print "Current FlashPlayer:               $CurrrentfpOCXVersion\n";  
 print "Current FlashPlayerOCX:            $CurrrentfpOCXVersion\n";
 print "Current FlashPlayerPlugin:         $CurrrentfppVersion\n";  
 
 
 # replace "," to "."
 
$fpVersion =~  s/\,/\./g;  
$fppVersion =~  s/\,/\./g;  
$fpOCXVersion =~  s/\,/\./g;  
 
 print "Installed FlashPlayer:             $fpVersion\n";
 print "Installed FlashPlayerOCX:          $fpOCXVersion\n";
 print "Installed FlashPlayerPlugin:       $fppVersion\n";
 
 
 if (not $CurrrentfppVersion eq $fppVersion) {  
     print "Downloading install_flash_player.exe\n";
     system ('cmd /c echo %DATE% %TIME% FlashPlayer: '.$fppVersion.' -=- '.$CurrrentfppVersion.' >>'.$Log);
#     system ('wget --output-document=install_flash_player.exe -m -np -nd http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_32bit.exe');
     system ('wget --output-document=install_flash_player.exe -m -np -nd http://fpdownload.macromedia.com/get/flashplayer/pdc/'.$CurrrentfppVersion.'/install_flash_player.exe');
     print "Installing install_flash_player.exe\n";
     system ('install_flash_player.exe /install');
     system ('cmd /c copy install_flash_player.exe '.$DeploySharePath.' /y');
         }
 if (not $CurrrentfpOCXVersion eq $fpOCXVersion) {  
     system ('cmd /c echo %DATE% %TIME% FlashPlayerOCX: '.$fpOCXVersion.' -=- '.$CurrrentfpOCXVersion.' >>'.$Log);
     print "Downloading install_flash_player_ax.exe\n";
#     system ('wget --output-document=install_flash_player_ax.exe -m -np -nd http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_ax_32bit.exe');
     system ('wget --output-document=install_flash_player_ax.exe -m -np -nd http://fpdownload.macromedia.com/get/flashplayer/pdc/'.$CurrrentfpOCXVersion.'/install_flash_player_ax.exe');
     print "Installing install_flash_player_ax.exe\n";
     system ('install_flash_player_ax.exe /install');
     system ('cmd /c copy install_flash_player_ax.exe '.$DeploySharePath.' /y');
         }
 
my  $fpkeyNEW = 'LMachine/SOFTWARE/Macromedia/FlashPlayer/';
$fpVersionNEW = $Registry->{$fpkeyNEW}->{'CurrentVersion'};
 
my  $fppkeyNEW = 'LMachine/SOFTWARE/Macromedia/FlashPlayerPlugin/';
$fppVersionNEW = $Registry->{$fppkeyNEW}->{'Version'};
 
 
my  $fpOCXkeyNEW = 'LMachine/SOFTWARE/Macromedia/FlashPlayerActiveX/';  
$fpOCXVersionNEW = $Registry->{$fpOCXkeyNEW}->{'Version'};
 
 print "Installed FlashPlayerNEW:          $fpVersionNEW\n";
 print "Installed FlashPlayerOCXNEW:       $fpOCXVersionNEW\n";
 print "Installed FlashPlayerPluginNEW:    $fppVersionNEW\n";
 
     system ('cmd /c echo '.$fppVersionNEW.' >'.$DeploySharePath.'\FlashPlayerLatest');  
     system ('cmd /c echo '.$fpOCXVersionNEW.' >'.$DeploySharePath.'\FlashPlayerOCXLatest');  
 
 system ('cmd /c echo %DATE% %TIME% === STOP === >>'.$Log);
 

 
Второй скрипт
==========
язык программирования kix http://www.kixtart.org/
FlashUpdaterClient.kix
 

Код:
 
; Flash Player Updater Client
; v.0.5 02.06.2011 (с) ccccp
 
; файл логов  
$log="\\SDC01\share\install\FlashPlayer\log\@WKSTA.log"
; папка с установочными файлами FlashPlayer
$FlashDeployDir="\\SDC01\share\install\FlashPlayer"
 
$FlashCurrentVersion=$FlashDeployDir+"\FlashPlayerLatest"
$FlashOCXCurrentVersion=$FlashDeployDir+"\FlashPlayerOCXLatest"
$FlashDeployCommand=$FlashDeployDir+"\install_flash_player.exe /install"
$FlashOCXDeployCommand=$FlashDeployDir+"\install_flash_player_ax.exe /install"
 
$Flash= ""
$FlashOCX = ""
$FlashCurrent= ""
$FlashOCXCurrent = ""
 
 
IF Open(3, $FlashCurrentVersion)  = 0
   $FlashCurrent = join(split(trim(ReadLine(3)),","),".")
ENDIF
 
IF Open(4, $FlashOCXCurrentVersion)  = 0
   $FlashOCXCurrent = join(split(trim(ReadLine(4)),","),".")
ENDIF
 
; FlashPlayer Installed Version
  IF (ExistKey("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer") = 0)
    $Flash= READVALUE("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer", "CurrentVersion")
    $Flash= join(split($Flash,","),".")
  ENDIF
; FlashOCX Installed Version
  IF (ExistKey("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX") = 0)
    $FlashOCX= READVALUE("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX", "Version")
    $FlashOCX= join(split($FlashOCX,","),".")
  ENDIF
 
  if $Flash<>$FlashCurrent
   ? '['+$Flash+'] != ['+$FlashCurrent+']'
   $nil=Log('['+$Flash+'] != ['+$FlashCurrent+'] '+$FlashDeployCommand,$log)
   SHELL  $FlashDeployCommand
   $nil=Log(@ERROR,$log)    
 ENDIF
   
  if $FlashOCX<>$FlashOCXCurrent
   ? '['+$FlashOCX+'] != ['+$FlashOCXCurrent+']'
   $nil=Log('['+$FlashOCX+'] != ['+$FlashOCXCurrent+'] '+$FlashOCXDeployCommand,$log)
   SHELL  $FlashOCXDeployCommand
   $nil=Log(@ERROR,$log)    
  ENDIF
 
exit
 
;Author         Jan.Schulenburg@tui.nl
;
;Parameters     1: required indicating message to display or log.
;               2: optional indicating logfile to write message to.
;
;Remarks        this function displays the text if $LogFile="" or empty and logs
;               the text if $LogFile is a file.
;
;Returns        nothing, errorlevel>0 if failes.
;
;Dependencies   None
;
;Example(s)     $ReturnCode = Log("Map of drive $Drive failed !!")
;
Function Log($Message,Optional $LogFile)
    Dim $LogFile
 
    ; Check parameters.
    $Log=''
    $LogFile=''+$LogFile
    If 0=VarType($Message) Exit(1) EndIf
    If $LogFile
        ; Check if logfile directory exists..
        If Not GetFileAttr(SubStr($LogFile,1,InStrRev($LogFile,'\')-1)) & 16 Exit(2) EndIf
 
        If RedirectOutput($LogFile,0)=0
            ? "@DATE, @TIME: $Message"
            $=RedirectOutput("")
        Else Exit(3) EndIf
    EndIf
EndFunction
 

 
Результат работы:
 
 

Всего записей: 26 | Зарегистр. 05-12-2002 | Отправлено: 07:14 23-06-2011 | Исправлено: ccccp, 08:12 09-10-2012
knzknzknz

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
добро.

Всего записей: 69 | Зарегистр. 15-09-2005 | Отправлено: 07:18 23-06-2011
ATHeiSt_HAX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ух ты, нада попробовать! А то уже устало успокаивать юзеров при вылезании обновления.

Всего записей: 139 | Зарегистр. 10-09-2007 | Отправлено: 07:21 23-06-2011
tankistua

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну и зачем так извращаться ?
 
качаешь отсюда  
http://www.adobe.com/products/flashplayer/fp_distribution3.html
 
msi-айники
http://www.adobe.com/go/full_flashplayer_win_msi
http://www.adobe.com/go/full_flashplayer_win_pl_msi
 
ну и ставишь

Всего записей: 9572 | Зарегистр. 15-01-2002 | Отправлено: 09:26 23-06-2011
ccccp



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tankistua
так речь не об одноразовой установке а об автоматизации процесса скачивания и установки/обновления  EXEшников по событию "ой, а на сайте то обновилось"

Всего записей: 26 | Зарегистр. 05-12-2002 | Отправлено: 10:46 23-06-2011 | Исправлено: ccccp, 10:48 23-06-2011
itchyitch

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tankistua так скрипт этим и занимается в автоматическом режиме, отслеживая изменение версии плагина и обновляя при необходимости

Всего записей: 34 | Зарегистр. 15-06-2007 | Отправлено: 10:46 23-06-2011
qwertEHOK

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
пара вопросов
 
1) для запуска pl файлов достаточно скачать и установить этот активныйперл?
2) пути в реестре для любой венды?
3) насколько быстро проходит обновление для пользователей?  
 
а есть у вас что-то еще что обновляется автоматически?

Всего записей: 454 | Зарегистр. 13-09-2006 | Отправлено: 19:15 08-07-2011
attaattaatta



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Волью свои 5 кубиков на autoit
 
На серваке с доступом в инет (на сайт адоба):
 

Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\100.ico
#AutoIt3Wrapper_Outfile_x64=ADOBE_UPD.exe
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt("TrayIconHide", 1)
Opt("TrayAutoPause", 0)
 FileDelete ("\\aptekar\DFS\REMOTE\Updates\Adobe\Flash\Download.done")
 Local $hDownload = InetGet("http://download.macromedia.com/pub/flashplayer/current/support/install_flash_player.exe", "\\aptekar\DFS\REMOTE\Updates\Adobe\Flash\install_flash_player_32.exe", 1, 1)
 Do
     Sleep(250)
 Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.
 
 Local $hDownload = InetGet("http://download.macromedia.com/pub/flashplayer/current/support/install_flash_player_ax.exe", "\\aptekar\DFS\REMOTE\Updates\Adobe\Flash\install_flash_player_ax_32.exe", 1, 1)
 Do
     Sleep(250)
 Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.
 
 Local $hDownload = InetGet("http://download.macromedia.com/pub/flashplayer/current/support/install_flash_player.exe", "\\aptekar\DFS\REMOTE\Updates\Adobe\Flash\install_flash_player_64.exe", 1, 1)
 Do
     Sleep(250)
 Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.
 
 Local $hDownload = InetGet("http://download.macromedia.com/pub/flashplayer/current/support/install_flash_player_ax.exe", "\\aptekar\DFS\REMOTE\Updates\Adobe\Flash\install_flash_player_ax_64.exe", 1, 1)
 Do
     Sleep(250)
 Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.
 FileWrite  ("\\aptekar\DFS\REMOTE\Updates\Adobe\Flash\Download.done","")

Пути естественно поправить на свои.
 
На клиентах, через групповые политики или как угодно, запускать exe:
 

Код:
$remote_flash_ax_32 =  FileGetVersion ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_ax_32.exe","FileVersion")
$remote_flash_32=  FileGetVersion ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_32.exe","FileVersion")
$remote_flash_ax_64 =  FileGetVersion ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_ax_64.exe","FileVersion")
$remote_flash_64 =  FileGetVersion ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_64.exe","FileVersion")
 
$local_flash_ax = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX", "Version")
$local_flash = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerPlugin", "Version")
$local_flash_exists = FileExists (@SystemDir & "\macromed\flash")
$local_flash_exists_64 = FileExists (@WindowsDir & "\syswow64\macromed\flash")
 
If $remote_flash_ax_32 > $local_flash_ax or $local_flash_exists=0 and FileExists ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\Download.done") and @OSArch = "x86" Then
    RunAsWait ("admin", "domain[or localhost name]","password", 0 ,'\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_ax_32.exe' & ' /install',"\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\",@SW_HIDE)
EndIf
If $remote_flash_32 > $local_flash or $local_flash_exists=0 and FileExists ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\Download.done") And @OSArch = "x86" Then
    RunAsWait ("admin", "domain[or localhost name]","password", 0 ,'\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_32.exe' & ' /install',"\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\",@SW_HIDE)
EndIf
If $remote_flash_ax_64 > $local_flash_ax or $local_flash_exists_64=0 and FileExists ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\Download.done") and @OSArch = "x64" Then
    RunAsWait ("admin", "domain[or localhost name]","password", 0 ,'\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_ax_64.exe' & ' /install',"\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\",@SW_HIDE)
EndIf
If $remote_flash_64 > $local_flash or $local_flash_exists_64=0 and FileExists ("\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\Download.done") And @OSArch = "x64" Then
    RunAsWait ("admin", "domain[or localhost name]","password", 0 ,'\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\install_flash_player_64.exe' & ' /install',"\\dk-srv3\программное_обеспечение\REMOTE\updates\adobe_flash\",@SW_HIDE)
EndIf

Всего записей: 1118 | Зарегистр. 25-09-2007 | Отправлено: 11:13 09-07-2011 | Исправлено: attaattaatta, 08:33 11-02-2013
ccccp



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
qwertEHOK

Цитата:
1) для запуска pl файлов достаточно скачать и установить этот активныйперл?  
2) пути в реестре для любой венды?  
3) насколько быстро проходит обновление для пользователей?  
 
а есть у вас что-то еще что обновляется автоматически?

 
1. Да
2. Разрабатывалось для x86/x64 платформ, тестировалось на XP/2003/2008/2008r2/w7  x86/x64.
3. Гораздо быстрее установки через пакеты GPO. 5-10 секунд в зависимости от производительности ПК.
 
На стадии тестирования находится подобный набор скриптов для обновление Java.
 
Также разработано удаление различных версий Acrobat Reader (тех, что нашлись на ПК в сети) http://pastebin.com/GegWT1q6 и замены его на бесплатный PDF X-change viewer. http://www.pdf-software.eu/

Всего записей: 26 | Зарегистр. 05-12-2002 | Отправлено: 06:12 11-07-2011 | Исправлено: ccccp, 10:29 11-07-2011
qwertEHOK

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ccccp
+100500
 
очень полезные штуки.
 
еще бы 7zip обновлять

Всего записей: 454 | Зарегистр. 13-09-2006 | Отправлено: 11:29 11-07-2011
ccccp



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
!!! на 13.02.2013 скрипты обновления JAVA потеряли актуальность с выходом 1.7 версии и требуют доработки.... !!!
 
на основании статьи http://amatrosov.blogspot.com/2011/02/java.html задумался об обновлени и
как обещал скрипты для обновления Java в домене.
 
Обращаю Ваше внимание на то,что во втором скрипте есть параметр $install с помощью него можно управлять установкой java на клиенты, у которых java изначально не установлена (1- устанавливать, 0-не устанавливать).
 
Первый скрипт:  
==========  
язык программирования perl  http://www.activestate.com/activeperl  
JavaUpdaterAdmin.pl
 

Код:
# JRE Updater Administrator
# v 0.2 05.07.2011
# (c) pc
 
 use LWP::Simple;
 use Win32::TieRegistry (Delimiter=>"/");
 
 $DeploySharePath='\\\\SDC01\\share\\install\\Java';
 $Log='JavaUpdater.log';
 
 system ('cmd /c echo %DATE% %TIME% === START === >> '.$Log);
 
 my  $javakey = 'LMachine/SOFTWARE/JavaSoft/Java Runtime Environment/';
 $JavaInstalled = $Registry->{$javakey}->{'Java6FamilyVersion'};
 
 $_ = get('http://www.java.com/applet/JreCurrentVersion2.txt');
 chomp;
 $JavaCurrent = $_;
 
 $JavaCurrent =~ s/^\s+//;  
 $JavaCurrent =~ s/\s+$//;  
 
 print "Current Java version:               $JavaCurrent\n";  
 print "Installed Java version:             $JavaInstalled\n";
 
 if (not $JavaCurrent eq $JavaInstalled) {  
     print "Downloading new java installer\n";
     system ('cmd /c echo %DATE% %TIME% Java: '.$JavaInstalled.' != '.$JavaCurrent.' >>'.$Log);
     system ('wget --output-document=java_install.exe -m -nd -np http://javadl.sun.com/webapps/download/AutoDL?BundleId=49024');
     print "Installing new java\n";
     system ('java_install.exe /s /v"/qn IEXPLORER=1 MOZILLA=1 REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0"');
     system ('cmd /c copy java_install.exe '.$DeploySharePath.' /y');
     system ('REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v SunJavaUpdateSched /f');
     print "Installed Java NEW:                 $JavaInstalledNEW\n";
     system ('cmd /c echo '.$JavaCurrent.' >'.$DeploySharePath.'\JavaLatest');  
     my  $javakeyNEW = 'LMachine/SOFTWARE/JavaSoft/Java Runtime Environment/';
     $JavaInstalledNEW = $Registry->{$javakeyNEW}->{'Java6FamilyVersion'};
     print "Installed Java version NEW:          $JavaInstalledNEW\n";
         }
 
 
 system ('cmd /c echo %DATE% %TIME% === STOP === >>'.$Log);

 
 
Второй скрипт  
==========  
язык программирования kix http://www.kixtart.org/  
JavaUpdaterClient.kix  

Код:
 
; Java RE Updater Client
; (c) 15.07.2011 pc
; v 0.2
 
 
; если java на клиенте не установлена то $install=
;   0 - не ставить  
;   1 - ставить
$install=1
 
; файл логов  
$log="\\SDC01\share\install\Java\log\@WKSTA.log"
; папка с установочными файлами Java
$JavaDeployDir="\\SDC01\share\install\Java"
 
; файл, содержащий последнюю доступную с сайта версию java
$JavaCurrentVersion=$JavaDeployDir+"\JavaLatest"
 
; строка для запуска установки
$JavaDeployCommand=$JavaDeployDir+'\java_install.exe /s /v"/qn IEXPLORER=1 MOZILLA=1 REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0"'
 
$Java= ""
$JavaVer=""
$JavaCurrent= ""
 
 
IF Open(3, $JavaCurrentVersion)  = 0
   $JavaCurrent = trim(ReadLine(3)) ; прочитать строку из файла созданного скриптом обновления
ENDIF
 
 
; Java Installed Version
; прочитать значение текущей установленной версии java + update
  IF (ExistKey("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment") = 0)
    $Java= READVALUE("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment","Java6FamilyVersion")
  ENDIF
; прочитать значение текущей установленной версии java
  IF (ExistKey("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment") = 0)
    $JavaVer= READVALUE("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment", "CurrentVersion")
  ENDIF
 
   ? 'Installed Java: ['+$JavaVer+'] update: ['+$Java+']'
   ? 'Current Java: ['+$JavaCurrent+']'
 
  IF $Java<>$JavaCurrent ; если доступная и установленная версии не совпадают
   ? 'INSTALL: ['+$Java+'] or ['+$JavaVer+'] != CURRENT: ['+$JavaCurrent+']'
     IF $JavaVer=""              ;если ява не установлена
       IF $install=1             ;и параметр ставить если неустановлена равен 1 - ставить  
        $nil=Log('['+$Java+'] or ['+$JavaVer+'] != CURRENT: ['+$JavaCurrent+'] '+$JavaDeployCommand,$log)
        SHELL $JavaDeployCommand ;то установить
        $nil=Log(@ERROR,$log)    ;записать в лог код возврата
       ENDIF
     ELSE                        ;ява установлена, обновить
        $nil=Log('['+$Java+'] or ['+$JavaVer+'] != CURRENT: ['+$JavaCurrent+'] '+$JavaDeployCommand,$log)
        SHELL $JavaDeployCommand      
        $nil=Log(@ERROR,$log)    ;записать в лог код возврата
     ENDIF
   ; удалить автозапуск штатного обновления
   SHELL 'REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v SunJavaUpdateSched /f'
  ELSE
   ? 'OK: ['+$Java+'] ['+$JavaVer+'] = ['+$JavaCurrent+']' ; в системе установлена последняя доступная версия Java
  ENDIF
 
 
EXIT
 
;Author         Jan.Schulenburg@tui.nl
;
;Parameters     1: required indicating message to display or log.
;               2: optional indicating logfile to write message to.
;
;Remarks        this function displays the text if $LogFile="" or empty and logs
;               the text if $LogFile is a file.
;
;Returns        nothing, errorlevel>0 if failes.
;
;Dependencies   None
;
;Example(s)     $ReturnCode = Log("Map of drive $Drive failed !!")
;
Function Log($Message,Optional $LogFile)
    Dim $LogFile
 
    ; Check parameters.
    $Log=''
    $LogFile=''+$LogFile
    If 0=VarType($Message) Exit(1) EndIf
    If $LogFile
        ; Check if logfile directory exists..
        If Not GetFileAttr(SubStr($LogFile,1,InStrRev($LogFile,'\')-1)) & 16 Exit(2) EndIf
 
        If RedirectOutput($LogFile,0)=0
            ? "@DATE, @TIME: $Message"
            $=RedirectOutput("")
        Else Exit(3) EndIf
    EndIf
EndFunction
 

 
Результат работы:
============
 

Всего записей: 26 | Зарегистр. 05-12-2002 | Отправлено: 06:32 15-07-2011 | Исправлено: ccccp, 11:05 13-02-2013
ATHeiSt_HAX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По поводу обновления 7зип - а смысл? Он не обновлялся чёрт знает сколько времени. А на альфы не вижу смысла обновлять.

Всего записей: 139 | Зарегистр. 10-09-2007 | Отправлено: 07:13 15-07-2011
SerzhAntz



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Волью свои 5 кубиков на autoit  

К сожалению, если flash не установлен на компьютере, то обычная установка не происходит (теперь происходит )
К тому же вышла 11-я версия, а по ссылкам качает 10-ю. Ну и Adobe выпустил 64-х битную версию.
Поэтому переделал скрипты для autoit, добавил проверку версии в реестре:

Код:
 
Opt("TrayIconHide", 1)  
FileDelete ("\\fs\SOFTWARE\Internet\FlashPlayer\Download.done")  
Local $hDownload = InetGet("http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_32bit.exe", "\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_32bit.exe", 1, 1)  
Do  
    Sleep(250)  
Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.  
 
Local $hDownload = InetGet("http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_64bit.exe", "\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_64bit.exe", 1, 1)  
Do  
    Sleep(250)  
Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.  
 
Local $hDownload = InetGet("http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_ax_32bit.exe", "\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_ax_32bit.exe", 1, 1)  
Do  
    Sleep(250)  
Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.  
 
Local $hDownload = InetGet("http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_ax_64bit.exe", "\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_ax_64bit.exe", 1, 1)  
Do  
    Sleep(250)  
Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.  
 
FileWrite  ("\\fs\SOFTWARE\Internet\FlashPlayer\Download.done","")
 

 

Код:
 
Opt("TrayIconHide", 1)  
If @OSArch = "x86" Then  
        $remote_flash_ax =  FileGetVersion ("\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_ax_32bit.exe","ProductVersion")  
        $local_flash_ax = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer", "CurrentVersion")  
        $local_flash_ax_exists = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX", "Version")  
        If $remote_flash_ax > $local_flash_ax or @error=1 and FileExists ("\\fs\SOFTWARE\Internet\FlashPlayer\Download.done") Then
                RunAsWait ("admin", "DOMAIN","pass", 0 ,"\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_ax_32bit.exe" & " -install")  
                ElseIf @error=0 Then
                Exit
        EndIf  
        $remote_flash =  FileGetVersion ("\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_32bit.exe","ProductVersion")  
        $local_flash = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer", "CurrentVersion")  
        $local_flash_exists = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerPlugin", "Version")  
        If $remote_flash > $local_flash or @error=1 and FileExists ("\\fs\SOFTWARE\Internet\FlashPlayer\Download.done") Then
                RunAsWait ("admin", "DOMAIN","pass", 0 ,"\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_32bit.exe" & " -install")  
                ElseIf @error=0 Then
                Exit
        EndIf
EndIf  
If @OSArch = "x64" Then  
        $remote_flash_ax =  FileGetVersion ("\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_ax_64bit.exe","ProductVersion")  
        $local_flash_ax = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer", "CurrentVersion")  
        $local_flash_ax_exists = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX", "Version")  
        If $remote_flash_ax > $local_flash_ax or @error=1 and FileExists ("\\fs\SOFTWARE\Internet\FlashPlayer\Download.done") Then
                RunAsWait ("admin", "DOMAIN","pass", 0 ,"\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_ax_64bit.exe" & " -install")  
                ElseIf @error=0 Then
                Exit
        EndIf  
        $remote_flash =  FileGetVersion ("\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player_64bit.exe","ProductVersion")  
        $local_flash = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer", "CurrentVersion")  
        $local_flash_exists = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerPlugin", "Version")  
        If $remote_flash > $local_flash or @error=1 and FileExists ("\\fs\SOFTWARE\Internet\FlashPlayer\Download.done") Then
                RunAsWait ("admin", "DOMAIN","pass", 0 ,"\\fs\SOFTWARE\Internet\FlashPlayer\install_flash_player.exe_64bit" & " -install")  
                ElseIf @error=0 Then
                Exit
        EndIf
EndIf  
 
 

Всего записей: 88 | Зарегистр. 15-08-2003 | Отправлено: 18:16 21-10-2011 | Исправлено: SerzhAntz, 21:47 21-10-2011
attaattaatta



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
К тому же вышла 11-я версия, а по ссылкам качает 10-ю

Поправил

Всего записей: 1118 | Зарегистр. 25-09-2007 | Отправлено: 08:51 13-11-2011
tankistua

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
очень удобные скрипты - главное пароль админский не забыть вписа в него:)
 
я не силен в виндах, но разве через gpo в домене нельзя софт ставить? А на мси-айники я дал ссылку, потому как оно для винды родное

Всего записей: 9572 | Зарегистр. 15-01-2002 | Отправлено: 09:56 13-11-2011
attaattaatta



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
я не силен в виндах, но разве через gpo в домене нельзя софт ставить?

Да всяко разно можно,  кто как привык, тот на то и горазд =) Можно через msi пакеты, можно через Adobe Server, хоть через WSUS можно, главное чтобы головной боли меньше было. =)
 
ПЫСЫ - чтобы пароль админа не палить в скрипте, во-первых используем обфускатор autoit (#AutoIt3Wrapper_Run_Obfuscator=y) и утилиты по типу AdmiLink

Всего записей: 1118 | Зарегистр. 25-09-2007 | Отправлено: 10:21 13-11-2011 | Исправлено: attaattaatta, 10:27 13-11-2011
SerzhAntz



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
поправьте ссылки в скриптах:
http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_active_x.exe
http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_plugin.exe
 
Найти можно здесь: http://www.adobe.com/products/flashplayer/distribution3.html

Всего записей: 88 | Зарегистр. 15-08-2003 | Отправлено: 17:50 19-06-2012 | Исправлено: SerzhAntz, 17:55 19-06-2012
attaattaatta



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SerzhAntz
Поправил. Спасибо.

Всего записей: 1118 | Зарегистр. 25-09-2007 | Отправлено: 07:33 20-06-2012
ominnos1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почему при запуске скрипта FlashUpdaterAdmin.pl от ccccp не происходит загрузка файлов flash плейера в сетевую папку: DeploySharePath='\\\\mycomp\\share\\soft\\FlashPlayer';
При запуске скрипта выдается предупреждение "CMD.EXE не поддерживает пути UNC в качестве текущей папки." В итоге файлы flash плейера загружаются, но только в папку где лежит сам скрипт, а по указанному пути создаются только два файла с метками версий flash плейера.

Всего записей: 1 | Зарегистр. 06-05-2009 | Отправлено: 09:00 24-07-2012 | Исправлено: ominnos1, 09:02 24-07-2012
attaattaatta



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ominnos1
Ты же сам и ответил на свой вопрос, у тебя при запуске скрипта в качестве текщей папки сетевой путь (\\blablabla\bla), измени в скрипте так, чтобы рабочая директория была местной.

Всего записей: 1118 | Зарегистр. 25-09-2007 | Отправлено: 09:10 24-07-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматическое обновление Flash Player'а в домене


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru