應用程式發佈套件動作和偵測規則
套件動作定義應用程式發佈會如何部署您的套件。 套件偵測規則可協助應用程式發佈決定是否應將應用程式部署到裝置。
套件動作
在應用程式發佈 > 應用程式目錄中設定套件動作。 新增或編輯應用程式,然後選取套件索引標籤。 將要使用的動作拖曳到建立器樹狀結構中。 在建立器樹狀結構中選取一個動作進行設定。
可用的套件動作包括:
這些規則有助於判斷應用程式是否已安裝,因此不應再次安裝。
重要: 如果任何偵測步驟解析為 true,則套件處理會停止,且裝置的應用程式狀態將顯示為合規。
如需可用偵測規則的詳細資訊,請參閱套件偵測規則。
: 將檔案下載到 Ivanti 應用程式發佈預設工作路徑:
C:\Program Data\Ivanti\Ivanti Cloud Agent\Agent\SWD\working
除非您另外指定,否則任何接受檔案路徑的動作都將採用此路徑。 在執行每個套件前後都會清除此資料夾。
如有需要,您可以在此處指定多個檔案,並且可以有多個下載檔案動作。 檔案可以託管於任何不需要驗證且您要部署至其中的用戶端可存取的 HTTP(S) 位置。
雲端檔案總管
使用選擇檔案按鈕可開啟雲端檔案總管,在這裡可從您組織的 Microsoft Azure Blob 儲存空間選擇檔案。 Ivanti Neurons 並未隨附 Azure 儲存體帳戶。 如需如何在 Azure 中建立儲存體容器的相關資訊,請參閱此 Microsoft 文章。
使用雲端檔案總管之前,您必須在管理員 > 認證中新增 Azure Blob 儲存空間認證。 如需詳細資訊,請參閱憑證。 對於 Azure,建議您在 Ivanti Neurons 中為 Azure key1 和 Azure key2 建立認證,以允許 Azure 金鑰輪替。 然後,您可以在雲端檔案總管中選取所要的帳戶。
這些認證用於填入資料夾和檔案清單,以便下載檔案動作可以取得所選檔案的共用存取簽章 URL (Microsoft Azure)。 用戶端不會使用這些認證。
新增認證後,您可以在雲端檔案總管中選取您的雲端保存帳戶和容器 。 容器瀏覽器會顯示保存在其中的檔案和資料夾。 透過選取一或多個檔案旁邊的核取方塊,然後選取新增按鈕來新增一或多個檔案。 然後,新增之檔案的 URL 會顯示在下載檔案動作屬性中。
雲端保存提供者要求產生的 URL 權杖需具有到期時間。 應用程式發佈會將權杖到期時間設定為七天,並每五天更新一次權杖,以防目標用戶端失去存取權限。
檢視 Azure Blob 保存空間時,顯示的上傳按鈕可供您瀏覽與上傳所選取的檔案。 上傳的檔案會放置在您於檔案總管選取的資料夾中。 大型檔案可能需要一段時間才能完成上傳,因此您可能無法立即在檔案總管中看到上傳的檔案。
按前置詞篩選文字方塊中的雲端檔案篩選功能受 Microsoft API 限制。節選器僅限於您選取的資料夾中運作,不包括子資料夾。 您輸入的篩選文字必須與檔案名稱 (區分大小寫) 完全相符,並以想要之檔案名稱的第一個字元開頭。 不必包含完整的檔案名稱,只需包含初始字元即可。
SHA256 雜湊值
下載檔案選項還包括選用的雜湊值欄位。 如果您提供雜湊值,應用程式發佈將會驗證所下載檔案的雜湊值。 如果值不相符,應用程式發佈將會刪除下載的檔案並停止發佈。 如果您希望應用程式發佈使用像是對等下載等進階發佈技術,則必須提供雜湊值。
單純的執行動作可讓您指定要執行的檔案、命令列,以及要用來執行安裝程式的使用者身分。 執行 MSI 與執行 MSIX 動作可讓您選取 MSI、MSP 和 MSIX 專屬的操作和顯示選項。
包括建立資料夾;移動、複製和刪除檔案;壓縮或解壓縮。
根據裝置的代理程式原則將裝置重新開機。 當應用程式需要重新開機時,在裝置重新開機之前,無法在該裝置上安裝任何其他應用程式。
建立或刪除登錄機碼。 設定或刪除登錄值。
執行批次檔或 PowerShell 指令碼。 如果缺少 PowerShell Core 選項,則不會安裝 PowerShell Core。 自動選項會先嘗試 PowerShell Core,如果未安裝,則會切換回 PowerShell。此動作內建了指令碼編輯器。 您需要將指令碼程式碼新增至此編輯器中。
依照您指定的秒數暫停套件的執行。 如果較早的動作需要額外的時間才能完成,可使用此項。
套件偵測規則
套件偵測規則有助於判斷套件是否已安裝,因此不應再次安裝。
在應用程式發佈 > 應用程式目錄中設定套件偵測規則。 新增或編輯應用程式,然後選取套件索引標籤。 將偵測預先部署動作新增到建立器樹狀結構中,並選取其進行設定。
只有在處理套件的一開始會檢查偵測規則,因此偵測動作一律是建立器中的第一個項目 (如有使用)。 偵測規則會按照其定義順序執行。
重要: 如果任何偵測步驟解析為 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。 這將協助您找到自己感興趣的記錄檔。
您可以從應用程式發佈 > 部署狀態頁面遠端檢視簡化的記錄。 尋找您要查看的裝置與套件,然後在右側選取動作功能表的檢視記錄選項。