Overclock.net › Forums › Software, Programming and Coding › Coding and Programming › Auto-installer for software
New Posts  All Forums:Forum Nav:

Auto-installer for software

post #1 of 13
Thread Starter 
Hello OCN!

I have many pc's which need software like Adobe CS6, AutoCad 20XX, and Solidworks just to name a few, which need to be installed on different computers. I was curious to know if there is some kind of software or script I can run to have these applications install unattended, and have it input product keys for us.

Any help would be greatly appreciated.
    
CPUMotherboardGraphicsRAM
i7 3770k ASUS Sabertooth Z77 EVGA GTX 670 Classified 16 GB Corsair Vengeance 
Hard DriveOptical DriveOSMonitor
240GB Intel SSD | 500GB WD Caviar green LG BD-Rom Windows 7 Ultimate 64 Bit ASUS PB278Q "27 260x1440  
KeyboardPowerCaseMouse
HP Wireless Elite Antec 1200 HCP Corsair 600T Special Edition Logitech G700 
Mouse PadOtherOther
ALLSOP Wacom Intuos 5 Medium 3D Connexion Space Mouse Pro 
  hide details  
Reply
    
CPUMotherboardGraphicsRAM
i7 3770k ASUS Sabertooth Z77 EVGA GTX 670 Classified 16 GB Corsair Vengeance 
Hard DriveOptical DriveOSMonitor
240GB Intel SSD | 500GB WD Caviar green LG BD-Rom Windows 7 Ultimate 64 Bit ASUS PB278Q "27 260x1440  
KeyboardPowerCaseMouse
HP Wireless Elite Antec 1200 HCP Corsair 600T Special Edition Logitech G700 
Mouse PadOtherOther
ALLSOP Wacom Intuos 5 Medium 3D Connexion Space Mouse Pro 
  hide details  
Reply
post #2 of 13
I assume this is for windows? I know you could write an easy script with linux bash for ubuntu or etc that wouldnt take too much effort
Live Free or Die
(14 items)
 
 
CPUMotherboardGraphicsRAM
Intel Core i7 970 Asus Rampage 3 Extreme 3x MSI GTX 680 4gb 12gb GSkill Trident 2000mhz 
Hard DriveOptical DriveCoolingOS
Sandisk Extreme 128gb SSD (Boot), 6tb+ Storage ... LG Blu-Ray Burner Raystorm CPU Block > MD5 w/ EK Top > Swiftech M... Windows 7 Ultimate | Ubuntu Dual Boot 
MonitorKeyboardPowerCase
3x 23'' VG236H ASUS in 3D Surround + 42'' LCD TV Logitech G510 Coolermaster 1200w Gold+ LIAN LI PC-T60B Black 
MouseAudio
Corsair Vengeance M60 Beats Pro by Dre 
  hide details  
Reply
Live Free or Die
(14 items)
 
 
CPUMotherboardGraphicsRAM
Intel Core i7 970 Asus Rampage 3 Extreme 3x MSI GTX 680 4gb 12gb GSkill Trident 2000mhz 
Hard DriveOptical DriveCoolingOS
Sandisk Extreme 128gb SSD (Boot), 6tb+ Storage ... LG Blu-Ray Burner Raystorm CPU Block > MD5 w/ EK Top > Swiftech M... Windows 7 Ultimate | Ubuntu Dual Boot 
MonitorKeyboardPowerCase
3x 23'' VG236H ASUS in 3D Surround + 42'' LCD TV Logitech G510 Coolermaster 1200w Gold+ LIAN LI PC-T60B Black 
MouseAudio
Corsair Vengeance M60 Beats Pro by Dre 
  hide details  
Reply
post #3 of 13
Thread Starter 
Yeah it for windows 7
    
