作为这个问题的后续,我不想在脚本中使用长数组,而是想从文本文件中绘制。所以我替换了这个:
$URLs = ' http : //websiteone.com','http ://websitetwo.com','http : //websitethree.com '
有了这个
$URLs = 获取内容 ./urlfile.txt
或(据我所知,功能相同)这个
$URLs = @(获取内容./urlfile.txt)
但我最终得到Invoke-RestMethod :远程服务器返回错误:(400)错误请求。
结合我上一个问题的出色响应,我的 foreach 循环如下所示:
foreach($URL in $URLs) {
$BODY = @([pscustomobject]@{"client" = @{"clientId" = "company"; "clientVersion" = "1.0"}; "threatInfo" = @{"threatTypes" = "MALWARE","SOCIAL_ENGINEERING","THREAT_TYPE_UNSPECIFIED","UNWANTED_SOFTWARE","POTENTIALLY_HARMFUL_APPLICATION"; "platformTypes" = "ANY_PLATFORM"; "threatEntryTypes" = "URL","EXECUTABLE","THREAT_ENTRY_TYPE_UNSPECIFIED"; "threatEntries" = @{"url" = $URL}}})
$JSONBODY = $BODY | ConvertTo-Json
$Result = Invoke-RestMethod -Method 'POST' -Uri $Uri -Body $JSONBODY -Headers $HEADERS
if ( ([string]::IsNullOrEmpty($Result)) ) {} else {write-host $URL "ALERT: Safe browsing match!"}
}
...但是如果我使用 Get-Content cmdlet 创建数组,这将不起作用。如果我以任何一种方式运行脚本,然后键入 $URLs,我将得到完全相同的数据返回。我在获取内容方面做错了什么?