Neurons Workflow Builder
Ivanti Neurons (功能) 已被棄用,取而代之的是新的 Ivanti Neurons 機器人體驗。 請參閱遷移到 Neurons 機器人瞭解更多資訊。
Neurons 工作流程包括一系列相連接的階段,專為自動處理各種業務流程而設計並可用於搜尋、提供深入資料,以及採取行動。 您可以使用 Neurons Builder 從頭開始建立自訂 Neurons 工作流程,或編輯預先建立的工作流程,依照您的業務需求進行自訂。
Neuron 設定
使用 Neurons 設定 面板設定 Neurons 工作流程。可用的設定會依 Neuron 的類型而定。
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
名稱:: Neuron 的名稱。
類別: 從下拉式清單選取類別: 合規性、使用者生產力、企業永續能力或資源最佳化。
目標群組: 選取自訂或所有裝置。 若為自訂,可在所有可用的公用裝置群組的下拉式清單中選取。 裝置群組是在裝置 > 裝置群組中設定。
狀態組態: 在非使用中和使用中之間切換狀態。 當 Neuron 設為使用中狀態時,排程設定將變為可用,使您可以決定要執行 Neuron 的時間。 填妥以下內容:
- 重複: 每天或每週
- 頻率: 分鐘或小時
- 間隔: 若為小時,則該值範圍為 1 到 24。 若為分鐘,則為 30 到 55 分鐘 (以 5 分鐘為間隔)。
- 開始: 日期和時間
- 結束: 日期和時間
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
名稱:: Neuron 的名稱。
狀態組態: 在已取消發佈和已發佈之間切換狀態。 當 Neuron 設為已發佈時,會出現「動作顯示名稱」,使您可以為動作命名。 這將會顯示在裝置檢視的「動作」面板中。
我的階段
左側的我的階段面板包含所有的預設和已安裝階段。 以下是不同的階段類別:
其他查詢和動作可在程式庫中找到,並可新增至我的階段。 如需程式庫的詳細資訊,請前往 Neurons (功能)。
- 查詢: 用於顯示及篩選符合指定準則的裝置資訊。 例如,顯示可用磁碟空間低於 10% 的裝置。 此查詢階段的輸出和內容可在 Neurons 工作流程中傳遞給後續階段。 每個查詢包含一個設定,以便在未傳回結果時控制 Neuron 的行為。 系統預設會選取只有傳回結果時,Neuron 才會繼續。 這表示,若線上裝置未傳回任何結果,Neurons 工作流程本身並不會有進一步的動作。 若已清除此核取方塊,則 Neuron 工作流程將會繼續執行;例如,一旦確定有問題未被發現時就發出警示,類似這樣的情況就相當實用。
- 動作: 動作階段可利用自動化網狀架構在使用者裝置上執行像是傳送電子郵件或執行自訂 PowerShell 等動作。 某些動作可使用變數。 如需詳細資訊,請參閱變數。
- 一般: 包括:
- 篩選結果: 依節選器屬性的定義篩選擷取的查詢資訊。 如需詳細資訊,請參閱節選器。
- Neuron 警示: 用於在 Neurons 首頁產生警示。
- 自訂: 利用 Bash 動作、自訂 JavaScript、PowerShell 動作和查詢以及 osquery 來建立自訂的動作和查詢。 在程式庫 > 階段編輯器 (若已安裝) 中建立的任何自訂階段都會顯示於此處。
進階 Neurons 工作流程範例中提供了如何使用 osquery 和 PowerShell 的範例。
工作區
將階段拖曳到工作區以建置 Neurons 工作流程。 按一下階段以顯示下列選項:
按一下可從 Neuron 移除階段。
按一下可將連接器新增至另一個階段。
按一下可中斷階段之間的連接。
階段設定
您將一個階段拖曳至工作區且其呈現反白顯示時,階段設定面板就會開啟,可使用設定來設定和自訂每個階段。
按一下階段資訊會看見階段的說明及所有相關聯的屬性。 這些可做為篩選查詢結果的準則使用。
連線
每個階段都必須連接至另一個階段,這樣 Neurons 工作流程才能執行。 反白顯示階段,然後按住連接器箭頭 並將其拖曳至您要連接的階段。「連線」面板隨即開啟,您可以在此自訂連線類型和樣式,以及線條的粗細和樣式。 您也可以修改色彩及新增標籤。
節選器
您可以依據可自訂的屬性篩選查詢結果。 當您將內建的查詢階段連接至節選器時,「屬性」下拉式清單就會列出所有可供選取的可用屬性。 若要檢視屬性的詳細資訊,請前往查詢階段設定面板,並選取階段資訊。
您也可以使用預覽查詢功能評估所有目標裝置,並使用結果表格檢視可篩選的值的格式和範圍。
osquery、PowerShell 和 BASH 等自訂查詢不會自動填入節選器屬性 – 這些必須依據查詢傳回的欄名稱手動輸入 (或在預覽查詢中檢視)。
您能夠將多個查詢連結成序列。 若您這樣做,所有結果會結合在一起並可供篩選,或在動作階段中使用,如傳送電子郵件和建立 ISM 票證。 您可以變更所連接節選器的比較行為,使其套用 AND 或 OR 邏輯來判斷結果。
變數
變數可用來在階段之間傳遞資訊,並將動作的輸出傳遞至另一個動作。 變數可用於以下階段:
- Neuron 警示
- 傳送電子郵件
- 建立票證 (ISM)
插入變數
若要插入變數,針對其中一個適當的階段 (Neurons 警示、傳送電子郵件、建立票證 (ISM)) 開啟階段設定。 在相關的欄位中,使用鍵盤捷徑 (Ctrl + 空白鍵) 開啟可用變數的下拉式清單並選取您要使用的變數:
- Neuron 名稱: [[Workflow.Name]] - Neuron 的名稱,例如: 軟體黑名單
- 群組名稱: [[Workflow.Assistant]] - Neuron 存在於其中的 Neuron 類別名稱,例如: 合規性
- NeuronURL: [[Workflow.Url]] - Neuron 唯一執行編號執行個體的連結
- 初始化使用者: [[Initiation.User]] - 執行手動執行個體的使用者名稱
- 初始化使用者 ID: [[Initiation.UserId]] - 執行手動執行個體之使用者的 ID
- 所有裝置名稱: ${Ivanti.Devices} - 由查詢所傳回並以逗號分隔的裝置名稱清單
- 所有裝置資料: ${Ivanti.Devices} - 由查詢所傳回的所有裝置資料清單
- 裝置計數: ${Ivanti.Results.length} - 由查詢所傳回的裝置數量
- 涵蓋範圍 - 已回應: 已回應的裝置數量
- 涵蓋範圍 - 錯誤: 無法回應且存在錯誤的裝置數量
- 涵蓋範圍 - 百分比: 已回應的裝置百分比
目前有使用變數的範本可供使用。 如有更複雜的需求,Neuron 警示和電子郵件中的欄位皆支援 javascript,但這需要使用 handlebarsjs
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
舉例來說,若要透過電子郵件傳回裝置清單,您可以使用以下範例:
<ul class="devicelist">
{{#each Ivanti.Results}}
<li>{{this.deviceName}}</li>
{{/each}}
</ul>
管理錯誤
在理想情況下,所有 Neurons 每次都將在所有目標裝置上成功執行。 不過,有時並非全都會成功。 Neurons 工作流程包含一些可用於提高成功率的功能,另外您也可以進行一些設計決策和組態設定來提高成功率,並幫助您管理發生的任何錯誤。
逾時
另外要取得平衡的還有等待工作流程完成的時間,不要讓它在失敗後持續過久。 將適當的逾時套用至工作流程的每個階段。 查詢階段的逾時為 15 秒,動作的逾時為 5 分鐘,目標動作的逾時則為 25 分鐘。
略過執行
排程的執行會在前一次執行完成後才開始。 Neuron 的執行記錄會以 表示略過的執行。
錯誤分支
在執行階段時,工作流程會記錄階段成功的裝置和階段失敗的裝置。 您可以在「階段輸出」中查看這些結果。 如果階段只在部分目標裝置上成功,則階段和執行都會標示為部分成功 ,且工作流程僅在該階段成功的裝置上繼續執行。您可以透過新增錯誤分支來改善工作流程設計,以便更主動地處理此情況。
若要新增錯誤分支:
- 開啟所需工作流程。
- 從我的階段面板的通用區段內,在某個動作階段底下新增篩選結果階段。
- 將該動作階段連接至「篩選結果」階段。
- 按一下「篩選結果」階段。
- 在階段設定面板中,將邏輯設為 AND、屬性設為動作狀態、比較設為等於,並將值設為失敗。
- 將類似的篩選結果階段連接至相同的動作階段,但將值設為已完成。
現在您有了錯誤分支,其可將成功的裝置與失敗的裝置分開。 - 在已完成的篩選結果階段底下,完成您的工作流程設計。
- 在失敗的篩選結果階段底下,新增傳送電子郵件動作階段來通報失敗,或新增另一個適當的動作來嘗試繼續執行工作流程。
進階 Neurons 工作流程範例
下列範例示範了如何建置 Neurons 工作流程,以及如何使用自訂查詢和動作:
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
可支援查詢參數化,使其更方便在 Neurons 中用於其他用途。 這在使用編輯器並保存為可重複使用的程式庫節點時即可支援:
Osquery 使用 SQL 語法,例如 select * from processes where name = myprocess.exe
大多數管理員對此都很熟悉。
如果我們使用上述查詢做為範例,可以將此項指定如下:
select * from processes where name = __Name__
雙底線是對 Neurons 表示,這個項目應參數化,因此保存後並選取查詢時,「設定」面板中就會有名稱輸入方塊:
您也可以插入 options 變數,藉此在下拉式清單中填入可供選擇的值
在編輯器中輸入 op
並按下 tab:
替換為您慣用的文字和選項,然後保存為可重複使用的程式庫節點:
這些選項現在變成下拉式清單:
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
Osquery 查詢會分組為表格,那麼,假如您想結合來自多個表格的結果,使其變成一項查詢呢?
範例: 您想使用登錄表擷取登錄值:
但您也想要來自 system_info 的硬體廠商和型號
在 Neurons 中輸入您的 osquery,如下所示:
SELECT hardware_vendor,hardware_model,
(
SELECT data FROM registry
WHERE key = 'HKEY_LOCAL_MACHINE\Software\Ivanti\Neurons'
)
temp
FROM system_info
傳回結果如下:
您可接著在登錄值符合特定值時連接篩選結果階段以執行動作:
可選擇篩選硬體廠商
或使用結果建立電子郵件中的格式化表格:
作法:
- 從磁碟空間過少範本開始。
- 編輯具有 <th> 標籤且含有偏好欄名稱的區段。
- 編輯具有對應 <td> 標籤的區段,以使用來自預覽的欄名稱,前面一律加上此項。 以小寫字母開頭,字與字之間沒有空格,後面的字字首大寫。
例如 如果有一欄稱為 My Devices,在 <td> 區段中會像這樣 this.myDevices
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
可以使用 PowerShell 來查詢裝置 (僅限 Windows)。 不過,查詢需傳回陣列形式的結果,然後導入至 ConvertTo-Json。
範例: Get-TimeZone 會傳回陣列形式的結果,如下所示:
PS C:\Users\Joe.Bloggs> get-timezone
Id : GMT Standard Time
DisplayName : (UTC+00:00) Dublin, Edinburgh, Lisbon, London
StandardName : GMT Standard Time
DaylightName : GMT Summer Time
BaseUtcOffset : 00:00:00
SupportsDaylightSavingTime : True
但導入至 ConvertTo-Json (PowerShell 3.0 和以上版本) 時,會像這樣:
PS C:\Users\Joe.Bloggs> get-timezone | convertto-json
{
"Id": "GMT Standard Time",
"DisplayName": "(UTC+00:00) Dublin, Edinburgh, Lisbon, London",
"StandardName": "GMT Standard Time",
"DaylightName": "GMT Summer Time",
"BaseUtcOffset": {
"Ticks": 0,
"Days": 0,
"Hours": 0,
"Milliseconds": 0,
"Minutes": 0,
"Seconds": 0,
"TotalDays": 0,
"TotalHours": 0,
"TotalMilliseconds": 0,
"TotalMinutes": 0,
"TotalSeconds": 0
},
"SupportsDaylightSavingTime": true
這樣 Neurons 就能將資料建置成表格:
提示: 如果預覽查詢無法運行 – 務必確定群組中的所有裝置都能傳回查詢 (至少使用 PowerShell 3 的 Windows 裝置)。 您可以在 Neurons 設定中選擇目標群組。
取得查詢結果後,您可以連接篩選階段來指定階段繼續進行需符合的條件。 附註: 您需手動輸入欄名稱做為節選器屬性:
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
Neurons 可在端點上利用 Ivanti Neurons 代理程式和自動化網狀架構引擎執行 PowerShell。 動作可在一般使用者的安全性環境中或以系統身分執行。
如同 osquery,PowerShell 動作也可以參數化,例如 如果您希望能重複使用可解除安裝有問題的 Windows 更新的動作,則可使用 PowerShell 編輯器建立可重複使用的程式庫節點,內含下列程式碼:
wusa /uninstall /kb:__KBNumber__/quiet /norestart
__KBNumber__
經過參數化後會變成一個選項,讓您輸入您要移除的更新編號:
您可以從編輯器中移除自訂動作和查詢,只要將它們從程式庫中刪除:
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
BASH 查詢/動作的運作方式與 PowerShell 完全相同,唯一例外是,Bash 沒有內建的 ConvertTo-Json 功能,因此您必須建立查詢來傳回 JSON 形式的結果,如此 Neurons 才能解譯。