CPUMotherboardGraphicsRAM
i7 3770k ASUS Sabertooth Z77 EVGA GTX 670 Classified 16 GB Corsair Vengeance 
Hard DriveOptical DriveOSMonitor
240GB Intel SSD | 500GB WD Caviar green LG BD-Rom Windows 7 Ultimate 64 Bit ASUS PB278Q "27 260x1440  
KeyboardPowerCaseMouse
HP Wireless Elite Antec 1200 HCP Corsair 600T Special Edition Logitech G700 
Mouse PadOtherOther
ALLSOP Wacom Intuos 5 Medium 3D Connexion Space Mouse Pro 
  hide details  
Reply
    
CPUMotherboardGraphicsRAM
i7 3770k ASUS Sabertooth Z77 EVGA GTX 670 Classified 16 GB Corsair Vengeance 
Hard DriveOptical DriveOSMonitor
240GB Intel SSD | 500GB WD Caviar green LG BD-Rom Windows 7 Ultimate 64 Bit ASUS PB278Q "27 260x1440  
KeyboardPowerCaseMouse
HP Wireless Elite Antec 1200 HCP Corsair 600T Special Edition Logitech G700 
Mouse PadOtherOther
ALLSOP Wacom Intuos 5 Medium 3D Connexion Space Mouse Pro 
  hide details  
Reply
post #4 of 13
you could probably write a script or make an autoinstaller to install these programs automatically but you will still be prompted for CD keys so I doubt it would be as streamlined as you want. anything else would require a customly written program I imagine
Live Free or Die
(14 items)
 
 
CPUMotherboardGraphicsRAM
Intel Core i7 970 Asus Rampage 3 Extreme 3x MSI GTX 680 4gb 12gb GSkill Trident 2000mhz 
Hard DriveOptical DriveCoolingOS
Sandisk Extreme 128gb SSD (Boot), 6tb+ Storage ... LG Blu-Ray Burner Raystorm CPU Block > MD5 w/ EK Top > Swiftech M... Windows 7 Ultimate | Ubuntu Dual Boot 
MonitorKeyboardPowerCase
3x 23'' VG236H ASUS in 3D Surround + 42'' LCD TV Logitech G510 Coolermaster 1200w Gold+ LIAN LI PC-T60B Black 
MouseAudio
Corsair Vengeance M60 Beats Pro by Dre 
  hide details  
Reply
Live Free or Die
(14 items)
 
 
CPUMotherboardGraphicsRAM
Intel Core i7 970 Asus Rampage 3 Extreme 3x MSI GTX 680 4gb 12gb GSkill Trident 2000mhz 
Hard DriveOptical DriveCoolingOS
Sandisk Extreme 128gb SSD (Boot), 6tb+ Storage ... LG Blu-Ray Burner Raystorm CPU Block > MD5 w/ EK Top > Swiftech M... Windows 7 Ultimate | Ubuntu Dual Boot 
MonitorKeyboardPowerCase
3x 23'' VG236H ASUS in 3D Surround + 42'' LCD TV Logitech G510 Coolermaster 1200w Gold+ LIAN LI PC-T60B Black 
MouseAudio
Corsair Vengeance M60 Beats Pro by Dre 
  hide details  
Reply
post #5 of 13
You can do it with WSH as you can send key strokes using that. But it would be a very messy approach.

Some installers offer remote deployment and/or automation parameters though. But you'd have to look into that on a case by case scenario.
post #6 of 13
What you need is something to emulate user input. You can use a basic scripting language like AutoIt to accomplish this. It can also read keys from a file and enter them as well using Send() or ControlSend(). If your looking to deploy this at a commercial level, then I could be of assistance in coding you a deployment manager for unattended setups (if the price is right).
Main Rig
(14 items)
 
