iT邦幫忙

0

用bat自動執行安裝軟體,不用手動按下一步

  • 分享至 

  • xImage

想請問各位前輩,小弟想透過用GPO指派封裝的msi檔案到用戶,並用bat批次檔完全自動安裝都不用手按下一步這方法可行嗎?

https://ithelp.ithome.com.tw/upload/images/20190311/20112996neR5H5LenE.png

這是小弟編寫的bat,在自動執行line.msi時候會跳出,要我輸入系統管理員帳號密碼
小弟想請教各位大大,要如何編寫bat可以自動輸入帳號密碼和自動下一步,我爬文大部分都是介紹一些指令和參數,沒有看到類似的教學。

看更多先前的討論...收起先前的討論...
wt6768 iT邦新手 4 級 ‧ 2019-03-11 15:20:16 檢舉
關鍵字:autoit 請參考看看
froce iT邦大師 1 級 ‧ 2019-03-11 15:38:18 檢舉
msi通常可以靠GPO直接派送安裝,會在開機前安裝好。
何必自己寫bat?
直接 start line.msi 怪怪的吧
建議先執行 msiexec /? 看看
新二君 iT邦新手 2 級 ‧ 2019-03-11 20:12:52 檢舉
Mai exec 預設安裝參數不用下一步,但輸入帳密自動我也很想了解。
runas /user:Administrator /password "filename" 這樣勒
masonjack iT邦新手 5 級 ‧ 2019-03-13 17:04:07 檢舉
runas /user:Administrator /password "filename" 這個可以耶!沒有跳出要我輸入系統管理員帳號密碼
那我想要繼續自動下一步一直到安裝完成都不用手點的話
runas next 這樣可以嗎
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
echochio
iT邦高手 1 級 ‧ 2019-03-12 09:33:30
  1. 用 vbscript 這樣使用者看不到 GPO指派的運行 vbscript
    範例
WScript.Sleep 5*60*1000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.currentdirectory="c:\"
WshShell.Run "\\192.168.1.1\WSUS\wsus-client.bat", 0
Set WshShell = Nothing
  1. 關於msi 安裝程式 可參考adobe 安裝 flash 官方建議GPO 派送方式
首先至adobe官網下載msi封裝檔,並建立一批次檔案,內容如下:

msiexec /package \\192.168.1.1\flash\install_flash_player_11_active_x_32bit.msi /quiet

使用msiexec是避免直接安裝檔案時會跳出安全性警告,並採安靜模式且不需使用者互動。
  1. 如真的要用 runas 到 Administrator , 這要輸入密碼 ....
    在網路上找到 ...還是建議用 vbscript
set WshShell = CreateObject("WScript.Shell")
WshShell.Run "runas /user:AdminAccount ""d:\StopNIC.bat"""
WScript.Sleep 100
WshShell.Sendkeys "password~"
0
thwu
iT邦新手 4 級 ‧ 2019-03-12 11:02:22

若樓主的目的是讓使用者完全不需操作,那可以參考以指令方式執行 MSI 安裝,並搭配靜默模式(no UI)

msiexec /q

網路上有很多詳細的 msiexec 指令說明

如果想要在執行 MSI 安裝時,不再提示輸入帳號密碼,只要以 "有足夠權限的帳號" 來啟動安裝(執行指令)即可。
但因為 bat 是明碼的,在裡面寫帳號密碼有外洩的可能。
我的經驗是使用上面大大提過的 AutoIt,它也可以撰寫執行 windows command,同時可以封裝成 .exe 檔,如此就無法得知裡面的帳號密碼了。

如果有需要,也可以同時將 MSI 檔封裝在 .exe 裡,跟著 AD 一同發佈出去。
如此也不用擔心 MSI 檔路徑被得知

推薦樓主去研究 AutoIt,學好它可以輕鬆達成很多自動化作業。
例如:希望使用者讓電腦重開機,但又不能強制執行,於是刻一個假的 Windows 重開機視窗,定時跳出來提醒使用者 :P

看更多先前的回應...收起先前的回應...
masonjack iT邦新手 5 級 ‧ 2019-03-12 14:07:47 檢舉

非常感謝各位前輩的回答,小弟我來去試試

masonjack iT邦新手 5 級 ‧ 2019-03-13 09:09:58 檢舉

想請問大大一下,小弟剛入行,powershell和Autolt 那個比較好用
實用性較高

thwu iT邦新手 4 級 ‧ 2019-03-13 11:45:54 檢舉

我以前的經驗是
能用 powershell 下的就用 powershell,但還是幾乎用 AutoIt 來封裝 (AutoIt裡也可以下 powershell 指令)。畢竟 powershell 也是明碼 script,有機會被使用者看到下的指令在當時是不被允許的。
AutoIt 提供的函式能簡化很多步驟,所以當時使用的頻率遠多於 powershell。(也有因為我對 powershell 不太熟 :P)

masonjack iT邦新手 5 級 ‧ 2019-03-14 13:08:21 檢舉

謝謝 thwu 大大的回答

我要發表回答

立即登入回答