Neuron ワークフロー ビルダー
Ivanti Neurons (機能) は非推奨となり、新しい Ivanti Neurons Bots エクスペリエンスに置き換えられます。 詳細については、「Neurons Bots への移行」をご参照ください。
Neuron ワークフローは、さまざまなビジネス プロセスを自動化するために設計された一連の関連付けられたステージから構成され、洞察を発見して提供し、アクションを実行するために使用できます。 Neuron ビルダーを使用すると、カスタム Neuron ワークフローを最初から作成するか、構築済みのワークフローを編集して、ビジネス ニーズに合わせてカスタマイズできます。
Neuron 設定
Neuron 設定 パネルを使用して、Neuron ワークフローを構成します。使用できる設定は、Neuron のタイプに依存します。
名前: Neuron の名前。
カテゴリ: ドロップダウン リストからカテゴリ (準拠、ユーザ生産性、ビジネス継続性、リソースの最適化) を選択します。
ターゲット グループ: [カスタム] または [すべてのデバイス] を選択します。 [カスタム] の場合は、使用可能な全パブリック デバイス グループのドロップダウンリストから選択します。デバイス グループは、[デバイス] > [デバイス グループ] で設定します。
ステータス構成: [非アクティブ] と [アクティブ] の間でステータスを切り替えます。 Neuron を [アクティブ] に設定すると、Neuron の実行のタイミングを決定できるように、スケジュール設定を使用できるようになります。 以下の設定を行います。
- 繰り返す: [毎日] または [毎週]
- 頻度: [分] または [時間]
- 間隔: [時間] の場合は1~24。 [分] の場合は、30~55で5分間隔。
- 開始: 日時
- 終了: 日時
名前: Neuron の名前。
ステータス構成: [非公開] と [公開済み] の間でステータスを切り替えます。 Neuron を [公開済み] に設定すると、アクションの命名の参考となるよう、アクションの表示名が示されます。 この名前が [デバイス] ビューの [アクション] パネルに表示されます。
マイ ステージ
左側の [マイ ステージ] パネルには、既定およびインストール済みのステージがすべて含まれています。 ステージには、いくつかのカテゴリがあります。
追加のクエリと処理はライブラリにあり、[ステージ] に追加されます。 ライブラリの詳細については、「Neurons (機能)」をご参照ください。
- クエリ: 特定の条件を満たすデバイスからの情報の提示やフィルタリングに使用します。 たとえば、空きディスク領域が10% 未満のデバイスを表示します。 このクエリ ステージからの出力とコンテキストは、Neuron ワークフローの後続のステージを通過できます。 それぞれのクエリに、結果が返されなかった場合に Neuron の動作を制御できるようにする設定が含まれます。 既定では、[結果が返された場合にのみ Neuron を続行する] が選択されています。 つまり、オンライン デバイスから結果が返されない場合は、Neuron ワークフローはそれ以上進みません。 このチェックボックスをオフにすると、Neuron ワークフローは引き続き進行します。これは、たとえば、問題が見られなかった場合に肯定的確認を得るためのアラートを発行する場合などに役立つ可能性があります。
- 処理: 処理ステージでは 自動化ファブリック を利用して、ユーザ デバイスで電子メールの送信やカスタム PowerShell の実行といった処理を実行します。 変数の使用が可能なアクションもあります。 詳細については、「変数」をご参照ください。
- 共通: 次のものがあります。:
- 結果のフィルタリング: フィルタ プロパティの定義に従い、取り込まれたクエリ情報をフィルタリングします。 詳細については、フィルタ をご参照ください。
- Neurons アラート: Neurons のホームページにアラートを生成するように設計されています。
- カスタム: Bash 処理、カスタム JavaScript、PowerShell 処理およびクエリ、osquery を活用して、カスタム処理とクエリを作成できます。 [ライブラリ] > [ステージ エディタ] で作成されたカスタム ステージは、インストールされた後にここに表示されます。
osquery と PowerShell の使用方法の例については、「Neuron ワークフローの高度な例」をご参照ください。
ワークスペース
ステージをワークスペースまでドラッグすると、Neuron ワークフローが作成されます。 ステージをクリックすると、次のオプションが表示されます。
クリックして、ステージを Neuron から削除します。
クリックして、別のステージへのコネクタを追加kします。
クリックして、ステージ間の接続を切断します。
ステージ設定
ステージをワークスペースにドラッグし、ハイライト表示されると、[ステージ設定] パネルが開きます。設定を使用して、各ステージの構成やカスタマイズができます。
[ステージ情報] をクリックすると、ステージの説明と、すべての関連付けられたプロパティが表示されます。これらはクエリ結果をフィルタリングする条件として使用できます。
接続
Neuron ワークフローを実行できるように、各ステージを別のステージに接続する必要があります。 ステージをハイライトし、コネクタ矢印 を接続先のステージまでドラッグします。[接続] パネルが開きます。このパネルで、接続のタイプとスタイル、線幅、およびスタイルをカスタマイズできます。 色の修正と、ラベルの追加も行えます。
フィルタ
カスタマイズ可能なプロパティに基づいて、クエリ結果をフィルタリングできます。 組み込みのクエリ ステージをフィルタに接続すると、選択可能な、使用できる全プロパティが [プロパティ] ドロップダウンにリストされます。 プロパティの詳細を表示するには、クエリ [ステージ設定] パネルに移動し、[ステージ情報] を選択します。
また、クエリのプレビュー機能を使用すると、すべてのターゲット デバイスを評価し、結果の表を使用して、フィルタリングできる値の形式と範囲を確認することができます。
osquery、PowerShell、BASH などのカスタム クエリでは、フィルタ プロパティが自動的に入力されません。クエリで返される (またはクエリのプレビューに表示される) 列名に基づいて手動で入力する必要があります。
複数のクエリを連続して結合できます。 これが完了した場合は、すべての結果が結合され、フィルタリングしたり、電子メールの送信や ISM チケットの作成などの処理ステージで使用したりできます。 接続されたフィルタの比較動作を変更し、AND または OR ロジックを適用して、結果を判定することができます。
変数
ステージ間での情報の受け渡しや、アクション間での出力の受け渡しに、変数を使用できます。 変数は、次のステージで使用できます。
- Neurons アラート
- 電子メールの送信
- チケットの作成 (ISM)
変数の挿入
変数を挿入するには、適切なステージ (Neuron アラート、電子メールの送信、チケットの作成 (ISM)) のいずれかで [ステージ設定] を開きます。適切なフィールドで、キーボード ショートカット (Ctrl+Space) を使用して利用可能な変数のドロップダウンリストを開き、使用する変数を選択します。
- Neuron 名: [[Workflow.Name]] - Neuron の名前。例: ブラックリストに載っているソフトウェア
- グループ名: [[Workflow.Assistant]] - Neuron が属しているNeuron カテゴリの名前。例: 準拠
- Neuron URL: [[Workflow.Url]] - Neuron の、一意の実行番号を持つインスタンスへのリンク
- 開始ユーザ: [[Initiation.User]] - 手動インスタンスを実行したユーザの名前
- 開始ユーザ ID: [[Initiation.UserId]] - 手動インスタンスを実行したユーザの ID
- すべてのデバイス名: ${Ivanti.Devices} - クエリで返されたデバイス名のコンマ区切りリスト
- すべてのデバイス データ: ${Ivanti.Results} - クエリで返された全デバイス データのリスト
- デバイス数: ${Ivanti.Results.length} - クエリで返されたデバイスの数
- 対象 - 応答数: 応答したデバイスの数
- 対象 - エラー数: エラーで応答に失敗したデバイスの数
- 対象 - パーセント: 応答したデバイスのパーセンテージ
変数を使用した、すぐに使用できるテンプレートがあります。 より複雑な要件がある場合のために、[Neuron アラート] と [電子メール] のフィールドで javascript をサポートしていますが、これには handlebars.js を使用します。
例として、デバイスのリストを電子メールで返すには、次のコードを使用できます。
<ul class="devicelist">
{{#each Ivanti.Results}}
<li>{{this.deviceName}}</li>
{{/each}}
</ul>
エラーの管理
毎回、ターゲットにしたすべてのデバイスですべての Neuron が正常に実行されれば、理想的です。 しかし、時には、すべて成功しないこともあります。 Neurons ワークフローには、成功率を高めるための機能がいくつか組み込まれています。また、成功率を高め、発生したエラーを管理する上で役立つように、設計に関する意思決定や構成設定を、ユーザ側でも行えるようになっています。
タイムアウト
ワークフローが完了するまで待機するのか、失敗したワークフローを長く放っておかないようにするのか、その2つの間のバランスというものがあります。 ワークフローの各ステージには、適切なタイムアウトが適用されています。 クエリ ステージには、タイムアウト15秒、アクション5分、ターゲット アクション25分が設定されています。
実行のスキップ
スケジュールされた実行は、前の実行が完了している場合にのみ開始されます。 Neuron の [実行ログ] には、スキップされた実行が で示されます。
エラー分岐
ステージが実行されると、ワークフローは、ステージが成功したデバイスとステージが失敗したデバイスを記録します。 これらの結果を、[ステージ出力] で確認できます。 ステージが一部のターゲット デバイスでのみ成功した場合は、ステージと実行の両方が一部成功 とマーク付けされ、ワークフローは、ステージが成功したデバイスのみへと進みます。エラー分岐を追加することで、この状況がより積極的に処理されるようにワークフロー設計を改善できます。
エラー分岐を追加するには:
- 任意のワークフローを開きます。
- [ステージ] パネルの [共通] セクションで、[処理] ステージの下に [フィルタ結果] ステージを追加します。
- このアクション ステージをフィルタ結果ステージに接続します。
- [フィルタ結果] ステージをクリックします。
- [ステージ設定] パネルで [ロジック] を [AND]、[プロパティ] を [処理ステータス]、[比較] を [等しい]、[値] を [失敗] に設定します。
- 類似したフィルタ結果ステージを同じ処理ステージに関連付けますが、[値] は [完了] に設定されます。
これで、成功したデバイスを失敗したデバイスから分離するエラー分岐が設定されました。 - [完了] フィルタ結果ステージでは、ワークフロー設計を完了します。
- [失敗] フィルタ結果ステージの下で、[電子メールの送信] 処理ステージを追加して失敗を報告するか、別の該当する処理を追加してワークフローを進めます。
Neuron ワークフローの高度な例
次の例は、Neuron ワークフローを構築し、カスタム クエリと処理を使用する方法について説明します。
クエリのパラメータ化は、Neurons での再利用を簡単にするためにサポートされています。 エディタを使用し、再利用可能なライブラリ ノードとして保存するときには、これがサポートされています。
Osquery は SQL 構文を使用します。例: select * from processes where name = myprocess.exe
これはほとんどの管理者が精通していることです。
例として上記のクエリを使用する場合は、次のように指定できます。
select * from processes where name = __Name__
2つの下線は、パラメータ化が必要な値であることを Neuron に指示します。したがって、保存後、このクエリが選択されると、設定パネルに Name 入力ボックスが表示されることになります。
また、options 変数を挿入することにより、選択する値のドロップダウンを自動入力することもできます。
エディタで op
と入力し、Tab を押します。
任意のテキストとオプションで置換し、再利用可能なライブラリ ノードとして保存します。
これらのオプションはドロップダウンとして使用できます。
Osquery クエリはテーブルにグループ化されますが、複数のテーブルの結果を1つのクエリに結合する場合はどのようにするのでしょうか。
例: レジストリ テーブルを使用して、レジストリ値を取得します。
ただし、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 となります。
PowerShell を使用してデバイスを問い合わせることができます (Windows のみ)。 ただし、クエリは配列として結果を返す必要があり、ConvertTo-Json にパイプ接続されます。
例: Get-TimeZone は次のような配列として結果を返します。
PS C:\Users\Joe.Bloggs> get-timezone
Id : GMT 標準時
DisplayName : (UTC+00:00) ダブリン、エジンバラ、リスボン、ロンドン
StandardName : GMT 標準時
DaylightName : GMT 夏時間
BaseUtcOffset : 00:00:00
SupportsDaylightSavingTime : True
ただし、ConvertTo-Json (PowerShell 3.0以上) にパイプ接続されると、次のようになります。
PS C:\Users\Joe.Bloggs> get-timezone | convertto-json
{
"Id": "GMT 標準時",
"DisplayName": "(UTC+00:00) ダブリン、エジンバラ、リスボン、ロンドン",
"StandardName": "GMT 標準時",
"DaylightName": "GMT 夏時間",
"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
これにより、Neuron はデータを表に作成できます。
ヒント: クエリのプレビューが動作していない場合は、グループのすべてのデバイスがクエリを返せることを確認してください (PowerShell 3以上がインストールされた Windows デバイス)。 通知設定 でNeuron 設定を選択できます。
クエリの結果が返されたら、フィルタ ステージを接続し、ステージが続行するために満たす必要がある条件を指定できます。 メモ: フィルタ Properties として手動で列名を入力する必要があります。
Neurons は Ivanti Neurons エージェントと automation fabric エンジンを活用して、エンドポイントで PowerShell を実行できます。 処理は、エンドユーザのセキュリティ コンテキストまたはシステムとして実行できます。
osquery のように、PowerShell 処理もパラメータ化できます。例: 問題のある Windows 更新をアンインストールできる再利用可能な処理が必要な場合は、PowerShell エディタを使用して、次のコードで再利用可能なライブラリ ノードを作成できます。
wusa /uninstall /kb:__KBNumber__/quiet /norestart
__KBNumber__
はオプションとしてパラメータ化されます。ここには削除する更新番号のみを入力します。
ライブラリから削除すると、カスタム処理とクエリをエディタから削除できます。
BASH クエリ/処理は PowerShell とまったく同じ方法で動作します。例外: Bash にはビルトインの ConvertTo-Json 機能がないため、Neurons で解釈できるように JSON で結果を返すには、クエリを作成する必要があります。