應用程式發佈偵測規則
應用程式發佈的套件偵測規則有助於判斷套件是否已安裝,因此不應再次安裝。
在應用程式發佈 > 應用程式目錄中設定偵測規則。 新增或編輯應用程式,然後選取套件索引標籤。
只有在處理套件的一開始會檢查偵測規則,因此偵測動作一律是建立器中的第一個項目 (如有使用)。 偵測規則會按照其定義順序執行。
重要: 如果任何偵測步驟解析為 true,則套件處理會停止,且裝置的應用程式狀態將顯示為合規。
以下是可用的偵測規則:
提供完整的檔案路徑與檔案名稱。 選取存在或不存在。
檔案版本資訊通常僅適用於可執行檔。 應用程式發佈會使用「檔案版本」值,而不是「產品版本」值。 提供完整的檔案路徑與檔案名稱。 運算子可以是小於或大於、等於或介於的變體。 如果您指定的檔案與路徑不存在,或者檔案沒有可剖析的版本,會傳回 false。
有關版本與比較運算子運作方式的詳細資訊,請參閱 Microsoft 的此篇文章。
提供完整的檔案路徑與檔案名稱。 指定檔案大小 (以位元組為單位)。 應用程式發佈會使用「大小」,而不是「磁碟上的大小」。如果您指定的檔案與路徑不存在,會傳回 false。
提供完整的檔案路徑與檔案名稱。 選取您要比較的 SHA-2 位元長度。 如果您指定的檔案與路徑不存在,會傳回 false。 您可以使用 PowerShell 產生雜湊摘要:
-
Get-FileHash -Algorithm SHA256 -Path C:\MyApp\myfile.exe
此規則只會檢查日期,不會檢查時間。 提供完整的檔案路徑與檔案名稱。 選取一個運算子,例如等於。 檔案日期必須以 UTC (國際標準時間) 指定,以與您地區設定的 mm/dd/yyyy 格式等同項目相符。 應用程式發佈會使用「已修改」日期,而不是「已建立」日期。 如果您指定的檔案與路徑不存在,會傳回 false。 您可以使用 PowerShell 擷取 UTC 格式的檔案日期:
-
(Get-Item C:\MyApp\myfile.exe).LastWriteTimeUtc
提供 MSI 產品代碼 GUID 並選取 MSI 已安裝還是未安裝。 使用 Microsoft 的 Orca 工具檢視 "ProductCode" GUID。 您也可以在以下登錄機碼下查看已安裝的 MSI GUID:
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
- HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
- HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall
提供您要偵測之機碼的登錄機碼資訊。
- 登錄版本: 視適當情況選取 32 位元或 64 位元,或者如果您想自動比對目標裝置使用的版本,可以選取系統。
- 根機碼: 選取包含您要偵測之機碼的根機碼,例如 HKEY_LOCAL_MACHINE。
- 機碼: 輸入您要偵測之登錄機碼名稱的完整路徑 (不包含您已經指定的根機碼)。
- 指定存在或不存在
提供您要偵測之值的登錄機碼與值資訊。 如果機碼或值不存在或者無法由使用者存取,規則會傳回 false (除非比較運算子為不存在)。
您必須指定值名稱,除非您要檢查「(預設值)」的值,在這種情況下必須將其保留空白。
進行版本比較時,比較運算元以及與登錄值相關聯的資料必須採用此處描述的版本格式。 如果其中任何一個項目並非如此,偵測規則 (與套件) 將產生錯誤。
有關版本與比較運算子運作方式的詳細資訊,請參閱 Microsoft 的此篇文章。
字串比較要區分大小寫。 如果登錄值包含非 REG_SZ (字串) 類型的資料,會將其轉換為字串,如下所示:
- REG_DWORD: 使用十進位形式 (如 regedit.exe 中所示)。
- REG_QWORD: 使用十進位形式 (如 regedit.exe 中所示)。
- REG_BINARY: 使用 regedit.exe 所用位元組對形式,但要大寫 (例如 "46 AA 6C 6B 65 6E")。
- REG_MULTI_SZ: 行與空格會串連在一起形成單行 (例如 "Line1 Line2 Line3")。
- REG_EXPAND_SZ: 所有環境變數都會展開。
偵測指令碼可以使用 PowerShell (不是 PowerShell Core) 或批次語法。 偵測是否成功取決於指令碼的數字結束代碼。 結束代碼 "0" (零) 等於 true。 其他任何結束代碼均視為 false。 結束代碼必須為數字,而非字詞 "True"。 使用內建指令碼編輯器建立指令碼。
使用內建指令碼編輯器建立指令碼,或者您可以使用選取檔案選項並瀏覽以尋找檔案。 您提供的檔案與路徑必須存在於目標系統上。 如果裝置上還沒有指令碼檔案,請使用下載檔案動作將其放置在此。 執行此操作時,會將下載的檔案放置在預設路徑中,您只需指定檔案名稱即可。
由於偵測規則會在其他套件動作之前執行,因此這會將偵測規則指令碼放置在應用程式安裝程序中的獨特階段。 您可以在此處執行更複雜的操作,例如執行自訂升級指令碼來尋找較舊的應用程式安裝,若找到它,則在繼續處理套件的其餘部分之前將其解除安裝。
偵測規則與動作記錄
應用程式發佈會針對部署到裝置的每個應用程式建立一個記錄檔。 此記錄中包含適用於每個偵測規則與其他套件動作的項目。 如果偵測規則未如預期運作,請使用記錄檔來協助確定原因。 記錄會儲存在每個裝置的此資料夾中:
- C:\ProgramData\Ivanti\Ivanti Cloud Agent\Logs\SWDApps
每個記錄檔名稱都包含套件 GUID。 如果您在應用程式目錄中編輯套件,可以在網頁瀏覽器 URL 中看到其套件 GUID。 這將協助您找到自己感興趣的記錄檔。
您可以從應用程式發佈 > 部署狀態頁面遠端檢視簡化的記錄。 尋找您要查看的裝置與套件,然後在右側選取動作功能表的檢視記錄選項。