Linux Rig
(10 items)
 
 
CPUMotherboardGraphicsRAM
Athlon II x3 450 Biostar A880GZ PowerColor HD 4650 DDR3 4GB Samsung MV-3V2G3/US 
Hard DriveOptical DriveCoolingOS
Samsung 830 128GB (Pending) ASUS DRW-24B1ST Stock Windows 8 Enterprise x64 
KeyboardPowerCaseMouse
Logitech Classic 200 300w Hipro a1410n HP 1000 DPI 
Mouse PadAudio
Standard Realtek ALC662 
CPUMotherboardGraphicsRAM
AMD Sempron 3000+ ASUS A7V8X-LA VIA KM400A 2GB DDR 333 
Hard DriveOptical DriveCoolingOS
40GB Seagate Barracuda 7200.7 Samsung Writemaster Stock ASUS Ubuntu 12.04 
PowerCase
Hipro 250W SR1500NX 
  hide details  
Reply
Main Rig
(14 items)
 
Linux Rig
(10 items)
 
 
CPUMotherboardGraphicsRAM
Athlon II x3 450 Biostar A880GZ PowerColor HD 4650 DDR3 4GB Samsung MV-3V2G3/US 
Hard DriveOptical DriveCoolingOS
Samsung 830 128GB (Pending) ASUS DRW-24B1ST Stock Windows 8 Enterprise x64 
KeyboardPowerCaseMouse
Logitech Classic 200 300w Hipro a1410n HP 1000 DPI 
Mouse PadAudio
Standard Realtek ALC662 
CPUMotherboardGraphicsRAM
AMD Sempron 3000+ ASUS A7V8X-LA VIA KM400A 2GB DDR 333 
Hard DriveOptical DriveCoolingOS
40GB Seagate Barracuda 7200.7 Samsung Writemaster Stock ASUS Ubuntu 12.04 
PowerCase
Hipro 250W SR1500NX 
  hide details  
Reply
post #7 of 13
Quote:
Originally Posted by Warmonger View Post

What you need is something to emulate user input. You can use a basic scripting language like AutoIt to accomplish this. It can also read keys from a file and enter them as well using Send() or ControlSend(). If your looking to deploy this at a commercial level, then I could be of assistance in coding you a deployment manager for unattended setups (if the price is right).

From AutoIt's website:
Quote:
AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages.
Except all of that is possible in WSH which is already available (if not pre-installed) on all versions of Windows and is also BASIC-like (VBS).

I can't really see the point of installing a 3rd party tool to do something that Windows already supports. That is, unless, AutoIt is massively better at doing so. But most of the tools I've seen like this have been pretty so-so - given that which ever tool you use, it's still a nasty kludge.
Edited by Plan9 - 8/14/12 at 1:54am
post #8 of 13
Quote:
Originally Posted by Plan9 View Post

From AutoIt's website:
Except all of that is possible in WSH which is already available (if not pre-installed) on all versions of Windows and is also BASIC-like (VBS).
I can't really see the point of installing a 3rd party tool to do something that Windows already supports. That is, unless, AutoIt is massively better at doing so. But most of the tools I've seen like this have been pretty so-so - given that which ever tool you use, it's still a nasty kludge.
AutoIt is far superior then any other scripting language. Automating the installs with it will be easy to write, and also to add checks against certain criteria to make sure the install is going smoothly. You could even relay a message back to the main server letting you know what is going on at which workstation (errors, problems, etc). VB script is wonkey, and a mess to work with. Plus its very limited to what it can do, you cannot perform no wheres as many checks, calls, and functions that are capable with AutoIt. I mean that's the whole purpose of AutoIt is to automate tasks. I have coded things from database management tools, to game hacks in it for years. Its pretty useful for single thread workloads, and is about as limited as your imagination. To give you an example of how easy it is to use, here's all it takes to start notepad and type some text.
Code:
Run("notepad.exe")
Sleep(1000)
Send("Hello, this is some text!")

Edited by Warmonger - 8/14/12 at 3:33am
Main Rig
(14 items)
 
