使用PowerShell

时间:2018-03-20 14:48:15

标签: powershell

我们正在使用PowerShell的Invoke-RestMethod来监控在ElasticSearch中运行的重新索引任务。他们的输出格式有点古怪,而不是数组[...]他们遗憾地选择了对象{...}所以看起来像这样:

{
    "nodes": {
        "fooVSmai0c0uR_Co7g": {...},
        "barVSmai0c0uR_B1Fd": {...}
        ...
}

我们想要将列表中的第一个对象访问$taskRunning,我们当前的代码看起来有点笨拙。有更优雅的方式吗?

$tasks = Invoke-RestMethod -Uri "http://elasticsearch:9200/_tasks?detailed=true&actions=*reindex"
$task1 = $tasks.nodes.PSObject.Properties | Select -First 1
if ($task1 -eq $null) {"No reindex tasks running!"; return}
$TaskId = $task1.Name
$taskRunning = $tasks.nodes.$($TaskId)

0 个答案:

没有答案