Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #RequireAdmin
- #include <GUIConstantsEx.au3>
- #include <ButtonConstants.au3>
- #include <WindowsConstants.au3>
- #include <GUIConstantsEx.au3>
- #include <ListBoxConstants.au3>
- #include <EditConstants.au3>
- #include <Date.au3>
- #include <File.au3>
- #Region
- Global $ServerDir = "\\debian-server\FILES\SOFT\Distr\*.*"
- Global $x86 = "\\debian-server\FILES\SOFT\Office2010x32\"
- Global $x64 = "\\debian-server\FILES\SOFT\Office2010x64\"
- Global $Offx32="\Office2010x32\"
- Global $Offx64="\Office2010x64\"
- Global $ChocoXPsoft="\\debian-server\FILES\SOFT\ChocoXPsoft"
- Global $ChocoWin7soft="\\debian-server\FILES\SOFT\ChocoWin7soft"
- Global $files = "\\debian-server\FILES\ASI\Files\"
- Global $Ping = ping("debian-server",1)
- Global $font = "Comic Sans MS"
- FileInstall("1.jpg","*",1)
- Const $title= "ASI Script v0.2a"
- $Window = GUICreate($title, 300, 300) ;Создание окна
- GUISetBkColor(0xE0FFFF) ; Установка цвета фона для окна
- GUICtrlCreatePic("1.jpg", 0, 0, 300, 215) ;Установка картинки для окна
- Global $OKButton = GUICtrlCreateButton("Запустить",40, 250, 70) ;Создание кнопок
- Global $EXITButton = GUICtrlCreateButton("Закрыть", 190, 250, 70)
- Global $BackButton = GUICtrlCreateButton("Назад", 115, 250, 70)
- Global $Office = GUICtrlCreateCheckbox("MS Office 2010 SP2 x32", 8, 233, 135, 16)
- Global $Office64 = GUICtrlCreateCheckbox("MS Office 2010 SP2 x64", 155, 233, 135, 16)
- Global $OtherSoft = GUICtrlCreateCheckbox("Other SOFT", 8, 215, 75, 16)
- Local $FileMenu, $FileItem, $FileItem2
- $FileMenu = GUICtrlCreateMenu("&Файл") ;Создание пунктов меню
- $FileItem = GUICtrlCreateMenuItem("Инструкция", $FileMenu)
- $FileItem2 = GUICtrlCreateMenuItem("Выход", $FileMenu)
- $FileMenu2 = GUICtrlCreateMenu("&?")
- $FileItem6 = GUICtrlCreateMenuItem("Changelog",$FileMenu2)
- $FileItem7 = GUICtrlCreateMenuItem("LOG",$FileMenu2)
- $FileItem3 = GUICtrlCreateMenuItem("О скрипте",$FileMenu2)
- $FileItem8 = GUICtrlCreateMenuItem("О системе",$FileMenu2)
- #EndRegion
- ;Делаем кнопку ОК не активной
- GUICtrlSetState($OKButton, $GUI_DISABLE)
- GUISetState(@SW_SHOW, $Window)
- ;Проверка разрядности для выбора офиса
- If @OSArch ='x86' Then
- GUICtrlSetState($Office64, $GUI_DISABLE)
- Else
- GUICtrlSetState($Office, $GUI_DISABLE)
- EndIf
- ;Функция управления активностью кнопки
- Func SetButtonState()
- If GUICtrlRead($Office) = $GUI_CHECKED _
- or GUICtrlRead($Office64) = $GUI_CHECKED _
- or GUICtrlRead($OtherSoft) = $GUI_CHECKED _
- Then
- GUICtrlSetState($OKButton, $GUI_ENABLE)
- Else
- GUICtrlSetState($OKButton, $GUI_DISABLE)
- EndIf
- EndFunc
- ; Цикл для отображения окна
- While 1
- $iMsg = GUIGetMsg()
- Switch $iMsg
- Case $Office
- SetButtonState()
- Case $Office64
- SetButtonState()
- Case $OtherSoft
- SetButtonState()
- Case $OKButton ;при нажатии на кнопку Запустить
- If $Ping Then ;проверка доступности сервера
- If FileExists($ServerDir) Then ;проверка существования каталога с софтом на сервере
- ;Выбор диска назначения
- $sPath = FileSelectFolder('Выберите диск, на который будет скопировано ПО ', '', 3, @DesktopDir, $Window)
- If @error Or Not StringInStr(FileGetAttrib($sPath), "D") Then ContinueLoop
- ; продолжить цикл опроса от начала, если выбор отменён или объект не является папкой, например "Мой компьютер" или Корзина
- DirCreate($sPath & "Distr")
- $sPath = $sPath & "Distr\"
- ;отключение UAC и перезагрузки при установке обновлений
- RegWrite("HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU","NoAutoRebootWithLoggedOnUsers","REG_DWORD",1)
- RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System","EnableLUA","REG_DWORD",0)
- RunWait(@ComSpec & " /c " & "gpupdate", "")
- $startTime = _NowCalc() ;запуск отсчета времени начала установки ПО
- ;Если выбран х32 офис
- Office()
- ;Если выбран остальной софт
- OtherSoft()
- ;включение UAC и перезагрузку при установке обновлений
- RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU","NoAutoRebootWithLoggedOnUsers")
- RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System","EnableLUA","REG_DWORD",1)
- FileDelete("./1.jpg")
- RunWait(@ComSpec & " /c " & "gpupdate", "")
- $endTime = _NowCalc() ;Остановка счетчика времени
- $minutes = _DateDiff("n", $startTime, $endTime) ;подсчет прошедшего времени
- Local $hFile = FileOpen(@ScriptDir & "\LOG.log", 1) ; Открывает лог-файл в режиме записи.
- _FileWriteLog($hFile, $title) ; Записывает в лог-файл передавая дескриптор возвращённый функцией FileOpen.
- _FileWriteLog($hFile, "Каталог назначения: "&$sPath)
- _FileWriteLog($hFile, "Разрядность: " & @OSArch)
- _FileWriteLog($hFile, "ОС: " & @OSVersion)
- _FileWriteLog($hFile, "Затрачено времени на установку: " & $minutes&" минут(ы)")
- FileClose($hFile)
- GUISetFont(14, 20, 0, $font)
- GUICtrlCreateLabel("Готово!", 120, 100)
- GUICtrlSetColor(-1, 0x008800)
- GUISetFont(14, 20, 0, $font)
- Sleep(2000)
- SoundSetWaveVolume(50)
- SoundPlay(@WindowsDir & "\media\tada.wav", 1)
- GUIDelete()
- Exit
- Else
- GUISetFont(14, 20, 0, $font)
- GUICtrlCreateLabel("Каталог с ПО не существует!", 120, 100)
- GUICtrlSetColor(-1, 0xff0000)
- Sleep(2000)
- GUIDelete()
- Exit
- EndIf
- Else
- GUISetFont(14, 20, 0, $font)
- GUICtrlCreateLabel("Debian-server не доступен!", 120, 100)
- GUICtrlSetColor(-1, 0xff0000)
- Sleep(2000)
- Exit
- GUIDelete()
- EndIf ; Конец проверки доступности сервера
- Case $FileItem
- $sTextFile = $files & "ReadMe.txt"
- Run ( "notepad.exe " & $sTextFile)
- Case $GUI_EVENT_CLOSE
- ExitLoop
- Case $FileItem2
- ExitLoop
- Case $FileItem3
- GUISetFont(10, 600, 0, $font)
- $edit = GUICtrlCreateEdit(@TAB&$title & @CRLF& "Данный скрипт разработан с целью автоматической установки необходимого ПО."& @CRLF &"Дата начала разработки: 21.08.14" &@CRLF&"Разработал: Русинов Р.С." , 10, 10, 280, 190, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN + $ES_READONLY)
- GUICtrlSetColor(-1, 0x008800)
- Case $EXITButton
- FileDelete("1.jpg")
- ExitLoop
- Case $FileItem8
- $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)
- Case $BackButton
- If IsDeclared('edit')Then
- GUICtrlDelete($edit)
- EndIf
- if IsDeclared ('edit2') Then
- GUICtrlDelete($edit2)
- EndIf
- Case $FileItem6
- $change = $files & "changelog.txt"
- Run ( "notepad.exe " & $change)
- Case $FileItem7
- If FileExists ("\LOG.log") Then
- Run ( "notepad.exe LOG.log")
- Else
- MsgBox(0,$title,"Файл не создан!")
- EndIf
- EndSwitch
- WEnd
- Func Office()
- If GUICtrlRead ($Office) = $GUI_CHECKED Then
- _FileCopy($x86, $sPath)
- RunWait($sPath & $Offx32 & 'setup.exe /adminfile 32.MSP')
- Runwait($sPath & $Offx32 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe /os")
- FileDelete($sPath & $Offx32 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe")
- EndIf
- ;Если выбран x64 офис
- If GUICtrlRead ($Office64) = $GUI_CHECKED Then
- _FileCopy($x64, $sPath)
- RunWait($sPath & $Offx64 & 'setup.exe /adminfile 64.MSP')
- Runwait($sPath & $Offx64 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe /os")
- FileDelete($sPath & $Offx64 & "mini-KMS_Activator_v1.3_Office2010_VL_RUS.exe")
- EndIf
- EndFunc
- Func OtherSoft()
- If GUICtrlRead ($OtherSoft) = $GUI_CHECKED Then
- _FileCopy($ServerDir, $sPath)
- If @OSVersion = 'WIN_XP' Then ;если установлена XP, то выполнить этот код
- _FileCopy($ChocoXPsoft, $sPath)
- RunWait($sPath & 'NetFx20SP1_x86(Wind XP).exe /q')
- RunWait($sPath & 'PowerShell2.0.exe /q')
- RunWait($sPath & 'dotNetFx40_Full_x86_x64.exe /quiet /norestart')
- RunWait(@ComSpec & " /c " & $files & "installchoco.bat", "")
- EndIf
- If @OSVersion='WIN_7' Then ;Если установлена 7, то этот
- _FileCopy($ChocoWin7soft, sPath)
- RunWait($sPath & 'dotNetFx40_Full_x86_x64.exe /quiet /norestart')
- RunWait($sPath & 'NDP451-KB2858728-x86-x64-AllOS-ENU.exe /q /norestart')
- RunWait($sPath & 'Windows6.1-KB2819745-x86-MultiPkg.msu /quiet /norestart')
- RunWait(@ComSpec & " /c " & $files & "installchoco.bat", "")
- Else
- If @OSArch='X64' Then
- RunWait($sPath & "dotNetFx40_Full_x86_x64.exe /quiet /norestart")
- RunWait($sPath & "NDP451-KB2858728-x86-x64-AllOS-ENU.exe /q /norestart")
- RunWait($sPath & "Windows6.1-KB2819745-x64-MultiPkg.msu /quiet /norestart")
- RunWait(@ComSpec & " /c " & $Files & "installchoco.bat", "")
- EndIf
- EndIf
- RunWait($sPath & "aimp_3.55.1355.exe /AUTO")
- Runwait($sPath & "K-Lite\K-Lite_Codec_Pack_1065_Mega.exe /verysilent /norestart /LoadInf=.\klcp_mega_unattended.ini")
- _FileCopy($sPath & "totalcmd","C:\")
- RunWait($sPath & "WinRAR 4.20.exe -a4RAi")
- WinWaitClose("Установка WinRAR 4.20")
- EndIf
- EndFunc
- ;Функция копирования
- Func _FileCopy($fromFile,$tofile)
- Local $FOF_RESPOND_YES = 16
- Local $FOF_SIMPLEPROGRESS = 256
- $winShell = ObjCreate("shell.application")
- $winShell.namespace($tofile).CopyHere($fromFile,$FOF_RESPOND_YES)
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement