使用者階段
建立使用者階段以自訂和保存階段以在機器人建立中使用。 建立階段後,可在階段 > 使用者下的 Neurons 機器人編輯器上重復使用。
建立使用者階段
- 在 Neurons 機器人中,選取建立機器人。
- 在建立機器人頁面上,為排程或自訂動作選取建立。
- 在新機器人編輯器頁面上,選取管理使用者階段以顯示使用者階段管理者頁面。
- 在使用者階段管理者頁面上,選取建立和以下階段選項:
- PowerShell 查詢
- Power Shell動作
- Bash 動作
- 命令動作
- OS查詢
- 在使用者階段編輯器頁面上,輸入階段名稱。 例如,壓縮檔案/資料夾。
- 選填地地輸入說明。 在機器人編輯器中顯示說明性文字,並從階段設定面板中選取「階段資訊」。 例如,這個階段將從指定路徑到目標路徑的源檔案壓縮到指定的壓縮級別。
- 輸入指令碼程式碼。
範例:
Compress-Archive?-path?C:\logs\file.txt?
-destinationpath?C:\logs\file.zip?
-compressionlevel Optimal
您可以透過用變數替換一些硬程式碼來使該指令碼更加靈活。 這將允許在使用階段時自訂元素。
範例:
Compress-Archive?-path?__Path?to?Source?File?or?Folder__
-destinationpath?__Destination?Path__
-compressionlevel?__Compression?level|options:Fastest,Optimal,No Compression_
選取 Ctrl + 空格以插入選項變數或值變數:
- 選項變數顯示在設定中作為選取下拉清單,可用的選項將是您輸入到指令碼中的選項。在此範例中: 壓縮級別選項最快、最佳、無壓縮。
- 值變數在設定中顯示為文字方塊,帶有您在指令碼中輸入的標籤。在此範例中: 源檔案或資料夾的修補程式、目標路徑和壓縮級別。
對於此範例,階段設定如下所示:
- 完成階段設定,可用的設定取決於您正在建立的使用者階段類型:
- 系統
- 登入使用者
- PowerShell
- Core
- 自動
- 指令碼輸出為 JSON (您可以使用 ConvertTo-JSON commandlet)。
- 您可以在階段設定中,將每個資料欄位命名為輸出項目。
- 如果將 PowerShell 類型選取為 Core,PowerShell 指令碼會在 PowerShell Core .Net Core 3.1 Desktop Runtime 上執行,在執行的電腦上必須安裝 24.64.28315 或更高版本。
- 如果您將 PowerShell 類型選取為 Auto,則查詢會搜尋 Net Core 3.1 Desktop Runtime 的 24.64.28315 或更高版本。 結果如下:
- 安裝 Runtime 後,會針對 PowerShell Core 執行指令碼。
- 未安裝 Runtime 時,會針對 PowerShell 執行指令碼。
- 單個 - 如果指定輸出類型為單個,可以使用 JSON 格式傳回一個物件。
- 多個 - 如果輸出類型指定為多個,則必須將資料作為 JSON 格式的物件陣列傳回。
[{“Example Field”: “A”}, {“Example Field”: “B”}]
陣列中的物件包含原始類型。 在階段監測管理工具的輸出欄位中,必須繫結範例欄位並輸入名稱。
$processes = Get-Process | Select-Object Name
ConvertTo-Json $processes - 系統
- 登入使用者
- PowerShell
- Core
- 自動
- 系統
- 登入使用者
- 系統
- 登入使用者
-
若要掃描並修復損壞的檔案:
-
若要檢查並修正實體磁碟的狀態:
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
執行身分:
類型:
輸出: 為 PowerShell 查詢返回的每個欄名稱新增一個輸出,您希望在下游篩選結果階段使用該輸出或將其作為另一個階段的變數。
單一結果: 打開/關閉。 使用單個/多個結果來定義查詢是為每個裝置返回單個結果還是多個結果。 這決定了變數是否可直接在下游階段 (單個)作為標記輸入使用,或者它們是否僅可用於 for-each 結果塊 (多個)中的階段以對每個結果循環這些階段。
使用標準機器人階段無法達成所需的自訂行為時,可以使用 PowerShell 查詢您的環境。
若要成功執行查詢,請確認:
在預設情況下,指令碼逾時為 25 分鐘。
PowerShell 類型:
輸出類型:
如果您希望一次顯示多個結果,請將其開啟,如果希望一次顯示單個結果,請將其關閉。
$name = [System.Net.Dns]::GetHostName()
ConvertTo-Json @([customobject]@{Name = $name;})
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
執行身分:
類型:
PowerShell 動作範例:
PowerShell 動作與 PowerShell 查詢類似,只是 PowerShell 動作中沒有輸出。 若要瞭解更多資訊,請參閱 PowerShell 查詢範例。
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
執行身分:
Bash 動作範例:
若要透過移除前 100 個項目來減少大小,請使用以下指令:
sed 1,100d your-filename
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
執行身分:
指令動作範例:
sfc /scannow
chkdsk /offlinescanandfix
![關閉](Skins/Default/Stylesheets/Images/transparent.gif)
單一結果: 打開/關閉。 使用單個/多個結果來定義查詢是為每個裝置返回單個結果還是多個結果。 這決定了變數是否可直接在下游階段 (單個)作為標記輸入使用,或者它們是否僅可用於 for-each 結果塊 (多個)中的階段以對每個結果循環這些階段。
新增欄映射: 為 osquery 返回的每個欄名稱新增一個欄映射,您希望在下游篩選結果階段使用該欄映或將其作為另一個階段的變數。
OSQuery 範例:
若要探索每部裝置最常啟動的應用程式,請執行以下指令碼:
select path,last_execution_time,count,
sid from userassist order by count desc
limit __Number of Apps to return|options:1,5,10__
-
選取應用並關閉以保存使用者階段。
如果您對現有使用者階段進行了編輯,則會建立一個新版本。 保存時,會顯示一個對話方塊,警告任何使用使用者階段的機器人都需要更新才能使用最新版本。
動作
您可以對任何使用者階段執行以下動作:
- 複製: 選取一個使用者階段,選取動作 > 複製。 複製階段對話方塊隨即顯示。輸入唯一名稱並選取複製。 將顯示一條彈出消息,通知您階段建立成功。 複製的階段出現在清單中供您選取和編輯。
- 刪除: 選取一個或多個使用者階段,選取動作 > 刪除。 刪除階段對話方塊隨即顯示。選取刪除以確認刪除階段。 此動作無法撤消,並且將從任何使用此動作的機器人中棄用該階段。 已棄用的階段用紅色邊框表示。