我试图从 中的数组中提取项目$IOC
,然后对于每个项目替换 $API here-string 中的 $IMPORT 并将结果回显到控制台,然后对数组中的每个项目执行此操作$IOC
。
#put IOC\'s into array\n$IOC= \xe2\x80\x98c:\\Users\\powershell_array.txt\'\n#api curl script with variable to be replaced\n$API = @"\ncurl --insecure \'https://192.168.1.1:3000/hx/api/v2/indicators/Custom/Powershell_AD/conditions/execution\' -X \'POST\' --data-binary "\n{ \n \\"tests\\":[ \n { \n \\"token\\":\\"processEvent/ActiveDirectory\\",\n \\"type\\":\\"text\\",\n \\"operator\\":\\"contains\\",\n \\"preservecase\\":false,\n \\"value\\":\\"$IMPORT\\"\n }\n ]\n}" -H \'X-FeApi-Token: IAOaiq1s2\' -H \'Accept: application/json\' -H \'Content-Type: application/json\'"\n"@\n\nForEach ($i in Get-Content $IOC) {$API -replace $IMPORT, $i} echo $API\n
Run Code Online (Sandbox Code Playgroud)\n\n我没有收到错误,但它只是打印数组的内容,然后当然会回显$API
一次而不进行替换。
马蒂亚斯关于何时评估变量的说法是正确的。另一种允许与您想要的逻辑相同的方法是使用格式运算符。更新您的字符串以包含各种变量(在本例中为 1)的占位符,然后我们可以在循环中替换这些变量。我们使用{n}
(在本例中{0}
)并将大小相同的数组提供给占位符的数量。
$API = @'
curl --insecure 'https://192.168.1.1:3000/hx/api/v2/indicators/Custom/Powershell_AD/conditions/execution' -X 'POST' --data-binary "
{{
\"tests\":[
{{
\"token\":\"processEvent/ActiveDirectory\",
\"type\":\"text\",
\"operator\":\"contains\",
\"preservecase\":false,
\"value\":\"{0}\"
}}
]
}}" -H 'X-FeApi-Token: IAOaiq1s2' -H 'Accept: application/json' -H 'Content-Type: application/json'"
'@
ForEach ($i in Get-Content $IOC){$API -f $i}
Run Code Online (Sandbox Code Playgroud)
不需要正则表达式开销,但是要使这种方法起作用,您需要将字符串中已经存在的任何花括号加倍。因为我过去也遇到过这个问题,所以忘记了有点尴尬。
$IMPORT
一旦将此处字符串分配给 ,就会对其进行评估和扩展$API
。
将其更改为文字此处字符串('
而不是)并记住在模式参数中"
转义:\$
-replace
$API = @'
curl --insecure 'https://192.168.1.1:3000/hx/api/v2/indicators/Custom/Powershell_AD/conditions/execution' -X 'POST' --data-binary "
{
\"tests\":[
{
\"token\":\"processEvent/ActiveDirectory\",
\"type\":\"text\",
\"operator\":\"contains\",
\"preservecase\":false,
\"value\":\"$IMPORT\"
}
]
}" -H 'X-FeApi-Token: IAOaiq1s2' -H 'Accept: application/json' -H 'Content-Type: application/json'"
'@
foreach ($i in Get-Content $IOC) {
$API -replace '\$IMPORT', $i
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1982 次 |
最近记录: |