Advertisement
Guest User

Untitled

a guest
Sep 4th, 2015
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 10.74 KB | None | 0 0
  1. #RequireAdmin
  2. #include <GUIConstantsEx.au3>
  3. #include <ButtonConstants.au3>
  4. #include <WindowsConstants.au3>
  5. #include <GUIConstantsEx.au3>
  6. #include <ListBoxConstants.au3>
  7. #include <EditConstants.au3>
  8. #include <Date.au3>
  9. #include <File.au3>
  10. #Region
  11.  
  12. Global $ServerDir = "\\debian-server\FILES\SOFT\Distr\*.*"
  13. Global $x86 = "\\debian-server\FILES\SOFT\Office2010x32\"
  14. Global $x64 = "\\debian-server\FILES\SOFT\Office2010x64\"
  15. Global $Offx32="\Office2010x32\"
  16. Global $Offx64="\Office2010x64\"
  17. Global $ChocoXPsoft="\\debian-server\FILES\SOFT\ChocoXPsoft"
  18. Global $ChocoWin7soft="\\debian-server\FILES\SOFT\ChocoWin7soft"
  19. Global $files = "\\debian-server\FILES\ASI\Files\"
  20. Global $Ping = ping("debian-server",1)
  21. Global $font = "Comic Sans MS"
  22. FileInstall("1.jpg","*",1)
  23. Const $title= "ASI Script v0.2a"
  24. $Window = GUICreate($title, 300, 300) ;Создание окна
  25. GUISetBkColor(0xE0FFFF) ; Установка цвета фона для окна
  26. GUICtrlCreatePic("1.jpg", 0, 0, 300, 215) ;Установка картинки для окна
  27. Global $OKButton = GUICtrlCreateButton("Запустить",40, 250, 70) ;Создание кнопок
  28. Global $EXITButton = GUICtrlCreateButton("Закрыть", 190, 250, 70)
  29. Global $BackButton = GUICtrlCreateButton("Назад", 115, 250, 70)
  30. Global $Office = GUICtrlCreateCheckbox("MS Office 2010 SP2 x32", 8, 233, 135, 16)
  31. Global $Office64 = GUICtrlCreateCheckbox("MS Office 2010 SP2 x64", 155, 233, 135, 16)
  32. Global $OtherSoft = GUICtrlCreateCheckbox("Other SOFT", 8, 215, 75, 16)
  33. Local $FileMenu, $FileItem, $FileItem2
  34. $FileMenu = GUICtrlCreateMenu("&Файл") ;Создание пунктов меню
  35. $FileItem = GUICtrlCreateMenuItem("Инструкция", $FileMenu)
  36. $FileItem2 = GUICtrlCreateMenuItem("Выход", $FileMenu)
  37. $FileMenu2 = GUICtrlCreateMenu("&?")
  38. $FileItem6 = GUICtrlCreateMenuItem("Changelog",$FileMenu2)
  39. $FileItem7 = GUICtrlCreateMenuItem("LOG",$FileMenu2)
  40. $FileItem3 = GUICtrlCreateMenuItem("О скрипте",$FileMenu2)
  41. $FileItem8 = GUICtrlCreateMenuItem("О системе",$FileMenu2)
  42. #EndRegion
  43. ;Делаем кнопку ОК не активной
  44. GUICtrlSetState($OKButton, $GUI_DISABLE)
  45. GUISetState(@SW_SHOW, $Window)
  46. ;Проверка разрядности для выбора офиса
  47. If @OSArch ='x86' Then
  48.    GUICtrlSetState($Office64, $GUI_DISABLE)
  49. Else
  50.    GUICtrlSetState($Office, $GUI_DISABLE)
  51. EndIf
  52.  
  53. ;Функция управления активностью кнопки
  54. Func SetButtonState()
  55.    If GUICtrlRead($Office) = $GUI_CHECKED _
  56.       or GUICtrlRead($Office64) = $GUI_CHECKED _
  57.       or GUICtrlRead($OtherSoft) = $GUI_CHECKED _
  58.    Then
  59.       GUICtrlSetState($OKButton, $GUI_ENABLE)
  60.    Else
  61.       GUICtrlSetState($OKButton, $GUI_DISABLE)
  62.    EndIf
  63. EndFunc
  64. ; Цикл для отображения окна
  65. While 1
  66.       $iMsg = GUIGetMsg()
  67.       Switch $iMsg
  68.             Case $Office
  69.                  SetButtonState()
  70.             Case $Office64
  71.                  SetButtonState()
  72.             Case $OtherSoft
  73.                  SetButtonState()
  74.         Case $OKButton ;при нажатии на кнопку Запустить
  75.                   If $Ping Then ;проверка доступности сервера
  76.                      If FileExists($ServerDir) Then ;проверка существования каталога с софтом на сервере
  77.                         ;Выбор диска назначения
  78.                         $sPath = FileSelectFolder('Выберите диск, на который будет скопировано ПО ', '', 3, @DesktopDir, $Window)
  79.                         If @error Or Not StringInStr(FileGetAttrib($sPath), "D") Then ContinueLoop
  80.                            ; продолжить цикл опроса от начала, если выбор отменён или объект не является папкой, например "Мой компьютер" или Корзина
  81.                            DirCreate($sPath & "Distr")
  82.                            $sPath = $sPath & "Distr\"
  83.                            ;отключение UAC и перезагрузки при установке обновлений
  84.                            RegWrite("HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU","NoAutoRebootWithLoggedOnUsers","REG_DWORD",1)
  85.                            RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System","EnableLUA","REG_DWORD",0)
  86.                            RunWait(@ComSpec & " /c " & "gpupdate", "")
  87.                            $startTime = _NowCalc() ;запуск отсчета времени начала установки ПО
  88.                            ;Если выбран х32 офис
  89.                            Office()
  90.                            ;Если выбран остальной софт
  91.                            OtherSoft()
  92.                            ;включение UAC и перезагрузку при установке обновлений
  93.                            RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU","NoAutoRebootWithLoggedOnUsers")
  94.                            RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System","EnableLUA","REG_DWORD",1)
  95.                            FileDelete("./1.jpg")
  96.                            RunWait(@ComSpec & " /c " & "gpupdate", "")
  97.                            $endTime = _NowCalc() ;Остановка счетчика времени
  98.                            $minutes = _DateDiff("n", $startTime, $endTime) ;подсчет прошедшего времени
  99.                            Local $hFile = FileOpen(@ScriptDir & "\LOG.log", 1) ; Открывает лог-файл в режиме записи.
  100.                            _FileWriteLog($hFile, $title) ; Записывает в лог-файл передавая дескриптор возвращённый функцией FileOpen.
  101.                            _FileWriteLog($hFile, "Каталог назначения: "&$sPath)
  102.                            _FileWriteLog($hFile, "Разрядность: " & @OSArch)
  103.                            _FileWriteLog($hFile, "ОС: " & @OSVersion)
  104.                            _FileWriteLog($hFile, "Затрачено времени на установку: " & $minutes&" минут(ы)")
  105.                            FileClose($hFile)
  106.                            GUISetFont(14, 20, 0, $font)
  107.                            GUICtrlCreateLabel("Готово!", 120, 100)
  108.                            GUICtrlSetColor(-1, 0x008800)
  109.                            GUISetFont(14, 20, 0, $font)
  110.                            Sleep(2000)
  111.                            SoundSetWaveVolume(50)
  112.                            SoundPlay(@WindowsDir & "\media\tada.wav", 1)
  113.                            GUIDelete()
  114.                            Exit
  115.                         Else
  116.                            GUISetFont(14, 20, 0, $font)
  117.                            GUICtrlCreateLabel("Каталог с ПО не существует!", 120, 100)
  118.                            GUICtrlSetColor(-1, 0xff0000)
  119.                            Sleep(2000)
  120.                            GUIDelete()
  121.                            Exit
  122.                         EndIf
  123.                      Else
  124.                         GUISetFont(14, 20, 0, $font)
  125.                         GUICtrlCreateLabel("Debian-server не доступен!", 120, 100)
  126.                         GUICtrlSetColor(-1, 0xff0000)
  127.                         Sleep(2000)
  128.                         Exit
  129.                         GUIDelete()
  130.                  EndIf ; Конец проверки доступности сервера
  131.                Case $FileItem
  132.                         $sTextFile = $files & "ReadMe.txt"
  133.                         Run ( "notepad.exe " & $sTextFile)
  134.                Case $GUI_EVENT_CLOSE
  135.                         ExitLoop
  136.                Case $FileItem2
  137.                         ExitLoop
  138.                Case $FileItem3
  139.                        GUISetFont(10, 600, 0, $font)
  140.                         $edit = GUICtrlCreateEdit(@TAB&$title & @CRLF& "Данный скрипт разработан с целью автоматической установки необходимого ПО."& @CRLF &"Дата начала разработки: 21.08.14" &@CRLF&"Разработал: Русинов Р.С." , 10, 10, 280, 190, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN + $ES_READONLY)
  141.                        GUICtrlSetColor(-1, 0x008800)
  142.                Case $EXITButton
  143.                         FileDelete("1.jpg")
  144.                         ExitLoop
  145.                Case $FileItem8
  146.                         $edit2= GUICtrlCreateEdit(@TAB&$title&@CRLF&@TAB&"Version: "&@AutoItVersion&@CRLF & @CRLF& "ОS: " & @OSType&@CRLF&"IP: "&@IPAddress1&@CRLF&"COMPUTER_NAME: "&@ComputerName&@CRLF&"LOGON_DOMAIN: "&@LogonDomain, 10, 10, 280, 190, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN + $ES_READONLY)
  147.                Case $BackButton
  148.                         If IsDeclared('edit')Then
  149.                            GUICtrlDelete($edit)
  150.                         EndIf
  151.                         if IsDeclared ('edit2') Then
  152.                            GUICtrlDelete($edit2)
  153.                         EndIf
  154.                Case $FileItem6
  155.                         $change = $files & "changelog.txt"
  156.                         Run ( "notepad.exe " & $change)
  157.                Case $FileItem7
  158.                         If FileExists ("\LOG.log") Then
  159.                            Run ( "notepad.exe LOG.log")
  160.                         Else
  161.                            MsgBox(0,$title,"Файл не создан!")
  162.                         EndIf
  163.       EndSwitch
  164.    WEnd
  165. Func Office()
  166.    If GUICtrlRead ($Office) = $GUI_CHECKED Then
  167.       _FileCopy($x86, $sPath)
  168.       RunWait($sPath & $Offx32 & 'setup.exe /adminfile 32.MSP')
  169.       Runwait($sPath & $Offx32 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe /os")
  170.       FileDelete($sPath & $Offx32 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe")
  171.    EndIf
  172.       ;Если выбран x64 офис
  173.    If GUICtrlRead ($Office64) = $GUI_CHECKED Then
  174.       _FileCopy($x64, $sPath)
  175.       RunWait($sPath & $Offx64 & 'setup.exe /adminfile 64.MSP')
  176.       Runwait($sPath & $Offx64 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe /os")
  177.       FileDelete($sPath & $Offx64 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe")
  178.    EndIf
  179. EndFunc
  180. Func OtherSoft()
  181.    If GUICtrlRead ($OtherSoft) = $GUI_CHECKED Then
  182.       _FileCopy($ServerDir, $sPath)
  183.       If @OSVersion = 'WIN_XP' Then ;если установлена XP, то выполнить этот код
  184.          _FileCopy($ChocoXPsoft, $sPath)
  185.          RunWait($sPath & 'NetFx20SP1_x86(Wind XP).exe /q')
  186.          RunWait($sPath & 'PowerShell2.0.exe /q')
  187.          RunWait($sPath & 'dotNetFx40_Full_x86_x64.exe /quiet /norestart')
  188.          RunWait(@ComSpec & " /c " & $files & "installchoco.bat", "")
  189.       EndIf
  190.       If @OSVersion='WIN_7' Then ;Если установлена 7, то этот
  191.         _FileCopy($ChocoWin7soft, sPath)
  192.         RunWait($sPath & 'dotNetFx40_Full_x86_x64.exe /quiet /norestart')
  193.         RunWait($sPath & 'NDP451-KB2858728-x86-x64-AllOS-ENU.exe /q /norestart')
  194.         RunWait($sPath & 'Windows6.1-KB2819745-x86-MultiPkg.msu /quiet /norestart')
  195.         RunWait(@ComSpec & " /c " & $files & "installchoco.bat", "")
  196.       Else
  197.         If @OSArch='X64' Then
  198.            RunWait($sPath & "dotNetFx40_Full_x86_x64.exe /quiet /norestart")
  199.            RunWait($sPath & "NDP451-KB2858728-x86-x64-AllOS-ENU.exe /q /norestart")
  200.            RunWait($sPath & "Windows6.1-KB2819745-x64-MultiPkg.msu /quiet /norestart")
  201.            RunWait(@ComSpec & " /c " & $Files & "installchoco.bat", "")
  202.         EndIf
  203.       EndIf
  204.       RunWait($sPath & "aimp_3.55.1355.exe /AUTO")
  205.       Runwait($sPath & "K-Lite\K-Lite_Codec_Pack_1065_Mega.exe /verysilent /norestart /LoadInf=.\klcp_mega_unattended.ini")
  206.       _FileCopy($sPath & "totalcmd","C:\")
  207.       RunWait($sPath & "WinRAR 4.20.exe -a4RAi")
  208.       WinWaitClose("Установка WinRAR 4.20")
  209.    EndIf
  210. EndFunc
  211. ;Функция копирования
  212. Func _FileCopy($fromFile,$tofile)
  213.    Local $FOF_RESPOND_YES = 16
  214.    Local $FOF_SIMPLEPROGRESS = 256
  215.    $winShell = ObjCreate("shell.application")
  216.    $winShell.namespace($tofile).CopyHere($fromFile,$FOF_RESPOND_YES)
  217. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement