ユーザ ステージ
ユーザ ステージを作成し、ボット作成で使用するステージをカスタマイズして保存します。 作成したステージは、Neurons Bots エディタの [ステージ] > [ユーザ] で再利用できます。
ユーザ ステージを作成するには
- [Neurons Bots] で、[ボットの作成] を選択します。
- [ボットの作成] ページで、[スケジュール] または [カスタム処理] のいずれかの [作成] を選択します。
- [新規ボット] エディタ ページで、[ユーザ ステージの管理] を選択して [ユーザ ステージ マネージャ] ページを表示します。
- [ユーザ ステージ マネージャ] ページで、[作成] を選択し、次からステージを選択します。
- PowerShell クエリ
- PowerShell アクション
- Bash アクション
- コマンド アクション
- OSQuery
- [ユーザ ステージ エディタ] ページで、[ステージ名] を入力します。例: ファイル/フォルダの圧縮
- 任意で、説明を入力します。 説明テキストは、ボット エディタ内と、[ステージ設定] パネルから [ステージ情報] が選択されたときに表示されます。 例: このステージでは、指定したパスのソース ファイルが、宛先パス内に、指定した圧縮レベルで圧縮されます。
- スクリプト コードを入力します。
例:
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 + Space を選択して、[オプション変数] または [値変数] を挿入します。
- [オプション変数] は、設定内に選択ドロップダウンとして表示されます。使用可能なオプションは、スクリプトに入力したものになります。この例の場合: 圧縮レベル オプションである Fastest、Optimal、No Compression。
- [値変数] は、設定内にテキスト ボックスとして、スクリプトに入力したラベルとともに表示されます。この例の場合: ソース ファイルまたはソース フォルダへのパス、宛先パス、および圧縮レベル。
この例の場合、[ステージ設定] は次のようになります。
- [ステージ設定] を完了します。使用可能な設定は、作成しているユーザ ステージのタイプによって異なります。
- システム
- ログオンしたユーザ
- PowerShell
- コア
- 自動
- スクリプトの出力が JSON であること (ConvertTo-JSON コマンドレットを使用できます)。
- [ステージ設定] で、各データ フィールドを出力エントリとして指定できます。
- [PowerShell] タイプに [コア] を選択すると、PowerShell スクリプトは PowerShell Core 上で実行されます。実行しているコンピュータに .Net Core 3.1 Desktop Runtime バージョン24.64.28315以降がインストールされている必要があります。
- [PowerShell] タイプに [自動] を選択すると、クエリは .Net Core 3.1 Desktop Runtime バージョン24.64.28315以降を検索します。結果は次のようになります。
- 当該ランタイムがインストールされている場合、スクリプトは PowerShell Core に対して実行されます。
- 当該ランタイムがインストールされていない場合、スクリプトは PowerShell に対して実行されます。
- 単数 - 出力タイプが単数形として指定されている場合、1つのオブジェクトを JSON 形式で返せます。
- 複数 - 出力タイプが複数形として指定されている場合、JSON 形式のオブジェクト配列として、データを返す必要があります。
[{“Example Field”: “A”}, {“Example Field”: “B”}]
配列内のオブジェクトにはプリミティブ型が含まれます。 [ステージ インスペクタ] の [出力] フィールドでは、[Example] フィールドをバインドして、[名前] を入力する必要があります。
$processes = Get-Process | Select-Object Name
ConvertTo-Json $processes - システム
- ログオンしたユーザ
- PowerShell
- コア
- 自動
- システム
- ログオンしたユーザ
- システム
- ログオンしたユーザ
-
スキャンして破損したファイルを修復するには:
-
物理ディスクのステータスをチェックして修正するには:
![閉じた](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__
-
[適用して閉じる] を選択して、ユーザ ステージを保存します。
既存のユーザ ステージを編集した場合は、新しいバージョンが作成されます。 保存時、このユーザ ステージを使用しているボットはすべて、最新バージョンを使用するように更新する必要がある旨、警告するダイアログが表示されます。
アクション
任意のユーザ ステージに対して次のアクションを実行できます。
- 複製: ユーザ ステージを選択し、[アクション] > [複製] を選択します。 [ステージを複製] ダイアログが表示されます。一意の名前を入力し、[複製] を選択します。 ステージの作成が成功したことを知らせるポップアップ メッセージが表示されます。 複製されたステージがリストに表示され、選択して編集できるようになります。
- 削除: 1つ以上のユーザ ステージを選択し、[アクション] > [削除] を選択します。 [ステージを削除] ダイアログが表示されます。[削除] を選択して、ステージの削除を確認します。このアクションは元に戻すことができず、それを使用したボットからのステージは非推奨になります。 非推奨のステージは赤い枠線で示されます。