Linux Rig
(10 items)
 
 
CPUMotherboardGraphicsRAM
Athlon II x3 450 Biostar A880GZ PowerColor HD 4650 DDR3 4GB Samsung MV-3V2G3/US 
Hard DriveOptical DriveCoolingOS
Samsung 830 128GB (Pending) ASUS DRW-24B1ST Stock Windows 8 Enterprise x64 
KeyboardPowerCaseMouse
Logitech Classic 200 300w Hipro a1410n HP 1000 DPI 
Mouse PadAudio
Standard Realtek ALC662 
CPUMotherboardGraphicsRAM
AMD Sempron 3000+ ASUS A7V8X-LA VIA KM400A 2GB DDR 333 
Hard DriveOptical DriveCoolingOS
40GB Seagate Barracuda 7200.7 Samsung Writemaster Stock ASUS Ubuntu 12.04 
PowerCase
Hipro 250W SR1500NX 
  hide details  
Reply
Main Rig
(14 items)
 
Linux Rig
(10 items)
 
 
CPUMotherboardGraphicsRAM
Athlon II x3 450 Biostar A880GZ PowerColor HD 4650 DDR3 4GB Samsung MV-3V2G3/US 
Hard DriveOptical DriveCoolingOS
Samsung 830 128GB (Pending) ASUS DRW-24B1ST Stock Windows 8 Enterprise x64 
KeyboardPowerCaseMouse
Logitech Classic 200 300w Hipro a1410n HP 1000 DPI 
Mouse PadAudio
Standard Realtek ALC662 
CPUMotherboardGraphicsRAM
AMD Sempron 3000+ ASUS A7V8X-LA VIA KM400A 2GB DDR 333 
Hard DriveOptical DriveCoolingOS
40GB Seagate Barracuda 7200.7 Samsung Writemaster Stock ASUS Ubuntu 12.04 
PowerCase
Hipro 250W SR1500NX 
  hide details  
Reply
post #9 of 13
Quote:
Originally Posted by Warmonger View Post

AutoIt is far superior then any other scripting language. Automating the installs with it will be easy to write, and also to add checks against certain criteria to make sure the install is going smoothly. You could even relay a message back to the main server letting you know what is going on at which workstation (errors, problems, etc). VB script is wonkey, and a mess to work with. Plus its very limited to what it can do, you cannot perform no wheres as many checks, calls, and functions that are capable with AutoIt. I mean that's the whole purpose of AutoIt is to automate tasks. I have coded things from database management tools, to game hacks in it for years. Its pretty useful for single thread workloads, and is about as limited as your imagination. To give you an example of how easy it is to use, here's all it takes to start notepad and type some text.
Code:
Run("notepad.exe")
Sleep(1000)
Send("Hello, this is some text!")

VBS is designed to automate tasks too and can do everything you had listed - in fact your code is identical to VBS too (bar the missing is the object names):
Code:
Set objShell = WScript.CreateObject("WScript.Shell")
' ^ define once and then forget about it

objShell.Run("notepad.exe")
WScript.Sleep(1000)
objShell.Sendkeys("Hello, this is some text!")

Fair enough that AutoIt might be easier to learn amd/or have some more powerful APIs available (my exposure is only what's been posted in this thread so I'll have to take your word for that). But the example you've given wasn't really the best for comparison smile.gif
Edited by Plan9 - 8/14/12 at 4:31am
post #10 of 13
Quote:
Originally Posted by Plan9 View Post

VBS is designed to automate tasks too and can do everything you had listed - in fact your code is identical to VBS too (bar the missing is the object names):
Code:
Set objShell = WScript.CreateObject("WScript.Shell")
' ^ define once and then forget about it
objShell.Run("notepad.exe")
WScript.Sleep(1000)
objShell.Sendkeys("Hello, this is some text!")
Fair enough that AutoIt might be easier to learn amd/or have some more powerful APIs available (my exposure is only what's been posted in this thread so I'll have to take your word for that). But the example you've given wasn't really the best for comparison smile.gif
It's hard to explain how powerful something is when you haven't used it. I suggest downloading it and giving it a spin so you understand how easy and fast it is to make applications in the language. AutoIt is really becoming a (single threaded) programming language of its own. I could paste an example here of things I have wrote in it to give you an idea of what can be done with it. Such as here is the source for my old byte patcher.
Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.1
 Author:         myName

 Script Function:
        Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#NoTrayIcon
