用户阶段
创建用户阶段以自定义和保存阶段以在机器人创建中使用。 创建阶段后,可在阶段 > 用户下的 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 或更高版本。 结果如下:
- 安装运行时后,将针对 PowerShell Core 执行脚本。
- 如果未安装运行时,将针对 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__
-
选择应用并关闭以保存用户阶段。
如果您对现有用户阶段进行了编辑,则会创建一个新版本。 保存时,会显示一个对话框,警告任何使用用户阶段的机器人都需要更新才能使用最新版本。
操作
您可以对任何用户阶段执行以下操作:
- 克隆:选择一个用户阶段,选择操作 > 克隆。 随即显示克隆阶段对话框。 输入唯一名称并选择克隆。 将显示一条弹出消息,通知您阶段创建成功。 克隆的阶段出现在列表中供您选择和编辑。
- 删除:选择一个或多个用户阶段,选择操作 > 删除。 随即显示删除阶段对话框。 选择删除以确认删除阶段。 此操作无法撤消,并且将从任何使用它的机器人中弃用该阶段。 已弃用的阶段用红色边框表示。