OCS Inventory Agent 跨世代自動化部署實戰:從 2.4 到 2.11.1 的 BAT 腳本全解析
在企業內部進行資產管理時,OCS Inventory 是一款非常經典且強大的開源工具。然而,隨著作業系統從 Windows 7 演進到 Windows 10/11,OCS Agent 本身的軟體架構也經歷了巨大的改變。如果直接拿舊版的 .bat 部署腳本去套用新版 Agent,往往會遇到路徑找不到、TAG 標籤無法顯示(永遠顯示 NA)等痛點。
本文特別整理了 OCS Inventory Agent 2.4 版本 與最新 2.11.1 版本(含 x86 與 x64) 的全自動部署腳本,並詳細拆解它們在底層機制上的核心差異,提供給有需要的 IT 夥伴參考留存。
一、 跨世代 OCS Agent 核心機制的關鍵轉變
在編寫自動化腳本前,我們必須先了解 2.4 版本與 2.11.x 版本之間的重大物理改變,這也是導致舊腳本在新系統失效的主因:
| 核心維度 | 2.4.x 黃金版本 (適用 Win7) | 2.11.x 最新版本 (適用 Win10/Win11) |
|---|---|---|
| 預設安裝路徑 | 帶有 NG 字眼:C:\Program Files\OCS Inventory NG\Agent\ |
徹底移除 NG:C:\Program Files\OCS Inventory Agent\ |
| 強制資產上報參數 | 使用經典的 /G 參數 |
舊參數失效,全面更換為 /SEND |
| TAG 標籤儲存位置 | 主程式目錄下的 admininfo.conf |
搬遷至系統隱藏目錄:C:\ProgramData\OCS Inventory Agent\OCSInventory\admininfo.conf |
| 原生 /TAG 參數支援 | 完全支援,安裝時可直接寫入設定 | 完全支援,且會自動處理新版隱藏路徑的寫入 |
註:過去在 2.1.1.1(XP時代)嘗試透過操作 Windows 註冊表(Registry)來強灌 TAG 的作法,在 2.4+ 以上版本已無必要,全面改用官方內建的原生命令更為穩定安全。
二、 實戰部署腳本分享
以下腳本均採互動式設計,執行時會提示維修人員輸入(TAG),隨後自動完成靜默安裝、配置並強制執行第一次數據推播。請務必以系統管理員身分執行。
1. OCS Agent 2.4 版本專用腳本 (適用於 Windows 7 x86 環境)
@echo off
cd /d "%~dp0"
cls
echo ===================================================
echo [1/3] Please enter the English TAG for this Win7 PC
echo ===================================================
echo Example: Taipei , Huading , HQ_Office
echo.
set /p USER_TAG="Enter TAG and press Enter: "
cls
echo ===================================================
echo [2/3] Installing OCS Agent 2.4 (Win7 x86 Native TAG)...
echo ===================================================
:: 執行 2.4 版 32位元靜默安裝 (請自行替換為你的伺服器位置)
OCS-Windows-Agent-Setup-x86.exe /S /NOW /SERVER=http://your-ocs-server-ip:port/ocsinventory /TAG=%USER_TAG%
echo ===================================================
echo [3/3] Waiting for files and forcing deployment...
echo ===================================================
:: 延遲 4 秒確保安裝與 admininfo.conf 檔案寫入完成
ping 127.0.0.1 -n 5 >nul
:: 2.4 版標準 32 位元實體路徑檢查 (帶有 NG 字眼)
if exist "C:\Program Files\OCS Inventory NG\Agent\OCSInventory.exe" (
echo Executing from Program Files...
"C:\Program Files\OCS Inventory NG\Agent\OCSInventory.exe" /G
goto END
)
if exist "C:\Program Files (x86)\OCS Inventory NG\Agent\OCSInventory.exe" (
echo Executing from Program Files (x86)...
"C:\Program Files (x86)\OCS Inventory NG\Agent\OCSInventory.exe" /G
goto END
)
echo [ERROR] OCSInventory.exe not found!
:END
echo ===================================================
echo Win7 x86 Deployment completed! TAG set to: %USER_TAG%
echo ===================================================
pause
2. OCS Agent 2.11.1 版本專用腳本 (適用於 Windows 10/11 x64 環境)
@echo off
cd /d "%~dp0"
cls
echo ===================================================
echo [1/3] Please enter the English TAG for this Win10 PC
echo ===================================================
echo Example: Taipei , Huading , HQ_Office
echo.
set /p USER_TAG="Enter TAG and press Enter: "
cls
echo ===================================================
echo [2/3] Installing OCS Agent 2.11.1 x64...
echo ===================================================
:: 利用 2.11 原生支援的 /TAG 參數,會自動將 TAG 寫入正確的 ProgramData 中
OCS-Windows-Agent-Setup-x64.exe /S /NOW /SERVER=http://your-ocs-server-ip:port/ocsinventory /TAG=%USER_TAG%
echo ===================================================
echo [3/3] Waiting for files and forcing 2.11.1 deployment...
echo ===================================================
:: 延遲 5 秒,確保最新版服務與設定檔順利建立完畢
ping 127.0.0.1 -n 6 >nul
:: 檢查最新版 2.11.1 的標準 64 位元實體路徑 (已無 NG 字眼)
if exist "C:\Program Files\OCS Inventory Agent\OCSInventory.exe" (
echo Executing from 2.11.1 standard path...
:: 最新版強制上報參數已更換為 /SEND
"C:\Program Files\OCS Inventory Agent\OCSInventory.exe" /SEND
goto END
)
echo [ERROR] 2.11.1 OCSInventory.exe could not be found!
:END
echo ===================================================
echo Deployment completed! TAG successfully set to: %USER_TAG%
echo ===================================================
pause
3. OCS Agent 2.11.1 版本專用腳本 (適用於 Windows 10/11 x86 環境)
此腳本加入了雙重路徑偵測,能自動相容「純 32 位元作業系統」與「64 位元作業系統執行 32 位元 Agent」的環境。
@echo off
cd /d "%~dp0"
cls
echo ===================================================
echo [1/3] Please enter the English TAG for this PC
echo ===================================================
echo Example: Taipei , Huading , HQ_Office
echo.
set /p USER_TAG="Enter TAG and press Enter: "
cls
echo ===================================================
echo [2/3] Installing OCS Agent 2.11.1 x86...
echo ===================================================
OCS-Windows-Agent-Setup-x86.exe /S /NOW /SERVER=http://your-ocs-server-ip:port/ocsinventory /TAG=%USER_TAG%
echo ===================================================
echo [3/3] Waiting for files and forcing 2.11.1 x86 deployment...
echo ===================================================
:: 延遲 5 秒,確保 32位元服務與設定檔順利建立
ping 127.0.0.1 -n 6 >nul
:: 檢查路徑 1:安裝在 64位元系統上的 32位元 Agent 預設路徑(無 NG 字眼)
if exist "C:\Program Files (x86)\OCS Inventory Agent\OCSInventory.exe" (
echo Executing from Program Files (x86)...
"C:\Program Files (x86)\OCS Inventory Agent\OCSInventory.exe" /SEND
goto END
)
:: 檢查路徑 2:安裝在純 32位元系統上的 32位元 Agent 預設路徑(無 NG 字眼)
if exist "C:\Program Files\OCS Inventory Agent\OCSInventory.exe" (
echo Executing from Program Files...
"C:\Program Files\OCS Inventory Agent\OCSInventory.exe" /SEND
goto END
)
echo [ERROR] 2.11.1 x86 OCSInventory.exe could not be found!
:END
echo ===================================================
echo Deployment completed! TAG successfully set to: %USER_TAG%
echo ===================================================
pause
三、 運維踩坑與佈署心得總結
- Server 端單向鎖定機制:若測試時發現修改本地
admininfo.conf檔案後,網頁端 TAG 依然顽固顯示舊數據或 NA,通常是因為該台電腦在 OCS Server 端已有舊紀錄並被資料庫鎖定。最佳解決辦法是先至 OCS Server 網頁端將該台電腦紀錄「Delete 刪除」,再行執行腳本報到。 - 權限問題:在 Windows 10/11 系統中,腳本涉及寫入
ProgramData及引發背景服務,必須按右鍵選擇「以系統管理員身分執行」,否則靜默安裝雖能結束,但後續的設定與強制推播指令將會被系統 UAC 直接攔截。 - WinRAR 打包 SFX 派發:驗證單機無誤後,可選取安裝包
.exe與編好的.bat,透過 WinRAR 壓縮並勾選「建立自解壓縮檔 (SFX)」。在高級設定中設定解壓路徑為%temp%,並設定解壓後執行.bat,最後勾選「請求系統管理員權限」,即可封裝成一個極其便利的單檔綠色安裝包,供大規模派發使用。