;~ Function Includes
#include <Array.au3>
#Include <String.au3>
#Include <File.au3>
;~ GUI Includes
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

;~ Check For File
If FileExists('Ebenezer.exe') = 0 Then
        MsgBox(16, 'Error', 'Cannot Locate File')
        Exit
EndIf

#Region
Opt('GUIOnEventMode', 1)
$Form1 = GUICreate('1298 SQL Login Changer', 298, 58)
$Group1 = GUICtrlCreateGroup('Login', 8, 0, 137, 49)
$Input1 = GUICtrlCreateInput('', 16, 16, 121, 21)
GUICtrlSetLimit(-1, 11)
GUICtrlCreateGroup('', -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup('Password', 152, 0, 137, 49)
$Input2 = GUICtrlCreateInput('', 160, 16, 121, 21)
GUICtrlSetLimit(-1, 15)
GUICtrlCreateGroup('', -99, -99, 1, 1)
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, '_Write_Data')
#EndRegion

;~ Open File For Read/Write In Binary Mode
Global $File = FileOpen('Ebenezer.exe', 17)
;~ Login Pos Array
Global $Login[11]
$Login[0] = '25F0EC'
$Login[1] = '25F0ED'
$Login[2] = '25F0EE'
$Login[3] = '25F0EF'
$Login[4] = '25F0F0'
$Login[5] = '25F0F1'
$Login[6] = '25F0F2'
$Login[7] = '25F0F3'
$Login[8] = '25F0F4'
$Login[9] = '25F0F5'
$Login[10] = '25F0F6'
;~ Password Pos Array
Global $Pass[15]
$Pass[0] = '25F0DC'
$Pass[1] = '25F0DD'
$Pass[2] = '25F0DE'
$Pass[3] = '25F0DF'
$Pass[4] = '25F0E0'
$Pass[5] = '25F0E1'
$Pass[6] = '25F0E2'
$Pass[7] = '25F0E3'
$Pass[8] = '25F0E4'
$Pass[9] = '25F0E5'
$Pass[10] = '25F0E6'
$Pass[11] = '25F0E7'
$Pass[12] = '25F0E8'
$Pass[13] = '25F0E9'
$Pass[14] = '25F0EA'

;~ Get Current Info At Runtime
_Get_Data()

While 1 = 1
        Sleep(1000)
WEnd

Func _Get_Data()
        ;----------------------------------------
        ;                       11 Limit Login                          -
        ;----------------------------------------
        Local $Array[1]
        ;~ Read Data From File
        For $x = 1 To 11
                FileSetPos($File, Dec($Login[$x - 1]), $FILE_BEGIN)
                _ArrayAdd($Array, StringTrimLeft(FileRead($File, 1), 2))
        Next
        ;~ Print Data In GUI
        GUICtrlSetData($Input1, _HexToString($Array[1] & $Array[2] & $Array[3] & $Array[4] & $Array[5] & $Array[6] & $Array[7] & $Array[8] & $Array[9] & $Array[10] & $Array[11]))
        ;----------------------------------------
        ;                       15 Limit Password                       -
        ;----------------------------------------
        Local $Array[1]
        ;~ Read Data From File
        For $x = 1 To 15
                FileSetPos($File, Dec($Pass[$x - 1]), $FILE_BEGIN)
                _ArrayAdd($Array, StringTrimLeft(FileRead($File, 1), 2))
        Next
        ;~ Print Data In GUI
        GUICtrlSetData($Input2, _HexToString($Array[1] & $Array[2] & $Array[3] & $Array[4] & $Array[5] & $Array[6] & $Array[7] & $Array[8] & $Array[9] & $Array[10] & $Array[11] & $Array[12] & $Array[13] & $Array[14] & $Array[15]))
EndFunc

