Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deepsecurity 更新名称存在多次的计算机对象时发生REST API错误_Deepsecurity - Fatal编程技术网

Deepsecurity 更新名称存在多次的计算机对象时发生REST API错误

Deepsecurity 更新名称存在多次的计算机对象时发生REST API错误,deepsecurity,Deepsecurity,我正在通过Powershell使用RESTAPI向计算机添加说明。对于某些系统,此操作失败,错误为“请求的主机名已存在”。它适用于计算机在TM中存在一次的系统,但如果系统存在两次则不起作用 这是在DSaaS中 下面是powershell脚本部分,其中包含rest调用。相同的调用适用于DS中具有唯一名称的服务器,但不适用于多次存在的服务器 { $srv = $_.Name $ci = $_.CI $searchbody = @{ "searchCriteria"= @{ "fieldName"

我正在通过Powershell使用RESTAPI向计算机添加说明。对于某些系统,此操作失败,错误为“请求的主机名已存在”。它适用于计算机在TM中存在一次的系统,但如果系统存在两次则不起作用

这是在DSaaS中

下面是powershell脚本部分,其中包含rest调用。相同的调用适用于DS中具有唯一名称的服务器,但不适用于多次存在的服务器

{
$srv = $_.Name
$ci = $_.CI

$searchbody = @{
"searchCriteria"= @{
"fieldName" = "hostName"
"stringTest" = "equal"
"stringValue" = $srv+'%'}
}

$json = ConvertTo-Json $searchbody

$srvuri = "$url/computers/search?expand=none"

$computer = Invoke-RestMethod -Uri $srvuri -Method Post -Headers $headers -Body $json -ContentType 'application/json' -Proxy $proxy

$computer.computers | ForEach-Object {
$computerid = $_.ID

"{0} Setting CI $ci for Server $srv with ID {1}" -f (Get-Date -Format u),$computerid
$date = Get-Date -Format "yyyy-MM-dd"
$_.description+= "`n$($date): $ci"

$updatejson = ConvertTo-Json $_
$updateuri="$url/computers/$computerid"
$computerupdate = Invoke-RestMethod -Uri $updateuri -Method Post -Headers $headers -Body $updatejson -ContentType 'application/json' -Proxy $proxy
}
}  


非常感谢您对我所犯错误的任何解释。

Hi@Bassmann,我是Deep Security团队的成员,我们正在调查您的问题。您能告诉我们您是否有多台计算机具有相同的主机名吗?如果是这样的话,你知道他们怎么会有重复的主机名吗?我肯定在DSaaS中有重复的同名计算机。部分原因是我们在部署了大量服务器之后才开始使用Azure代理。由于某些原因,有时映射到现有计算机不起作用。第一个REST调用确实提供了不同的ID值,这让我想知道为什么唯一的ID是不够的。由于这是敏感信息,我无法在此处共享实际数据,但如果有帮助,我可以通过TM支持共享API不支持修改具有非唯一主机名的计算机。我们已经创建了一个问题来支持这个用例。我认为您的解决方法是在运行脚本之前删除重复项(即开始使用Azure代理之前最初添加的计算机)。感谢更新。我觉得这种行为有点奇怪,因为更新使用的是id而不是名称,但很高兴知道这不是我的错;-)。有时间安排吗?对不起,我没有时间安排