2017年6月18日 星期日

AutoIt 軟體自動化安裝

在企業的環境中常常有需要自動化佈署軟體的需求,AutIt可以讓佈署更加便利且自動化,以下是介紹軟體佈署的做法:
程式碼的運作可以定義要執行軟體的數量並且一個接一個依序執行,這裡以安裝Windows 的修正程式為例。語法中   Global $sExecPath[2]   本行定義增加增加執行多少程式,本例為2個,若有多個程式要執行只要增加數字就可以了,本例程式碼是陣例的應用。
以下程式碼定義要執行的程式名稱及參數,要注意的是要佈署的程式和AutoIt程式要放在一起,若放在不同的路徑要定義清楚否則就會失敗。因為要透過自動化佈署所以參數要定義為自動且靜默( Silent install )

以下是要安裝的程式碼:

$sExecPath[0] = @ScriptDir & "wusa.exe X86-all-windows6.1-kb3170455-x86.msu" &" /log /quiet /norestart"
$sExecPath[1] = @ScriptDir & "wusa.exe Windows6.1-KB3192403-x86.msu" &" /log /quiet /promptrestart"



範例:




#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.14.2
Author: 奔騰兔開發誌
Date : 2017/06/16
Script Function: Script Demo
Description :陣列的簡單運用於軟體佈署
Notes:http://pentiumto.blogspot.tw/


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


#include


Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
Opt("TrayIconHide", 1) ;0=show, 1=hide tray icon

Dim $sNowtime=@YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN

;指定要執行的程式數量,並提供執行路徑

Global $sExecPath[2]

$sExecPath[0] = @ScriptDir & "wusa.exe X86-all-windows6.1-kb3170455-x86.msu" &" /log /quiet /norestart"
$sExecPath[1] = @ScriptDir & "wusa.exe Windows6.1-KB3192403-x86.msu" &" /log /quiet /promptrestart"




ExecuteMe() ;啟動程式


Func ExecuteMe()


For $element In $sExecPath
Sleep(2000)
ConsoleWrite($sNowtime & " [Info] " & @ScriptLineNumber & " " &$element&@CRLF)


Local $iPID = RunWait(@ComSpec & " /c " & $element, @ScriptDir, @SW_MINIMIZE )

ProcessWaitClose($iPID)

ConsoleWrite($sNowtime & " [Info] " & @ScriptLineNumber & " " & $iPID&@CRLF)
Next


EndFunc







沒有留言:

張貼留言