Func _Write_Data()
        ;----------------------------------------
        ;                       11 Limit Login                          -
        ;----------------------------------------
        ;~ Read Data From GUI
        $Data = StringSplit(GUICtrlRead($Input1), '')
        ;~ Write New Data
        For $x = 1 To $Data[0]
                FileSetPos($File, Dec($Login[$x - 1]), $FILE_BEGIN)
                FileWrite($File, $Data[$x])
        Next
        ;~ Fill Leftovers With 00
        If $Data[0] < 11 Then
                For $z = $Data[0] + 1 To 11
                        FileSetPos($File, Dec($Login[$z - 1]), $FILE_BEGIN)
                        FileWrite($File, Chr(0))
                Next
        EndIf
        ;----------------------------------------
        ;                       15 Limit Password                       -
        ;----------------------------------------
        ;~ Read Data From GUI
        $Data = StringSplit(GUICtrlRead($Input2), '')
        ;~ Write New Data
        For $x = 1 To $Data[0]
                FileSetPos($File, Dec($Pass[$x - 1]), $FILE_BEGIN)
                FileWrite($File, $Data[$x])
        Next
        ;~ Fill Leftovers With 00
        If $Data[0] < 15 Then
                For $z = $Data[0] + 1 To 15
                        FileSetPos($File, Dec($Pass[$z - 1]), $FILE_BEGIN)
                        FileWrite($File, Chr(0))
                Next
        EndIf
        ;~ Exit
        Exit
EndFunc

Like said, it's hard to explain how much can be done in it. If the language itself doesn't support what your looking to do, there is an entire database of UDF's you can use. Plus you can call functions in dynamic linked library's for even further capabilities (this is usually done for tasks that require speed). The possibilities are endless, plus VB Script doesn't support the same checks. If something goes horribly wrong during the mass deployment you're going to wish you had proper error handling to fall back on.
Main Rig
(14 items)
 
Linux Rig
(10 items)
 
 
CPUMotherboardGraphicsRAM
Athlon II x3 450 Biostar A880GZ PowerColor HD 4650 DDR3 4GB Samsung MV-3V2G3/US 
Hard DriveOptical DriveCoolingOS
Samsung 830 128GB (Pending) ASUS DRW-24B1ST Stock Windows 8 Enterprise x64 
KeyboardPowerCaseMouse
Logitech Classic 200 300w Hipro a1410n HP 1000 DPI 
Mouse PadAudio
Standard Realtek ALC662 
CPUMotherboardGraphicsRAM
AMD Sempron 3000+ ASUS A7V8X-LA VIA KM400A 2GB DDR 333 
Hard DriveOptical DriveCoolingOS
40GB Seagate Barracuda 7200.7 Samsung Writemaster Stock ASUS Ubuntu 12.04 
PowerCase
Hipro 250W SR1500NX 
  hide details  
Reply
Main Rig
(14 items)
 
Linux Rig
(10 items)
 
 
CPUMotherboardGraphicsRAM
Athlon II x3 450 Biostar A880GZ PowerColor HD 4650 DDR3 4GB Samsung MV-3V2G3/US 
Hard DriveOptical DriveCoolingOS
Samsung 830 128GB (Pending) ASUS DRW-24B1ST Stock Windows 8 Enterprise x64 
KeyboardPowerCaseMouse
Logitech Classic 200 300w Hipro a1410n HP 1000 DPI 
Mouse PadAudio
Standard Realtek ALC662 
CPUMotherboardGraphicsRAM
AMD Sempron 3000+ ASUS A7V8X-LA VIA KM400A 2GB DDR 333 
Hard DriveOptical DriveCoolingOS
40GB Seagate Barracuda 7200.7 Samsung Writemaster Stock ASUS Ubuntu 12.04 
PowerCase
Hipro 250W SR1500NX 
  hide details  
Reply
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Coding and Programming
Overclock.net › Forums › Software, Programming and Coding › Coding and Programming › Auto-installer for software