大量佈署軟體的固定套路:先移乾淨、再靜默安裝,以及 Teams 汰換最容易漏掉的一步
大量佈署軟體,我的固定套路是三步:先把舊版移乾淨 → 靜默安裝 → 確保新使用者登入時也拿得到。
Teams 汰換:最容易漏掉的一步
舊版 Teams 是「每個使用者各裝一份」,裝在使用者自己的 %LOCALAPPDATA%\Microsoft\Teams 底下;新版則是 Store 版。兩種要分別處理,只移其中一種不會生效。
最容易漏掉的是 Teams Machine-Wide Installer:它會在新使用者第一次登入時,自動幫他裝回舊版 Teams。如果沒把它一起移掉,你清了一輪,新進員工一登入,舊版又回來了。
靜默安裝的參數
- winget:
winget install --silent --accept-package-agreements --accept-source-agreements <套件>。要注意它在系統帳號(SYSTEM)環境下執行有限制,而且依賴 Microsoft Store;如果公司另外用 GPO 封鎖了 Store,兩邊會打架,部署前要先想清楚。 - Inno Setup 打包的安裝程式:
/SILENT(顯示進度條)、/VERYSILENT(完全不顯示)、/NORESTART、/DIR="路徑"。 - NSIS 打包的安裝程式:參數不一樣,是
/S(大寫,靜默安裝)和/D=路徑(必須放在最後、路徑不加引號)。先確認安裝程式是哪一種打包工具做的,參數用錯會直接跳出安裝畫面。 - 自己做封裝:可以用安裝監控工具,比對安裝前後的檔案和登錄檔差異,再做成自訂的安裝包。
兩個常見的坑
- 批次檔連續呼叫另一個批次檔要用
call:不然第一個跑完就不會回來了。另外,exit /b 0只會結束目前這個批次檔,不會把呼叫它的那個也關掉。 - PowerShell 腳本跑不起來:先查
Get-ExecutionPolicy -List。透過 GPO 部署時,用powershell -ExecutionPolicy Bypass -File 腳本.ps1單次放行,不要把整個網域的執行原則改成 Unrestricted。執行原則本來就不是嚴格的資安防線,但它能擋掉使用者誤點來路不明的腳本,整個打開就等於拆掉這道防呆。要注意:如果網域已經用 GPO 設定了執行原則,GPO 的優先順序比命令列高,-ExecutionPolicy Bypass會沒有作用,這時要改用簽章過的腳本,或調整那條 GPO。
資料來源
- 本人軟體佈署與批次腳本筆記(2025-02 起)
封面圖由 AI 生成。
留言討論
留言載入中…
留言會公開顯示,請遵守留言規範;違規留言會被移除。